Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Transactions 以太坊区块链的状态如何更新?_Transactions_Blockchain_Ethereum - Fatal编程技术网

Transactions 以太坊区块链的状态如何更新?

Transactions 以太坊区块链的状态如何更新?,transactions,blockchain,ethereum,Transactions,Blockchain,Ethereum,如何更新区块链的状态 我发布一个事务并将id传递给智能合约。智能合约A从智能合约B检索数据,并使用它检查智能合约中的条件是否为真。如果选中,则保存“id,true”,否则保存“id,false”。我的第一个问题是:是否应该在区块链上保存此信息?我只有最初的事务发送id,那么这怎么可能呢 我储存身份证,没错。一段时间后,值true变为false。但是,如果旧对存储在区块链上,并且区块链是不可变的,那么如何更新副本 我正在使用以太坊尽管区块链是不可变的,但并不意味着当前状态无法更新。每个以太坊区块都

如何更新区块链的状态

  • 我发布一个事务并将id传递给智能合约。智能合约A从智能合约B检索数据,并使用它检查智能合约中的条件是否为真。如果选中,则保存“id,true”,否则保存“id,false”。我的第一个问题是:是否应该在区块链上保存此信息?我只有最初的事务发送id,那么这怎么可能呢
  • 我储存身份证,没错。一段时间后,值true变为false。但是,如果旧对存储在区块链上,并且区块链是不可变的,那么如何更新副本

  • 我正在使用以太坊

    尽管区块链是不可变的,但并不意味着当前状态无法更新。每个以太坊区块都是由账户余额和智能合约变量组成的新状态。当前状态是以太坊节点看到的最后一个有效块。不能更改历史记录,但可以使用事务更改当前状态


    由于问题过于广泛且超出了基本的区块链概念,我建议先参加以太坊智能合约开发课程。

    我正在从事一个项目,客户希望在某个城市进行预订,但只有在天气条件好的情况下才接受预订。第一步是使用客户id和其他参数(如进行预订的城市)向智能合约发送交易。通过oracle收集此数据后,智能合约将比较数据,确定保留是否有效,并保存“id,true”或“id,false”。我的问题是:这些数据(“id,true”或“id,false”)保存在哪里?我的第二个问题是:oracle定期向智能合约发送更新的天气数据,如果有任何更改,我必须能够更改“id,true”->“id,false”,以表明由于更改,保留无效。有可能吗?@MarioRoma contracts有内部存储插槽。合同可以使用密钥写入或读取它们。它是一个键值trie。通过对契约的存储trie进行散列来跟踪对契约存储的每次更新,然后此更改将更改层次结构中的所有散列,直到整个块的散列。它存储在以太坊网络的所有10k节点上。更改区块链数据的唯一方法是发送交易,因为只有通过检测您的签名,我们才知道谁在更改状态。inmutable只是合同的二进制代码。合同的存储是可变的