编者按:本文来自橙皮书,作者:orangefans,星球日报经授权发布。今天,借助Polkadot团队发布的工具——Substrate,创始人GavinWood在Web3峰会上用15分钟开发完成了一条链。
特别值得一提的是,GavinWood是用一台全新未拆封的Mac电脑搞的,所以这里面还包括了搭设开发环境等时间。可见开发一条链的速度之快。GavinWood不仅是Polkadot创始人,之前也是以太坊联合创始人和Parity钱包的创始人。以前发币是一件困难的事情,Parity钱包当时的一大功能就是让你可以三分钟发一个币。因此,在场很多人都对15分钟发一条链这件事感到非常激动,甚至有人认为,区块链要从「全民发币」的时代走向「全民发链」的时代了。15分钟开发一条链到底是怎么做到的呢?
Substrate其实就是一个区块链的开发框架,它让你可以只写应用层上的状态机和交易处理逻辑这样的东西,而不用去操心底层的P2P网络、共识算法等基础协议,因此可以大大节省开发周期,提高区块链的开发效率。如果要做一个不太严格的类比的话,有点像你想在互联网上开发自己的网站,在以前需要自己动手实现http通讯协议,但现在你只需要专心写web应用就行了——甚至你可能都不需要自己写代码,通过类似WordPress这样的建站工具,直接模块化地添加自己想要的功能,就可以“拼”出一个博客或者网站出来。如果你关注橙皮书,应该会有印象之前我们发过一篇用通俗易懂的语言解释CosmosNetwork的文章。Polkadot和Cosmos挺像的,二者都是跨链领域的明星项目。之前Cosmos已经开发了类似Substrate的开发框架,也就是Tenermint和CosmosSDK。Cosmos让你可以快速开发一条属于自己的链,然后再通过IBC的跨链通讯协议,把这些链全部连接起来,组成一个大网络。从今天GavinWood的演示来看,Polkadot的思路和Cosmos的思路基本是一致的,这两个项目之前也经常被拿来比较。我倒不关心二者最后一定会有谁胜出,因为Polkadot和Cosmos其实也是可以互相连接在一起的,也许它们可以共同组成一个更大的区块链网络?我更关心的一个的问题是:为什么GavinWood和Cosmos创始人Jaekown都抱有相同的想法,认为每个人都应该拥有一条属于自己的链?在Web3峰会现场,GavinWood说:“我不想世界只有一条的链,尽管它可能是一条完美的链,但它是一条垄断的链。这将是对区块链极端主义的最大抗争。区块链行业对于一种类型的区块链的看法过于民族主义和极端主义,为创造设置了进入障碍,减少了技术人员的乐趣。”而在之前橙皮书采访Cosmos团队的时候,Jae也讲了类似的话:橙皮书:我很好奇为什么你会相信人们会有自己的链?因为你要自己维护一条链的话,其实是非常困难的?jae:的确很难。但我觉得这里面有一种类似于人类本能的东西存在,所谓人的“自举”能力,倾向于通过自己的努力获得成功。任何时候人们感觉主流的链不能满足自己的需求,这背后就会有一些潜在的价值,一旦你有一个社区,有一条自我激励的链,这些价值就会长大。我觉得自始自终会存在两种力量,这两股力不停地互相push:一种是朝着中心化的、集群的方向,另一种是人们想要某种可替代性,或者第二选择。为什么我们需要那么多条链?
BTC在15分钟内涨幅超过1.00%:据火币全球站数据显示,BTC/USDT在15分钟内出现剧烈波动,涨超1.00%,达到1.00%。当前报价为 9212.98 美元,行情波动较大,请注意风险控制。[2020/4/30]
Cosmos提供了比较有趣的一个理由是,他们希望让每个Dapp都成为一条单独的链。现在的普遍做法是,开发者在一条大一统的公链上,通过公链的虚拟机,开发并运行不同的Dapp,比如以太坊的EVM。Cosmos认为,可以通过开发框架,让开发一条链变得像开发一个Dapp那样简单。这次GavinWood通过Substrate的演示一定程度上也真的做到了这一点。不过,这种为某个应用量身定做的链真的有道理吗?真的有必要让每个应用“链化”吗?Cosmos团队之前写过一篇文章专门探讨这个问题,文章题目叫Whyapplication-specificblockchainsmakesense,也许值得一读。文章里面的核心观点提炼出来,有如下4个理由:1、性能用开发一条链的方式来开发一个Dapp,意味着你在区块链底层只需要定义自己应用需要的交易类型和状态转换函数。这些内建的数据结构和功能只需要满足你自己的需求,所以会极大地提高Dapp运行的性能和效率。2、安全性基于虚拟机的公链可以被攻击的范围很大。因为虚拟机本身非常复杂,只要是复杂代码就可能存在漏洞,特别是实现了图灵完备的虚拟机,它需要为开发者提供更大的编程空间,也就越有可能被攻击。这也是为什么采用分层设计的Nervos在验证共识的CKB引擎上故意做成“图灵不完备”的原因,因为“安全性”大于“需求”。特定应用的区块链只需要考虑应用各个部分间的安全性,而不用操心应用和虚拟机之间的安全性。3、主权性你可以自己决定要使用POS还是POA的共识算法,一旦你的应用出现一些问题,需要作出改变,你完全可以自己决定要不要换共识算法。也就是说,在你的“应用链”上,“治理”也是相配套的,你能拥有更大的掌控权。如果你在以太坊EVM的虚拟机上开发Dapp,这个应用一旦被黑客攻击、里面的钱被黑客偷了,除非你能征求获得以太坊社区的同意,不然你不可能修复这些损失。但在自己的链上,你不需要担心这个问题。4、灵活性另一个原因是,使用公链的虚拟机开发Dapp会受限于虚拟机本身的要求。比如你在EVM上就只能选择Solidity或者Serpent这些有限的编程语言,或者你想开发的应用需要实现自动化的状态转换,这一点在EVM上也无法实现,因为EVM规定了需要由终端用户执行一笔交易才能触发一个状态转换的操作。而在一个特定应用的区块链上,你可以实现自动化的状态转换,同时通过Cosmos的tendermint你还可以用任何编程语言开发自己的应用。当然,这4点原因并不代表特定应用的区块链就一定比通用虚拟机的公链来得好。在公链的虚拟机上开发Dapp也有好处。Cosmos认为,在以下这些情况下,你更应该选择在虚拟机上开发Dapp:小型、低使用量的应用或者原型产品。虚拟机非常实用,而且对用户比较友好,他们能让开发者在数分钟内开发一个去中心化应用。所以在应用相对比较简单、不复杂,甚至只是做概念验证的原型时,实用虚拟机更合理。如果你不想部署验证节点集合,那么也应该选虚拟机。这样你不用自己维护一个区块链的网络。Cosmos会在未来发布一个可以“共享”的验证节点集合,让这部分开发者省去这一烦恼。如果你的用户需要在你的产品上增加自己的业务逻辑,那么选择虚拟机来开发也是更合适的老实说,这几个理由其实都不能完全说服我。从实用层面来看,公链更像一台集成了硬件和操作系统的计算机。我们肯定不需要每个人都做一台属于自己的手机,我们甚至不需要太多的操作系统,有windows、Linux、安卓、ios这些就够了。现阶段来看,让每个人都拥有开发一条链的能力,更像是出于意识形态方面的必要性。我们并不需要太多的区块链,让每个人都能够发token其实就够了,因为围绕一个token来建设一个生态系统,要比围绕一条链来得简单得多,也更有必要。因此,15分钟发一条链,这件事对区块链行业的意义,更多的也许会体现在降低公链和应用的开发门槛上,从而提升整个行业的创新活跃度。区块链现在更急切的需求是“创新”,让更多人进来尝试,产生更大的想象力,借着想象力找到合适的落脚点和真正创造价值的场景。从这一点上来看,Substrate和CosmosSDK这类成熟的开发工具,或许可以帮助更多互联网领域的开发者快速入门。
BTC在15分钟内跌幅超过1.00%:据火币全球站数据显示,BTC/USDT在15分钟内出现剧烈波动,跌超1.00%,达到-1.07%。当前报价为5872.84美元,行情波动较大,请注意风险控制。[2020/3/30]
行情丨BCH在15分钟内涨幅超过3.00%:据火币全球站数据显示,BCH/USDT在15分钟内出现剧烈波动,涨超3.00%,达到3.03%。当前报价为 317.08 美元,行情波动较大,请注意风险控制。[2020/1/24]
行情 | EOS 15分钟涨幅超过1.00%:据Bitfinex数据显示,EOS 15分钟内涨幅超过1.00%,现报价6.38美元,价格波动较大,请密切关注行情走势,注意风险控制。[2018/8/29]
行情 | BTC 15分钟涨幅超过1.00%:据Bitfinex数据显示,BTC 15分钟内涨幅超过1.00%,现报价6583.10美元。[2018/8/10]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。