首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何检索智能契约变量状态的演化?

我们如何检索智能契约变量状态的演化?
EN

Ethereum用户
提问于 2017-01-04 16:13:53
回答 1查看 2.1K关注 0票数 9

我有一个简单的智能契约,它的颜色是可变的,可以存储一个字符串。

如果我正确地退出,每个事务都可以更改此变量的状态,并永久存储到块链中。假设tx#1将其更改为红色,tx#1将其更改为蓝色,tx#2更改为红色,tx#3更改为绿色。

我想要红色,蓝色和绿色,而不仅仅是这个可变颜色的最后一种状态。

我怎样才能做到这一点?

谢谢

EN

回答 1

Ethereum用户

回答已采纳

发布于 2017-01-04 16:27:13

通常的方法是为所有状态更改发出事件。这些可以被外部监视,包括从一开始和/或过滤器的重播。这是一个很好的方式来公开一个历史,而不使用太多的契约(昂贵)存储。

代码语言:javascript
复制
bytes32 x;

event LogChangedX(bytes32 X);

function doSomething(bytes32 newX) {
  x = newX;
  LogChangedX(x); 

客户机(例如浏览器或服务器)可以查看事件日志,以发现发生在"x“中的所有更改。使用web3事件侦听器。

有一种更昂贵、存储更密集的方法,它更类似于数据库txn历史表,但大多数用例并不需要它。

希望能帮上忙。

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

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

复制
相关文章

相似问题

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