0. Background statement:
has been studying the blockchain field for some time. Overall, the prophase is mainly around the Bitcoin architecture and its source code learning, but the field of technology development is still not familiar. In order to have a systematic study and technical temper in the area of blockchain, we hereby summarize the following technical development routes to gradually enrich our knowledge system of blockchain development.
This blog post is mainly to make a clear plan for the following technical development route.
How does a classical Internet person enter the blockchain? I think there are two kinds of poses that are more realistic.
One is the faith, to tell the truth, the current stage does not fry coins to do blockchain, especially the public chain of people, that really need to believe Ah, the public chain to technology can be put into practical, to set up the ecological needs a very long process, ability to live, experience entrepreneurial narrow escape, that is not faith is what? Such people deserve respect because they drive real technological progress.
Another is practical, Shenzhen before soon opened the first based on the blockchain invoice, now want to do the alliance chain related projects, in fact, a lot of opportunities, technology is relatively mature, do the project to support the family is very practical ah, here the blockchain and other technology is no different.
As a more pragmatic technology developer, in order to earn a living and focus on the development of Hyperledger Fabric (Alliance chain), is a more robust choice. But for the originator of the blockchain-Bitcoin learning, I think it is indispensable. Bitcoin is equivalent to the public chain, and Bitcoin is a relatively early blockchain relative to Ethereum. We learn bitcoin mainly in the blockchain of the classical technical principles have a more comprehensive understanding and accumulation.
And the reason why do not choose Ethereum, mainly I think that ethereum as a system of relatively complex public-chain system, its technology is still not too stable, is still in continuous improvement. Solidity writing a smart contract, there are many loopholes in the bottom, so there are some risks in learning the technology. However, interested developers can learn the principles of Ethereum technology and related architectures, and will benefit from it.
So below, I propose my own technical learning route for the-hyperledger -bitcoin and Alliance chain .
first, the public chain-Bitcoin learning:
Learning Goal: mainly for the relevant technology of bitcoin study, its principle and the realization of a comprehensive grasp of the method
1. Learn more about Bitcoin's white paper. A comprehensive understanding of its technology and principles, and in-depth study of the technology mentioned therein.
2. Build a test network to test the bitcoin system.
3. Bitcoin source learning. There are several versions of the bitcoin source code, beginning to see part of the C version, but later Hyperledger fabric to use the go language to write the chain code (smart contract). So prepare to learn the go version of the source. For its technical framework and technical implementation, to carry out in-depth learning, and fully grasp!
To accomplish these goals, I think it is enough to learn about the classic blockchain system.
second, the Alliance chain-hyperledger Fabric Learning:
Learning Objectives: Mastering the technical architecture and understanding of the core modules, mastering the preparation of intelligent contracts, learning and mastering the official learning examples, mastering the technical development of the application, and the use of the tool language is best to be proficient!
1. Tool language Learning:
1) Go language, Fabric, Docker and more are based on go language development. Bitcoin now also has the go language version of the source code. So mastering this language can help us to read the source code of these technologies and also help us to develop smart contracts. The go language is concise, fast, secure, parallel, interesting, open source, supports generic programming, memory management, array security, compile speed and other features. A little language base, easy to master.
It took me a day to learn the basic language of the language quickly and basically to understand the language. It's definitely going to require further learning, and we can learn with some technical documentation on GitHub. Try to master the language.
2) Java, node. js, Python, etc. These languages are primarily called for Chaincode (chain code/Smart contracts) when developing applications, and there are SDKs that match them. So the language can choose for itself. Because many applications are web-based, node. JS is used more. Of course, if you just do testing and learning, not purely for business projects, have mastered the Python and Java is also a good choice.
2.Hyperledger Architecture and Core Module learning:
1) Read the white paper carefully. Understand its technical principles, and the key terminology must be understood in depth.
2) Learn about the fabric Core module.
3) Core source learning. This is the key to our technology upgrading and our ability to understand the technology implementation in depth.
3. Technology Development Learning:
1) Chaincode study. Learn to write smart contracts. Read more sources and practise more.
2) application development. The main is to use their own other language tools to invoke the smart contract for technology development. The Grpc interface of the fabric module can be called by any language. But if everything starts at the bottom, this is a very inefficient development. Currently, the Hyperledger project team has provided SDKs based on the four languages of Nodejs, Java, Go, Python, which encapsulate common fabric operations and have greatly simplified the development effort.
4. Related Project Source learning:
Having learned the above development process, we'd better find some open source projects on GitHub to learn and improve.
third, the public chain-Ethereum Learning:
Learning Objectives: This part of the study, I think for the technical staff that we want to engage in the development of the alliance chain, mainly to understand its technical architecture, the core modules have a general understanding of the entire blockchain technology to help us understand. I think it's enough to do this.
"Haste, if there is a mistake, please correct me! | | Welcome to learn to communicate together, please leave a comment in the comments area! "
This work is licensed under the Creative Commons Attribution-NonCommercial use-Share 4.0 International license agreement in the same way. 】
"Please contact the blogger, you must indicate the source after consent:http://www.cnblogs.com/X-knight/"