谈谈『快速上手区块链』
『快速上手区块链』这个命题和不同人眼中的『区块链』一样,可能不是同一样东西。当你在谈区块链是,到底是在谈什么呢:cryptocurrency? or blockchain assets? or ICO? or token? or smart contract? or open ledger?. 那什么算是『上手了区块链呢』。对于不是开发者的同学,上手可以指能在 Bitcoin、Ethereum 上转转账,知道它们的工作原理、不同之处、演化的进程、为什么会出现;知道几种常见共识算法、各自的优缺点等等。
对于开发者,上面这些仅仅是基本技能,另一个标准是能把东西做出来。
从这个角度来讲,开发者的上手程度从低到高可以分为下面几个阶段:
- 能使用区块链系统、平台(Bitcoin、Ethereum 等等)提供的 API;编写简单的智能合约
- 用 API 获得区块链中的数据并且处理好各种 edge cases。比如在一个交易所的程序中,要在程序中获得区块链上的数据
- 在一些场景下,会要 hack 下各种区块链系统的协议。例如当你希望能主动控制构造交易的过程,而项目使用的语言没有现成的库可以用时,就要自己实现这部分的协议(简单说来就是把 Bitcoin、EThereum 的部分内容自己重新写了一遍)。
- 编写复杂的智能合约。在 Ethereum 和 EOS 上写的智能合约,根据合约的复杂程度,对系统的理解能力也有不同的要求。比如在 Ethereum 上面发发币的合约肯定是不如 0x 这种做 decentralized exchange settlement 的合约复杂,需要对 Ethereum 的理解也是不能同日而语的。
- 从头构造一个区块链系统。区块链系统的演化过程是操作系统的演化和分布式系统演化的结合版本:虽然现在是 Windows、MacOS,iOS 和安卓统一了桌面电脑和手机的操作系统市场,但是在很多细分的场景,还是需要重新定制,适应具体的需求;另一方面,分布式系统领域虽然后一些通用的组件、框架,但是对整个大系统而言,都是各家自作一套,因为各家要面对的业务场景不一样,难易有一个通用的分布式系统 cover 到所有的场合。因此,对于区块链项目,有些项目可以在通用平台上(通用的操作系统)上开发,或者是拿现有的系统改改就好;而有些项目因为场景的特殊,需要像打造一个分布式系统一样从新造轮子,自己做一个区块链系统。
现在许多标榜着『快速上手区块链』的教程都仅仅是到在 Ethereum 上发币的这种程度,如果看完这样的教程就觉得上手了,那和看完一本《21天精通 xxx 语言》无异。如果想体验一下区块链的真实难度,看看《Mastering Bitcoin》这本书就知道了,而这也还是开始。BTW,看完这本书的前六章,就具备了实现 Bitcoin Transaction 部分的所有知识,然而从知道这些知识到产出代码,就不是动动手指那么简单了。
Talk is cheap, show me the code.
区块链是个黑洞,入坑要谨慎,然而美妙的是,黑洞的另一头,是个新的世界,甚至,是个新的宇宙。
Congratulations @liaocheng, you have decided to take the next big step with your first post! The Steem Network Team wishes you a great time among this awesome community.
The proven road to boost your personal success in this amazing Steem Network
Do you already know that awesome content will get great profits by following these simple steps that have been worked out by experts?
Congratulations @liaocheng! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP