一、序
根据设计,智能合约是不可变的,每一笔用来转账、部署合约或者和合约交互的交易都被存在一个叫做区块链的公共账本上。一旦交易发生,就再也无法隐藏或者改变。但随之而来的就是智能合约一旦部署之后,就再也无法改变源码。开发中心化应用会为了修复BUG或者引入新的特性而频繁更新产品。但这种方式却不适用以太坊。
因此,有一种方式可以在智能合约部署完成后,还可以对他进行升级,那该多好。
二、代理模式
尽管想升级已经部署的智能合约中的代码是不可能的,但是可以通过设计一个代理合约结构,这个结构可以让你可以通过新部署一个合约的方式,来实现升级主要的处理逻辑的目的。
所有消息通过一个代理合约来间接调用最新部署的逻辑合约。如果想要升级的话,只需要部署一个新的合约,然后在代理合约中更新引用新的合约地址就可以了。
代理合约核心代码如图所示,通过构造函数将代币合约的合约地址注入其内,然后可以执行tokenTransfer方法调用代币合约的transfer方法。
由此可见,在代币合约中的tranfer方法中,我们可以自定义其动作。
如有任何问题请联系QQ:2510472590
标签:部署,代币,浅淡,代理,升级,智能,合约 来源: https://blog.csdn.net/zgsdzczh/article/details/121120465
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。