EOS硬分叉 我该担心吗?
版权声明:以下内容来自EOS Canada
翻译:区块链中文字幕组 Chuan
策划:Myra 王丹,编辑:蒋大千
2018/11/8
转载必须保留以上声明。仅授权原文转载。
EOS硬分叉是怎么一回事儿?
EOS上,我们很幸运可以进行基于系统合约的升级。这意味着在区块链这个空罐的智能合约里已经定义好了许多功能。
核心功能存在于区块链代码中,但其中大多数都在智能合约中。
你知道,在EOS上我们可以升级合约。例如,其中有:所有投票机制,带宽授权,带宽赎回,退款,RAM市场和区块生产计划……
这些中的一切都在这个EOSIO的智能合约中被定义好,EOSIO是系统合约。这意味着如果我们想要改变这些东西,那么我们要精心设计来实现它。 21个超级节点中的15个将进行投票,对智能合约进行更改,并且它将在既定的区块中推出。大家一起维护。不违背共识,这是设计的一部分。
现在,比方说以后会有一个SHA-7-million的新哈希算法。你希望在你的智能合约中可以使用它。比方说它是硬件加速的,所以你真的想通过智能合约接口公开它,这样它就能调用那个函数并让硬件对它哈希。所以它不是当前实现方法的一部分。所以我们需要更改nodeos(应该叫空罐才对,其他地方叫作空的容器)来公开智能合约。因此,如果他们这样做,他们不会立刻开始回滚它,因为在这种情况下,你有一个在使用它的交易,并且它被打包在区块里。但是其他区块节点没有那段代码,他们就会拒绝那个区块。所以他们实际上会把它分离开。所以当节点创建一个类似的新功能时,这就明显会产生一个硬分叉,因为这些块在两个叉上不会被认为是一样的。现在,21个超级节点中的15个决定他们将尊重社区的意愿在nodeos软件中使用SHA-7-million这个新哈希算法。
因此,他们将开始对nodeos的更改进行回滚。这里注意一下,他们不需要都同意。21个超级节点中的15个就可以。他们将对nodeos软件的更改进行回滚,让新功能得以被公开。但是等等,这不会马上被启用。它要等之后功能标志(feature flag)启用后才可以。但它仍然在代码中。所以,他们将回滚这个变化,并且如果21个超级节点中的15个确定某件事并执行它,那么其他6个人如果不遵循,他们在生产区块时就不能识别这个功能,例如,他们就将被分开。他们将被分开留在自己的链上。他们的链永远不会成为最长的链,他们分离出的链将会死亡。
所以,你不会有两种代币和两个不同的社区。这在EOS上不会发生。因此,用功能标志(feature flag)来结束故事:一旦软件被更新,我们可以进入特权帐户上的智能合约 - 系统合约,我们可以打开功能并激活它。一旦在相同的区块高度完成,通过精心设计的方式,这个功能就将被启用。这可以实现非常平稳的升级。
过去,Larimer的区块链以这种方式进行了多次升级,而没有让社区一分为二。没有分叉出来的代币,没有分离出来的社区。这是推进区块链功能的一种非常好的方式。
以上就是你需要了解的关于硬分叉的知识。在EOS上,你不必对硬分叉过分兴奋。这将是一次很棒的体验。打开dfuse.io看看我们做的东西,你会被惊到的!