智能契约和状态变量存储在区块链中,假设在部署智能契约期间,状态变量和智能契约存储在块1中,而在将来状态变量被某个事务更改时,块1中的变量会被更改吗?(如果是这样的话,它将不批准块链的不可变性),或者它会创建一个新的块,其中包含新的状态变量和代码,那么它将是智能契约的一种版本控制,但这显然不是真的。
发布于 2018-12-20 13:09:08
Ethereum块链是一个状态机。在提交的事务中定义状态变量时,数据将跨网络节点存储和同步。例如,“x是‘hello’”
当您提交一个对该变量进行更改的事务时,您实际上存储了一条消息:“x现在是‘再见’。”这是跨节点同步的。
当您查询该变量当前是什么时,您的客户端实际上会重新运行每个事务和状态更改,以识别值。它表示“x是‘hello’”,然后在第5块中改为‘再见’,因此当前的值是‘再见’。
因此,要获得当前值,需要一个完全同步的节点,该节点包含对变量的所有更改。
https://ethereum.stackexchange.com/questions/64381
复制相似问题