专栏名称: Hi区块链
可能是最靠谱不忽悠的区块链资讯平台
目录
相关文章推荐
51好读  ›  专栏  ›  Hi区块链

EOSIO™ 版本1.8.0-RC1: EOSIO共识协议升级、候补版本发布、安全性和可用性功能加强

Hi区块链  · 公众号  ·  · 2019-05-16 21:00

正文

可能是最靠谱不忽悠的区块链资讯平台


作为发展和加强EOSIO软件的贡献者,我们高兴地宣布我们已经完成了EOSIO的升级候选发布版本。您可以在GitHub存储库找到更多关于EOSIO v1.8.0-rc1的细节。详细文档将在稳定版发布的时候在EOSIO Developer Portal上更新,如果您在EOSIO区块链网络上运营节点,您可以在上GitHub找到我们的建议。


这次候选发布版本标志着EOSIO软件平台的一个重大升级:共识协议的升级,这次版本将对协议规则进行调整,要成功部署,它首先的需要区块生产节点的合作。请注意,这只是一个候选发布版本,主要用以收集反馈,社区内审核和测试升级版本几周之后,官方才会发布正式版本。目前最新的正式版是v1.7.3。


当本版本升级成正式版后,我们将会介绍一些根本机制来激活共识协议升级。在EOSIO软件的GitHub存储库#6429, #6431, 和 #6437 三个部分中,您可以看到这些机制的细节。本次共识协议升级旨在修改协议规则,而这些机制允许EOSIO区块链上2/3活跃的区块生产者去激活共识协议升级的独立功能。所有的节点需要进行本地设置才能接受这些升级,而升级的过程非常简单,和安装新的节点软件版本没有太大的差异。基本上每个功能都可以按需激活,即,每个功能可以独立于其它功能被激活,但是,正如以下每个部分会提到的,某些功能可能需要依靠其它功能存在。


EOSIO平台用户的影响:


EOSIO v1.8.0-rc1候选发布版本协议升级特性:


(#6431)启用协议功能预激活


Codename: PREACTIVATE_FEATURE


该功能实际上是激活共识协议升级的基本机制的一部分,所以,它应该是最先被激活的功能。为了在区块链上实现预激活,有些功能应该首先被设定好。这就让我们能够通过智能协议提出客观的链上政策来决定什么时候激活某个特定功能,而不是依赖于区块生产者们主观的想法。一般来说,这种客观的链上政策的形式是要求至少2/3活跃的区块生产者同意一个链上多重签名认证交易提议,而该提议能执行一个特殊的系统合约动作来预激活该特定功能。在带有该特定动作的系统合约版本被部署之前,PREACTIVATE_FEATURE功能必须已经被激活了,因为采用该行动需要在PREACTIVATE_FEATURE被激活之后才能使用的特权内在函数的支持。


(#6333)不允许连接到不存在的权限


Codename: ONLY_LINK_TO_EXISTING_PERMISSION


不允许把一个动作(通过eosio::linkauth native action)连接到一个不存在的权限中。未做该检查不会产生任何安全问题,只是为了避免不方便用户。


(#6672)修复对eosio::linkauth的过多限制


Codename: FIX_LINKAUTH_RESTRICTION


修复了无意中限定动作必须连接到最低权限要求的限制。主观减少不能修复该漏洞。但是,该漏洞不是安全问题。这是说,在该功能激活前,合约开发者不能把动作命名为updateauth, deleteauth, linkauth, unlinkauth, 和 canceldelay,以免用户对合约动作设定客户最低权限要求时遇到任何问题。


(#6458)不允许提出空生产者调度


Codename: DISALLOW_EMPTY_PRODUCER_SCHEDULE


不允许合约提出空生产者调度。本漏洞不需要主观减少,因为:提出空生产者调度不会产生问题;且只有特权合约,如系统合约,才能提出生产者调度变化。


(#6705)向自己发送动作时限制权限检查


Codename: RESTRICT_ACTION_TO_SELF


当合约向自己发送内联网动作或只发送只包含对自己动作的延期交易时,应用的授权检查绕过被移除。限制授权绕过的主观减少已经被释放了。但本功能在限制上更进一步,将其设定成客观要求,这样不管是在输入交易的原始动作、合约产生交易中的动作或者合约发出的内联网动作,所有的动作都需要进行授权检查行为。区块生产者应该要意识到,激活该功能会解除依靠其余激活授权绕过的合约,因为本功能会移除这些授权绕过。


(#6103)修复了和取代延期交易相关的问题


Codename: REPLACE_DEFERRED


现在的机制在使用send_deferred内部函数取代已有的延期交易存在一个问题。首先,用来储存初始延期交易的RAM不会回到初始支付方。其次,初始延期交易的交易ID一直存在,这就意味着新的延期交易会使用错误的交易ID退回区块中。修复这些问题需要共识协议升级,这就是本功能要做的事情。本功能还会修改任何已经受到该漏洞影响的账户的RAM使用。目前,EOSIO软件已经不允许利用send_deferred内部函数取代现存延期交易来主动减少问题。但当本功能激活时,我们就会移除该机制。


(#6115)避免延期交易的交易ID冲突


Codename: NO_DUPLICATE_DEFERRED_ID


过去取代延期交易额能会导致延期交易停止时的交易ID重复之前已停止的交易,但在使用现在EOSIO协议规则的时候还会出现其它情况导致延期交易和链上其它交易的ID相同。如果我们能保证区块链上任何两个不同的交易都几乎不会拥有相同的交易ID,那么大量的持币者,尤其是区块探索者,都能从中获益。本功能主要依靠REPLACE_DEFERRED功能,它会做出必要的调整保证我们实现上述目标。区块生产者应该注意,激活本功能会适当调整提供给合约的错误句柄的延期交易结构。对于本次调整的细节和它可能对现存合约产生的影响,详见评论。


(#6105)修改对RAM计费的限制







请到「今天看啥」查看全文