首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >状态变量是如何存储和更新的?

状态变量是如何存储和更新的?
EN

Ethereum用户
提问于 2018-12-20 11:33:38
回答 1查看 1.7K关注 0票数 5

智能契约和状态变量存储在区块链中,假设在部署智能契约期间,状态变量和智能契约存储在块1中,而在将来状态变量被某个事务更改时,块1中的变量会被更改吗?(如果是这样的话,它将不批准块链的不可变性),或者它会创建一个新的块,其中包含新的状态变量和代码,那么它将是智能契约的一种版本控制,但这显然不是真的。

  1. 变量是如何存储在块链中的?
  2. 当状态变量被更改时会发生什么?是对第一次部署智能契约的块进行更改,还是用具有新值的智能契约创建新块?或者创建具有事务历史记录的新块(即。A的值更改为10),如果那样的话,我可以得到事务历史记录吗?
  3. 当请求更改变量状态时,事务中存在哪些信息(只有变量更改或具有新值的整个智能契约)
EN

回答 1

Ethereum用户

回答已采纳

发布于 2018-12-20 13:09:08

Ethereum块链是一个状态机。在提交的事务中定义状态变量时,数据将跨网络节点存储和同步。例如,“x是‘hello’”

当您提交一个对该变量进行更改的事务时,您实际上存储了一条消息:“x现在是‘再见’。”这是跨节点同步的。

当您查询该变量当前是什么时,您的客户端实际上会重新运行每个事务和状态更改,以识别值。它表示“x是‘hello’”,然后在第5块中改为‘再见’,因此当前的值是‘再见’。

因此,要获得当前值,需要一个完全同步的节点,该节点包含对变量的所有更改。

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

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

复制
相关文章

相似问题

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