R3 documentation for Reference States指出:
参考输入状态是ContractState,可以在以下位置引用 通过输入和输出状态的合同进行的交易,但其 合同不作为交易验证的一部分执行 事务,并且在事务提交到 分类帐,但检查其“当前性”。换句话说,合约 逻辑不只针对引用事务运行。仍然是 发生在输入或输出位置的正常状态。
关于检查“当前状态”是否意味着您只能引用未使用/未使用的状态,或者还可以引用已使用/已使用的状态?
答案 0 :(得分:1)
将包含references
列表中的状态的事务发送给公证人时,公证人将检查StateRef
列表中的那些状态(references
s是否已用完。如果已经用完(即不是最新的),那么公证人将不会签名。如果还没有用完(StateRef
还没有用完),那么它们是最新的,公证人将签署交易,并假设所有输入(如果存在)都是最新的,并且交易在以下范围内经过公证提供的时间窗口。
您不能在references
列表中包含已知已经花费的状态。这里的假设是数据将是陈旧的,因此不能依靠。
状态指针功能假定您将不引用已知为过时的数据。如果确实需要故意引用旧状态,则将StateRef
直接嵌入到您的状态中。您将必须手动确保所有需要StateRef
的参与者都拥有它。