首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新区块链上的合同的一般做法?

更新区块链上的合同的一般做法?
EN

Ethereum用户
提问于 2019-12-21 04:29:16
回答 1查看 46关注 0票数 0

我到处找了很多遍,但找不到答案。

我的理解是,一个Ethereum区块链,应该有一个/多个类型的合同。一旦生存,那些合同是不变的,没有人可以添加另一种类型的合同。如果需要创建另一种类型的契约,则应该在链中出现叉子。

这是真的吗?

在这种情况下,关于处理有经常变更或经常有新产品的合同的企业的一般建议是什么?我们每次都要旋转一个新的区块链吗?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-12-21 05:48:55

你的理解似乎不正确,虽然很难完全理解你说的话。

在Ethereum中,新合同部署是一种事务,类似于加密货币的传输,因此可以随时部署新合同,不需要分块链或启动新合同。

一旦部署,合同的字节码(控制合同行为的计算机程序)变得不可变,而合同状态可能会发生变化。合同状态包括合同中的乙醚含量、合同“S”储存的数据等。

只要字节码可以在此分析的基础上分析契约状态并改变其行为,契约行为通常就会发生变化,尽管字节代码可能不会改变。例如,可以部署一个字节代码实现( Forth )1解释器的契约,在Forth中编写实际的契约逻辑,并将其放入合同的存储中。

这样,我们就可以使用完全可变的代码来获得智能契约。

回到您的问题上,有几种方法可以使您的合同随着业务的发展而发展:

  1. 每次需求更改时,您都可以部署新的合同。需要一些技巧来保存数据。详情请参见这个问题
  2. 您可以使用可升级的合同。通常这意味着前端合同将实际工作委托给后端合同,其地址存储在前端合同的存储中。通过将前端指向不同的后端,可以改变合同行为。
  3. 使用解释技术,就像我在上面的Forth示例中一样。

如果你需要更多关于这些选项的细节,请告诉我。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/78413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档