号称区快链3.0的EOS主网已经顺利上线,相信基于EOS的DAPP也会越来越多。计划写一系列文章,从整体到实际操作,并深入到源码来全面理解EOS,为你的EOS之旅,DAPP之路铺平道路。EOS国内称柚子,很多文章都直接从区快链角度理解,但EOS全称Enterprise Operator System,意思是企业操作系统,为什么会有这样的名字?这其实就是他的设计目标,我们也可以从这个角度来理解它。
区快链能够用来做什么?有人在用区快链技术买卖二次元美少女
区快链能够用来做什么?有人在用区快链技术买卖二次元美少女区快链能够用来做什么?随着前段时间比特币的火热,你能够在各种各样的网络媒体上频繁的见到挖矿和区快链这样的名词。这些不太好懂的东西成了新的互联网噱头同样被运用于游戏上。玩家如果持有两个虚拟物品,就可以通过算法将虚拟物品进行结合,从而不断生成新...当前问题
首先区快链可以简单的理解为分布式的数据存储,而且各个地方可根据这些数据保持一致的状态。比特币作为区快链1.0,每个全节点都能同步全部比特币链上的数据,从而可知每个地址的余额和交易信息。
以太坊在比特币的基础上改进了对智能合约的支持,使得每个节点存储的数据中包含了可执行的代码(一份智能合约即一段代码),当条件满足时可触发代码执行。但随着用户膨胀,使用频率的增加,交易量增加,导致交易费用的增加以及交易的延时,直接限制了运行在其上的DAPPs(如CryptoKitties曾经火爆导致的问题)。暴露出的问题可以不断修修补补,但新的设计可以带来更多的想象空间。
EOS设计
EOS设计目标为一款操作系统,那就是将底层的诸多细节屏蔽,提供账号及权限管理,良好的资源管理和服务。
账号及权限
EOS的账号长度目前限制在12个字符以内,仅能使用.12345abcdefghijklmnopqrstuvwxyz字符,其中12个字符长度的可任意注册,小于12个字符的通过竞拍获得,每天仅有竞拍价格最高的一个被售出。
在账号创建时,就已经需要跟资源绑定,限制该账号最多可以使用的资源;也需要设置EOS公钥地址,对应于账号的Owner和Active权限。之后还可以自定义权限,要求合约执行者拥有相关权限
资源管理
既然是操作系统,资源是有限的,EOS提供了CPU、网络带宽(Net bandwidth)、RAM的分配及调度机制。
用户的一般操作,包括合约代码的执行,对CPU和网络带宽是持续一小段时间的,因此EOS中采用抵押(stake)的机制来换取,抵押物就是EOS Token。例如抵押1%的Token,最多能够获得1%的网络带宽。但并不是直接限制的,毕竟不是所有Token持有者都在使用网络。抵押物自然再不想使用的时候就能赎回
RAM的分配稍有不同,它是存储状态的,是长期占用的。简单来说,就是根据链上的数据产生的状态是存储在RAM中的,如一个账号的信息,包括余额的当前状态都是存储在RAM中的,因此需要购买RAM来长期存储数据(RAM的当前状态是从EOS链上的数据而来)
这些设计避免了比特币、以太坊中交易及执行代码所支付的大量旷工费用
文件系统
在EOS的存储类似与操作系统的文件系统,但又有差别。技术白皮书中提到了IPFS,期望结合智能合约提供一种去中心化的文件系统,从而为每个人提供文件存储服务,并能够直接通过浏览器来访问文件。
目前已发布的版本v1.0还未实现该功能。
智能合约服务
智能合约以及构建在智能合约上的去中心化应用DAPPs,类似与一个个操作系统中的应用。EOS为应用的升级提供良好的支持,避免了以太坊中智能合约一旦部署不可修改的问题。另外合约的执行对CPU、网络带宽的消耗又和抵押的EOS Token量相关
另一方面EOS为智能合约提供了Multi-Index DB,可理解为简单的数据库,从而能够更方便的存储合约执行中的状态信息。
社区治理机制
EOSIO作为EOS软件的开发者,仅提供开源软件,不参与到EOS的具体运行中。因此社区对EOS运行发挥着十分重要的作用。
共识算法及投票机制
EOS采用BFT-DPOS机制,就是通过投票的方式产生21个块生产者(BP或者超级节点)负责记录EOS区快链中产生的数据。这21个节点不是固定不变的,会根据每个节点持续的投票信息不断变化。EOS每年增发不超过5%,用于奖励BP。BP为了获得更多投票从而提供更好的服务,并积极组织参与社区活动。
另外还有投票EOS宪法,设置仲裁员等,可参考EOS值得你长期拥有么——运作机制解析
上述的点都可以再详细结合代码进行分析,除此之外还有跨链通信、经济模型等方面,在后续的文章中一一解读。
EOS的这种设计理念非常好,最终的实现不知道能不能达到预期设想目前还不能确定,就像PC端的Linux、Windows之后又有移动端的Android、iOS,EOS是第一个,但肯定不会是最后一个。