Purchase, sale and inventory of fabric blockchain
a total of 22 weeks, divided into five stages,
the first stage is 4 weeks, go language foundation and network concurrency, learning the introctory go language,
the second stage is 4 weeks, go language practical web development, crawler development, cryptography, consensus algorithm, realizing lightweight public chain, learning the website and crawler that can develop golang, Achieve lightweight blockchain
stage 3, 4-week Ethereum source code analysis and smart contract DAPP development, master Ethereum core and smart contract development, as well as blockchain,
stage 4, 4-week super ledger, bitcoin EOS, source code analysis and smart contract practice, master super ledger development, cat bitcoin, bifurcated EOS after learning, As well as DAPP development of smart contract
phase 5, 6-week project practice, five enterprise level projects, and one year of blockchain project experience after learning
from the characteristics of the language itself, go is a very efficient language, which highly supports concurrency. Go language itself pays more attention to distributed system, and concurrency processing is relatively good, such as advertising and search, That kind of high concurrency server
go language advantages:
excellent performance, can be directly compiled into machine code, does not rely on other libraries, go is extremely fast. Its performance is similar to Java or C + +
concurrency is supported at the language level, which is the biggest feature of go. It is born to support concurrency, and go is the concurrency supported in gene, which can make full use of multi-core and make it easy to use concurrency
the built-in runtime supports garbage collection, which is one of the features of dynamic language. Although GC is not perfect at present, it is enough to cope with most of the situations we can encounter, especially GC after go1.1
it's easy to learn. The authors of go language all have the gene of C, so go naturally has the gene of C. There are 25 go keywords, but the expressive ability is very strong. It almost supports most of the features you've seen in other languages: inheritance, overloading, object, etc
rich standard libraries, go has built a large number of libraries, especially the network library, which is also my favorite part< As like as two peas, br / > built-in powerful tools, Go language is built with many tools chain, the best should be gofmt tools, automatic formatting code, make team review become so simple, code format is exactly the same, it is very difficult to think differently.
cross platform compilation and fast compilation. Compared with the sluggish compilation speed of Java and C + +, the fast compilation time of go is a major efficiency advantage
disadvantages of go language:
package management: package management of go language is absolutely not perfect. By default, it has no way to make a specific version of the dependency library, nor can it create replicable builds. In contrast, python, node and Ruby all have better package management systems. However, with the right tools, the package management of go language can also perform well
lack of development framework: go language does not have a major framework, such as Ruby's rails framework, Python's Django framework or PHP's laravel. This is a heated discussion in the go language community, because many people think that we should not start with using frameworks. This is true in many cases, but if you just want to build a simple crud API, it's much easier to use Django / djrf, rails laravel, or Phoenix
exception handling: go language can help developers deal with compilation errors by simply returning errors (or call stack) through functions and expected calling codes. Although this method is effective, it is easy to lose the scope of the error, so it is difficult to provide meaningful error information to users. Error package can solve this problem by allowing us to add context and stack trace to return error
another problem is that we may forget to handle errors. Static analysis tools such as errcheck and megacheck can avoid these errors. Although these solutions are very effective, they may not be the right way.
At present, blockchain is not only applied in the financial instry, but also in the following instries, such as banking, payment and cash transaction, network security, academic records and academia, election, network and Internet of things, prediction, right and so on. There are still many areas that need blockchain technology. It can be imagined that the Internet + we mentioned before will become a blockchain + situation in the future
from the demand side, finance, health care, notarization, communication, supply chain, domain name, voting and other fields are beginning to realize the importance of blockchain and try to connect technology with the real society
from the perspective of the investment side, the supply of investment funds for blockchain is graally rising, the investment enthusiasm of venture capital is also rising, and the investment density is increasing. The supply of funds at the supply side is expected to promote the further development of technology
from the perspective of market application, blockchain can become a market tool to help the society rece the cost of the platform and make the intermediary institutions become the past; Blockchain will promote the shift of the focus of the company's existing business model, which is expected to accelerate the development of the company
from the perspective of underlying technology, blockchain is expected to promote the transformation of data recording, data dissemination and data storage management; Blockchain itself is more like an open source protocol at the bottom of the Internet, which will touch or even completely replace the underlying basic protocol of the existing Internet in the near future
from the perspective of social structure, blockchain technology is expected to integrate law and economy and completely subvert the original social supervision mode; Organizational form will change because of it, and blockchain may eventually lead people to a distributed and autonomous society
Where should we start to learn blockchain
first of all, we need to have a comprehensive understanding of the source and cognition of blockchain from a macro perspective. Why do we need to do this? Because if we don't understand, we will have no voice. We don't know how to judge that the next outlet is blockchain. Even if people follow suit, we also need our own learning solution as support. So, what do we need to know? I have listed the contents, For your reference only, if you already know something about it, you can skip this step:
1), basic theory of blockchain
2), basic programming (computer software and hardware foundation, character set and character encoding, HTML5 + CSS3 and other front-end technologies, ECMAScript + BOM + DOM, jQuery, node.js, Ajax and express framework)
3) Go programming language and database operation
4), blockchain 1.0 programming - bitcoin
5), blockchain 2.0 - Ethereum
6), Star Cloud chain and EOS development practice
7), blockchain 3.0 - fabric of super ledger
to you who are still struggling in the tuyere of blockchain: there is a market when there is demand, and the society never lacks excellent technical talents, After a good understanding (you can refer to Qianfeng's blockchain video tutorial), you must be firm and accurate
Blockchain is a new application mode of distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm and other computer technologies. Blockchain is an important concept of bitcoin. It is essentially a decentralized database. At the same time, as the underlying technology of bitcoin, it is a series of data blocks generated by using cryptographic methods. Each data block contains a batch of information about bitcoin network transactions, Used to verify the validity of its information (anti-counterfeiting) and generate the next block
if such technology wants to be put into application, the biggest problem is the "Impossible Triangle problem"
that is, scalability, decentralization and security cannot be achieved at the same time, and only two of them can be achieved
most of the existing public chain projects in the market are difficult to put into use on a large scale
the hypervessel platform developed by IBM China Research Institute provides a blockchain development and testing environment for blockchain enthusiasts and developers. Through this platform, users can create a multi node blockchain based on hyperledger fabric free of charge and quickly, and play smart contracts on their own chains
of course, decent, a foreign decentralized content sharing platform, can also be created.
Puyin is a high-quality Tibetan tea asset, which is stored, identified, evaluated and authorized by three parties. It is a standard digital currency issued through encryption and digitization. Puyin implements it in strict accordance with the concept of "white paper on standard digital currency" as its operation guideline. It is also a digital currency based on blockchain technology.
1. Technical language
Python and go are two technical languages mentioned by many companies. Learning needs to be a priority. Moreover, these two languages have great application in the technical direction outside the blockchain. For example, go is used in the background construction of large concurrent systems, and Python is used in the construction of artificial intelligence systems. So learning these two languages is a priority
2. Technical framework
master one or more of bitcoin, Eth and hyperledger. Needless to say, BTC is written in C + +. A large number of currency projects, such as lightcoin, dash, Monroe, zcash, use bitcoin technology for secondary development
eth is the representative of blockchain 2.0, which can build a variety of application classes DAPP on eth network. Now a large number of application blockchain projects are developed using eth platform
hyperledger fabric is a blockchain development platform pushed by IBM, which is mainly used for the development of alliance chain, and is the most popular alliance chain development platform at present
3, algorithm
pow (proof of work), POS (proof of rights and interests algorithm), pbft (Byzantine fault-tolerant algorithm) are all important components of cryptography in blockchain. A full understanding of these algorithms will help you to have a better understanding of cryptography when you participate in the underlying development of blockchain projects
extended data:
blockchain technology is a kind of Distributed Accounting Technology, which is characterized by decentralization, openness and transparency, so that everyone can participate in the establishment of the database, and each established data can not be tampered with, and everyone participates, The problem of trust between strangers is solved
blockchain technology has emerged. It is an accounting technology with the participation of the whole people. The transaction information and data between AB and ab are published to the public and can not be tampered with. As we all know, there is no need for any authoritative Third Party C here. In other words, everyone in the system plays the role of C, which is also called decentralization