- A+
有一些特别有用的合约模式;我们会讨论其中两个, 分别是数据订阅和随机数。
1. 数据订阅.
一个数据订阅合约提供简单的服务:它允许外部的信息进入以太坊系统内。以太坊系统不会保证这个信息的精确度和及时性,这是第二方合约作者的任务, 第二方合约作者使用数据订阅并决定能否信任单个数据订阅服务。
通常的模式是, 通过消息调用触发单个以太坊中合约,得到一个关于外部现象的信息回应。一个例子可能是纽约当地温度。这个会作为合约执行并返回存储中的一些值。当然存储中的这些值比如温度需要维护以保证准确, 这样模式中的第二方才可以将其作为外部服务来运行以太坊节点, 当发现一个新区块时立即创建一个新的有效交易发送到合约并更新存储中的值。合约代码将仅仅接受包含指定服务的数据更新。
2. 随机数.
在确定系统中提供随机数字, 显然是一个不可能实现的任务。然而我们可以利用根据交易时还不可知的数据来生成伪随机数。比如区块哈希值、区块时间戳、区块受益人的地址。为了避免被矿工难以控制这些随机数