http://www.7klian.com

以太坊智能合约版本进级教程

}
onlyOwner()
address[] previousBackends;
function changeContract(address newVersion) public
function SomeRegister() {



}

contract SomeRegister {
尽量这种要领制止了与注册表条约有关的问题,但它也有其自身的问题。 譬喻假如打点不妥,数据存储很容易失败。假如新合约的存储机关与以前的合约差异,则数据大概已损坏。此实现还防备您从函数吸收返回值,从而限制了其用例。
require(msg.sender == owner);
function() {




在这里,我们将先容一些更平易近人但不太适合的智能合约可进级性办理方案。尽量这些不是最佳要领,但它们是当今利用的焦点。

署理合约用于将数据和挪用转发到逻辑合约。利用署理合约,用户可以始终挪用沟通的合约地点,而且将其简朴地转发到当前逻辑合约。

owner = msg.sender; // this owner may be another contract with multisig, not a single contract owner

currentVersion = newVersion;
这种要领长短常倒霉的,因为当用户想要利用合约时,他们必需首先查找当前地点。不然大概导致资金损失。将数据迁移到新合约中也很是坚苦,因此必需仔细思量此进程以制止失败。


previousBackends.push(backendContract);


contract Relay {


它利用两个智能合约的事情:注册表合约和逻辑合约。注册表协定仅用于将用户指向逻辑协定的当前

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读