blockchain - 如何重新验证 Corda 节点上的所有事务
问题描述
我们使用带有多个节点的 Corda Open Source 4.3 网络。其中一个节点是观察者节点,所有交易都从所有节点发送。
有没有办法在任何给定时刻对观察者节点上可用的所有交易进行验证/验证?或者可以在验证公证人时进行吗?
我知道它们可能会在收到它们时被验证,但我对 recursive on demand validation 感兴趣。
解决方案
您可以使用TransactionVerifierService
来验证LedgerTransaction
流程中的 a。
首先,您需要一个包含该节点的所有可用交易的列表。您可以使用以下代码获取列表:
getServiceHub().getValidatedTransactions().track().getSnapshot()
这将返回一个SignedTransaction
.
要使用 SignedTransaction 验证这一点TransactionVerifierService
,需要将其转换为LedgerTransaction
. 可以使用以下代码完成:
signedTransaction.toLedgerTransaction(getServiceHub());
一旦你得到LedgerTransaction
使用TransactionVerifierService
来验证交易:
getServiceHub().getTransactionVerifierService().verify(ledgerTransaction);
希望这可以帮助!
推荐阅读
- c - 使用函数对数组进行排序
- vue.js - 多页应用程序和 vuejs
- r - ggplot 条形图:Scale_gradient_color:需要设置限制和中断
- css - 如何获得网络视频透明度?
- javascript - ngModel 反映到所有文本区域
- xmlhttprequest - 使用 XMLHTTP 抓取亚马逊 URL - 亚马逊阻塞?
- mysql - “Illuminate\Database\QueryException:SQLSTATE[HY000] [2002] Connection denied”来自虚拟机的 Laravel 连接
- html - 带有鼠标悬停文本的可链接图像
- c++11 - 从 void 指针访问结构中的变量
- reactjs - react-big-calendar:无法读取未定义的属性“momentLocalizer”