moz*_*nge 5 blockchain ethereum
区块链备受评价的功能之一是存储在区块链上的数据的可追溯性,我认为记录的价格是不可变的。
我试图找出如何在以太坊区块链上实际跟踪状态变化。为了解释我的问题,以下面的智能合约为例
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
Run Code Online (Sandbox Code Playgroud)
在这个合约中,重点是storedData状态变量。让我们假设值在无数次加班中发生了多次变化。那么如何追溯这一历史记录storedData以查看在不同时间点分配给它的所有值。我正在寻找一种实用的方法来做到这一点。
您有两种方法可以跟踪状态变量随时间的变化情况:
1) 合约的开发使得当所述变量被修改时,其先前的状态将被添加到包含所有先前状态的数组中。前任。检查此合约事件: https://etherscan.io/address/0x3958b4ec427f8fa24eb60f42821760e88d485f7f#events
2)合约已经开发完毕,因此当状态变量被修改时,它会触发一个记录所述交易的事件。看看 consensys 中有关事件的这篇文章:
https://media.consensys.net/technical-introduction-to-events-and-logs-in-ethereum-a074d65dd61e
本文介绍了事件的三个用例:
首先,使用事件简单地从使用 sendTransaction() 调用的合约函数获取返回值。其次,使用事件作为数据的异步触发器,可以通知观察者(例如 UI)。第三,使用事件将日志写入区块链作为一种更便宜的存储形式。 ”
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |