如何在Moonbeam网络中检查交易确定性

链上交易的最终确定性是指一笔链上的交易几乎是确定的,这也意味着交易无法更改,也无法逆转。Moonbeam致力于兼容以太坊Web3 API和EVM,但开发者仍需了解Moonbem和以太坊在确定性之间的差异。在Moonbeam,我们使用基于提名权益证明(NPoS)的混合共识协议提供确定性。

概率确定性代表一个区块(及其所有交易)不被恢复的概率,这个概率会随着确认的区块数量增加而增加。因此,确认的区块数越多,交易无法恢复的概率越高,交易就越安全,发生交易被篡改及重组的可能性也就越低。如Vitalik所撰写的关于确定性的博客中所建议的:“您可以等待13次确认以获得攻击者100万分之一攻击成功的概率。”

我们将用技术语言详细阐述Moonbeam的对总确定性如何实现,以及如何查询交易的确定性。

Moonbeam具有确定性,交易通常在波卡中继链中包含交易的区块之后1到2个区块内最终确定。如要检查特定交易的确定性,Moonbeam提供两个自定义的JSON RPC端点让您可以查看指定区块或是交易是否已经被确定,该操作将会根据确定性的状态返回是/否的回应。

更详细的说,您可以使用”moon_isBlockFinalized”函数,通过提供区块哈希来确认该区块是否已经被确定。同样的,您也可以使用”moon_isTxFinalized”,通过提供交易哈希来确认该交易是否已经被确定。结果将如下图所示:

在执行操作的同时,别忘了多检查一次您输入的参数。当您在查看指定区块确定性时,您需要提供的是该区块的哈希而非区块编号。与此同时,请确保您使用的RPC URL与您希望查询的网络相关。

除了经由JSON RPC使用函数查询区块/交易确定性,Moonbeam网络区块浏览器Moonscan提供了更为简便的查询渠道,其展示了区块以及交易的确定性状态。未确定的区块/交易将会以沙漏的形式表现,而已确定的区块/交易将会以绿色的✅表示。范例如下图所示:

如果您想要了解关于Moonbeam自定义JSON RPC端点如何检查交易确定性以及相关的内容,您可以导向至Moonbeam官方文档网站的此页面

猜你喜欢

转载自blog.csdn.net/Moonbuilder/article/details/131841695