合约更新后,原有的数据怎么办?
发布于 10 个月前 作者 yuni2017 1448 次浏览 来自 智能合约

现在有如下合约

pragma solidity ^0.4.18;

contract Map {
    
    mapping(string => string) map;
    
    function getvalue(string key) public constant returns (string) {
        return map[key];
    }
    
    function setvalue(string key, string value) public {
        map[key] = value;
    }
}

这个合约里面有一个map属性。 这个合约运行了一段时间时间后,map里面就有很多数据了。 以后这个合约如果有更新,增加了方法,或者修复了bug。需要更新,那么更新后,map里面的数据还在吗? 如何解决更新,数据不丢失

5 回复

目前以太的和约好像是不支持升级的吧。

@maiiz 万一合约运行了一段时候之后,有bug了,或者新加了功能要升级怎么办?之前的数据呢?

@yuni2017 你可以重新搞个合约呀,旧的费掉

@maiiz 旧合约里面还有数据。比如说上面的mapping(string => string) map; 旧数据怎么办?

@yuni2017 反正以太的合约应该是不支持更新,升级的。所以旧数据就费了呀,如果你希望用旧数据,可以把旧数据在新合约里初始化写入。

回到顶部