亿比特币网专注加密货币资讯和比特币行情走势分析。为比特币爱好者提供今天比特币价格,加密货币资讯,区块链行业信息,比特币行情分析等内容。
当前位置:亿比特币 > 最新 > 正文

Filecoin官方回话:压根没“双花”这回事

08-23 最新

技术细则

出了什么事

正在采取行动

据报道,2021年3月18日,因为Filecoin的远程过程调用代码中的“紧急错误”,出现了“双花”问题。这部分说法是不正确的,而且具备误导性。

Lotus团队对报告进行了彻底的调查,没发现Filecoin互联网或RPC API代码有任何问题。区块链本身没双花,API代码中也没bug。有问题的交易平台已经在其记账管理软件中恢复了错误的买卖,并且正在审查其存款处置逻辑以纠正API的用。

  • 类似的消息。Lotus团队知道,问题是因为两条消息共享相同的发送方/接收方详细情况和相同的nonce,但在同一个tipset中包含不一样的gas参数而引起的。两个类似的消息是更改与消息有关的gas成本的容易见到消息替换形式。Filecoin互联网安全机制正确地处置了这样的情况,不会致使进行两次消息实行:两条消息中的一条被实行,另一条被忽视。
  • 错误用API。但,依据检查链状况的方法,这可能会显示消息被处置了两次。具体来讲,这个买卖用了一种错误的方法来处置链状况——在tipset中的每一个区块上调用ChainGetBlockMessages,然后在每一个消息上调用StateGetReceipt。
  • 错误的API的返回期望。混淆在于,当对两条类似的消息调用StateGetReceipt时,它将提供相同的结果:都对应于被实行的消息。这显然是违背直觉的,但却是有意为之的行为。StateGetReceipt办法的主要用例是Lotus Miner和买卖拟定过程用的事件处置程序。在替换消息的状况下,这部分模块不关心返回的收据是不是与原始消息对应,或者与替换的消息对应——它们只想了解消息是不是在链上成功实行。大家在这里对文档进行了说明:

    https://github.com/filecoin-project/lotus/pull/5838。
  • 用正确的api。大部分交易平台都正确地用了ChainGetParentMessages和ChainGetParentReceipts来进行记账,以确定在链上实行了哪些消息并获得了成功。这部分是Lotus本身在状况计算期间用的api,因此可以保证以这种方法正确地反映链状况。对每一个消息实行StateReplay将为你提供完整的调用结果,以便你可以将返回的InvocResult中的MsgCid与查看消息的CID进行比较。这是交易平台正确检查链状况并维持其内部报告系统同步的推荐路径。

版权保护: 转载请保留链接: http://www.lyyinxingshu.cn//xinwen/166.html