美文网首页
EOS白皮书解读(三)

EOS白皮书解读(三)

作者: 周利蓉Amerry | 来源:发表于2018-01-07 16:55 被阅读0次
    EOS白皮书解读(三)

    一、应用程序的确定性并行执行

    1、简介:我们知道区块链最简单的理解是一个公共的账本,而维护账本共识的核心基础就是行为的确定性,这意味着如果需要并行计算,那么所有的并行计算都不能互斥或加锁,因为锁的状态是不确定的。不加锁,就需要一些方法来保证所有账户只能读写自己的私有数据库。这样每个账户只能读写自己的私有数据库。这样每个账户都必须顺序的处理消息,因此EOS的并行级别是账户级别的。

    EOS将消息传递组织成独立的线程,这样可以比例容易的评估线程并行的可能性,因为每个账户的状态只取决于传递给他们的消息。进度表,我这里理解成消息的执行顺序,这个顺序在区块产生后是确定的,而在产生过程中是不确定的,是由区块生产者按照并行算法决定。比如说区块生产者A生产区块,那么消息执行顺序就由A来决定,A产生区块后,生产者B验证区块时要完全按照A的执行顺序来验证。当脚本产生一个消息后不会被立即传送,而是会被安排到下一个循环,因为接收方当前可能在另一个线程内主动修改自己的状态。

    2、最小化的通讯延迟:这里的延迟,是指一个账户向另一个账户发送消息并接收响应所需要的时间,EOS的设计目标是能够在一个区块内来回交换消息,那么EOS是如何做到的呢?EOS将区块分成了几个循环,循环又分成了多个线程,每个线程包含一个交易列表,每个交易包含一组要传递的消息。这个结构可以看成为一棵树,在这个树中交替的层被顺序的并行的处理(如图)

    EOS白皮书解读(三)

    图中可以看到,循环是顺序执行的,线程是可以并行的,交易和消息是要顺序执行的,而接受者和被通知的账户是可以并行的。为什么接受者和被通知账户可以并行呢?

    EOS白皮书解读(三)

    3、只读消息处理:EOS对于无需更新状态的消息处理是可以并行的,只要特定的只读消息处理程序被包含在特定的循环内的一个或多个线程就可以。

    4、多账户的原子交易:有些时候需要确保消息以原子的方式传递给多个账户并需要被其接受。在这种情况下双边的消息会被放在同一个交易中,两边的账户也会被分配在相同的线程,并且消息会被顺序的处理。这样做的目的是为了确保交易成功,而这其实会带来性能上的损耗,而且在成本上也会很高,因此出于性能和成本的考虑,应用程序最好能尽力减少涉及两个或更多使用率高的账户的原子操作。

    5、区块链状态的部分评估:不同于以以太坊所有的全节点都必须运行所有的合约,EOS具备这种允许完整节点选择要运行的任何程序子集的能力,这样带来一个好处就是如果我仅仅运行一个小应用,那么我可以使用有限资源启动完整节点,比如一个交易所的开发人员运行完整节点,以便向用户展示交易状态,这个程序是不需要与设计媒体的程序有状态关联的。

    6、自主最优调度:EOS不强制区块生产者将任何消息发送给任何其他账户,每个区块生产者都可以根据处理交易所需的计算复杂性和时间作出自己的主观预测。

    二、Token模型与资源使用

    1、简介:所有的区块链资源都是有限的,需要系统放止滥用。比特币和以太坊是通过手续费和gas来防止滥用的。而EOS提供的资源:a.存储和带宽资源.b.计算和计算Backlog.c.状态存储

    2、客观与主观的衡量:a.所有的资源使用约束最终都是主观的,由块生产者根据各自的算法和估计来执行。b.可以使用客观的根据消息或存储容量来衡量,也可以自己定义主观衡量的算法。

    3、付费策略:a.应用不能强制用户为使用区块链资源而付费。b.同样的EOS也不会强制应用的收费策略。

    4、委托能力:a.持有EOS的用户可能不会立即使用链上资源。b.可以向其他用户提供或租用这些带宽。c.区块生产者能够识别这部分授权,并相应的分配带宽。

    5、分离交易成本与Token价值:a.优点:应用程序的可用带宽仅取决于Token持有量,跟价格无关。b.只要持有一定数量的Token,就可以在固定的状态和带宽使用情况下永久的用下去。c.开发者和用户不会受到Token市值波动的任何影响。(这点是比特币和以太坊做不到的)d.EOS区块链使区块生产者能够自然地增加每个Token可用的带宽,计算和存储,而不管令牌的价值如何。e.EOS区块链每次产生区块时都会授予区块生产者Token。Token的价值将影响生产者能够购买的带宽,存储和计算量。这个模型自然会利用上升的Token价值来提高网络性能。

    6、状态存储成本:a.虽然可以委托带宽和计算,但应用程序状态的存储将要求应用程序人员持有Token.直到该状态被删除。如果状态从未被删除,则Token被有效地从流通中移除。b.每个用户账户都需要一定的存储空间。因此,每个账户都必须保持最低的余额。随着网络存储容量的增加,这个最低要求的平衡将会下降。

    7、块奖励和社区利益应用:采用EOS.IO软件的区块链将在每次创建时向块生产者授予新的Token。在这种情况下,创建的Token数量由所有块生产商公布的期望收益的中位数决定。EOS.IO软件可能被配置为生产者奖励执行上限,使得Token供应的年度总增长不超过5%

    相关文章

      网友评论

          本文标题:EOS白皮书解读(三)

          本文链接:https://www.haomeiwen.com/subject/vpqmnxtx.html