【非常重要】关于以太坊合约的升级和销毁!

第一:智能合约升级:

          众所周知,以太坊是去中心化的网络,智能合约一旦创建就无法修改,那么这里谈的所谓升级其实就是在原有的合约不变的情况下,创建一个新的合约然后调用旧的合约数据,所以在创建合约之初,必须把合约的逻辑层和数据层分离,逻辑可以随时升级,但是数据就没办法升级了!

 

数据层:写入是需要消耗gas,读取是不需要gas,但是如何是被调用的话,读写都要gas,gas在读写数据中,还是蛮大的成本,所以要慎重考虑!

 

逻辑层:逻辑层没有数据的存储,哪怕合约地址改变了,也不会有太大的影响!

 

关于合约升级的问题,可以参考【玩过以太坊接口的就懂这个意思】:http://baijiahao.baidu.com/s?id=1598874502741898860&wfr=spider&for=pc

 

第二:合约销毁

合约销毁确保必须是管理员调用:

  • selfdestruct(address recipient):销毁当前合约,把余额发送到给定地址

 

注意:合约一旦销毁,就无法继续交互,数据读写都会失败,但是测试发现,合约依然可以接收以太币,所以是否要销毁合约自己决定,合约一定销毁了,你当前合约的余额是可以转出到你想要的地址,但是销毁之后,在接收的ETH就无法转出了!【销毁要慎重】 

function is_admin(msg.sender) kill() external {
        selfdestruct(youAddress);
    }

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值