已经对区块链领域的学习研究了一段时间。总体来说,前期主要是围绕bitcoin架构及其源码学习的,但对这个领域的技术开发还是不太熟悉。为了使自己对区块链领域有一个系统的学习和技术锤炼,特此总结了如下技术开发路线,来逐渐充实自己的区块链开发知识体系。
has been studying the area of block chains for some time. Overall, the previous period was mainly about bitcoin architecture and its source code, but technological development in this area is not well known. In order to have a systematic learning and technical hammering in the area of block chains, the following lines of technological development have been summarized to gradually enrich their knowledge systems for block chain development.
这篇博文主要是对之后的技术开发路线做一个清晰的规划。
This post is mainly about making a clear plan for the subsequent development of the technology.
对于一个古典互联网人如何进入区块链呢?我觉得比较现实的有两种姿势。
? I think there are two positions that are more realistic.
一种是信仰,说实话,当前阶段不炒币来做区块链特别是公链的人,那真的需要信仰啊,公链要技术上能投入实用,要把生态建立起来需要很长的过程,能耐住性子,经历创业九死一生,那不是信仰又是什么呢?这样的人值得尊敬,因为他们推动了真正的技术进步。
is a faith, and to be honest, people who don't spend money at this stage making block chains, especially public chains, really need faith.
另一种是实用,深圳前不久开出了第一张基于区块链的发票,现在要想做联盟链相关 的项目,其实真的机会很多,技术也相对的成熟,做做项目养家糊口很实际啊,这里区块链跟其它技术没什么两样。
>, and the first block-based invoice was issued shortly before Shenzhen. now has a lot of real opportunities, technology is relatively mature, and it's very practical to make a living.
作为一名比较务实的技术开发人员,为了谋生而将主要精力放在Hyperledger Fabric(联盟链)的开发上,是一个比较稳健的选择。但是对于区块链的鼻祖——比特币的学习,我认为又是不可或缺的。比特币相当于公链,相对于以太坊来说,比特币是属于比较早期的区块链。我们学习比特币主要在于对区块链的经典技术原理有一个较全面的认识和积累。
as a more pragmatic technology developer, focusing on the development of the Hyperledger Fabric (coalition chain) in order to make a living is a more robust option. But I think it is indispensable to learn from the nose of the block chain, Bitcoin. Bitcoin is the public chain, and Bitcoin is the earlier block chain compared to Etai. We learn bitcoin mainly by having a more comprehensive understanding and accumulation of the classic technical principles of the block chain.
而之所以不选择以太坊,主要是我认为以太坊作为一个系统比较复杂的公链系统,其技术仍旧不太稳定、仍处于不断完善之中。Solidity编写智能合约,其底层也存在很多漏洞,所以学习该技术还是存在一些风险的。不过感兴趣的开发人员,可以学习下以太坊技术的原理及相关架构,也会受益良多。
, and the main reason why I don't choose Tai-pan, is that I think that the technique of using Tai-pan as a system's more complex public-chain system is still not stable and still in the process of being perfected. There are many gaps at the bottom of the Smart Contract, so there are risks in learning about the technology. But interested developers will also benefit from learning about the principles and structures of Tai-Pang technology.
所以下边,我针对公链-比特币及联盟链-Hyperledger Fabric提出自己的技术学习路线。
So below, I propose my own course of technological learning for and .
学习目标:主要针对比特币的相关技术进行学习研究,对其原理及实现方法全面掌握
learning objective: is focused on relevant technologies in Bitcoin and has a comprehensive understanding of their principles and methods of achievement
1. 深入学习比特币的白皮书。对其技术及原理有全面的了解,并针对其中提到的技术进行深入学习。
1. Study the White Paper on Bitcoin in depth.
2. 搭建测试网络,对比特币系统进行测试。
2. Set up testing network for the bitcoin system.
3. 比特币源码学习。比特币源码有多个版本,开始自己看了一部分的C版,但是后来的Hyperledger Fabric要用到GO语言写链码(智能合约)。所以准备之后学习GO版本源码。对其技术架构及技术实现,进行深入学习,并完全掌握!
3. Bitcoin source code has multiple versions and begins to read part of the C version itself, but later Hyperledger Fabric has to write a chain code (intelligent contract) in the GO language.
完成以上目标,我觉得对于经典的区块链系统学习已经够了。
completes this goal, and I think we've learned enough about the classic block chain system.
学习目标:掌握其技术架构和对核心模块的理解;掌握智能合约编写;对官方提供的学习实例进行深入学习并掌握;掌握应用的技术开发;其中用到的工具语言最好能够做到精通!
learning objectives: has access to its technical architecture and understanding of its core modules; has mastered intellectual contract writing; has in-depth learning and mastery of official learning examples; has mastered applied technology development; the tool language used therein is best developed!
1.工具语言的学习:
1. Tool language learning:
1)go语言,Fabric、docker等多是基于go语言开发。Bitcoin现在也有了go语言版源码。所以掌握该语言,能够帮助我们阅读这些技术的源码,还可以帮助我们进行智能合约开发。GO语言有简洁,快速,安全,并行,有趣,开源,支持泛型编程,内存管理,数组安全,编译迅速等特点。有点语言基础,很容易掌握。
1) Go languages, Fabric, docker, etc. are mostly based on Go languages. Bitcoin now also has the Go language source code. So mastering this language can help us read the source code of these technologies, and it can also help us with intelligent contract development. Go languages are simple, fast, safe, parallel, interesting, open-source, supportive of generic programming, memory management, array security, compile quick, etc.
我用了一天时间对该语言的基本语言进行了快速学习,基本上就对这门语言有了了解。之后肯定是需要深入学习的,我们可以借助Github上一些技术文档进行学习。争取精通这门语言。
I spent a day learning about the basic language of the language, basically learning about it. Then I'm sure I need to learn more about it. We can learn from some of Github's technical documents.
2)Java、Node.js、Python等。这些语言主要是在开发应用程序时,对chaincode(链码/智能合约)进行调用,而且都有与之匹配的SDK。所以语言可以自己选择。因为很多应用是基于Web端的,所以Node.js用得较多。当然如果仅仅做测试及学习,并不是完全为了商业项目,已掌握的Python与Java也是不错的选择。
2.Hyperledger架构及核心模块学习: 2. Hyperledger architecture and core modules learning: 1)仔细阅读白皮书。了解其技术原理;其中的关键术语也要深入理解掌握。 1) Read the white paper carefully. Know its technical principles; the key terms in it also need to be understood in depth. 2)对Fabric核心模块进行学习。 2) learning from the Fabric core module. 3)核心源码学习。这是我们技术实现提升、能够深入理解其技术实现的关键。 3) core source learning. This is the key to our technology upgrading and to an in-depth understanding of its achievement. 3.技术开发学习: 3. Technology development learning: 1)chaincode学习。学习编写智能合约。多读源码、多练习。 1) study in Chaincode. Learn to write smart contracts. Read more sources, practice more. 2)应用开发。主要是通过自己其他语言工具调用智能合约进行技术开发。Fabric模块的Grpc接口可以被任何语言调用。但是如果一切从底层开始实现的话,这样的开发效率是非常低的。目前 Hyperledger项目组已提供的基于Nodejs、Java、Go、Python这四种语言的SDK,这些SDK对Fabric常用操作进行了封装,已大大简化了开发工作。 2) application development. Technology development is mainly done by calling smart contracts through other language tools. The Grpc interface of the Fabric module can be used in any language. But this development is very inefficient if everything starts at the bottom. The SDKs, based on Nodejs, Java, Go and Python, are now available from the Hyperledger project team and have significantly simplified the development work. 4.相关项目源码学习: 4. Related project source learning: 已经学会了上述开发流程,我们最好在Github上寻找些开源项目进行学习并提升。
学习目标:这部分的学习,我认为对于我们想从事联盟链开发的技术人员来说,主要是为了了解其技术架构、对其核心模块有一个大概了解,以助于我们对于整个区块链技术的了解。我觉得做到这个地步就够了。 learning objective: , I think for the technical staff we want to engage in the development of the alliance chain, it's mainly to get an idea of its technical architecture and a general understanding of its core modules to help us understand the whole block chain technology. I think that's enough. 【时间仓促,如有错误,欢迎指正! || 欢迎一起学习交流, 请在评论区留言!】 【本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。】 【转载请联系博主,同意后务必注明出处:http://www.cnblogs.com/X-knight/】
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论