全面理解EOS——0.区块链企业操作系统

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/w7849516230/article/details/80755817

号称区块链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是第一个,但肯定不会是最后一个。

转载请注明出处:http://blog.csdn.net/w7849516230,欢迎关注微信公众号“编程阳光”
扫码关注

阅读更多

扫码向博主提问

w7849516230

非学,无以致疑;非问,无以广识
去开通我的Chat快问

没有更多推荐了,返回首页