2019 年 11 月比特币现金硬分叉后带有数据的比特币脚本

Bitcoin scripts with data after november 2019 Bitcoin Cash hard fork

我正在开发一个通过比特币脚本将元数据存储在比特币现金区块链中的应用程序。具体来说,这些脚本包括一个标准的多重签名脚本,然后是一个数据推送和一个数据弹出。例如,下面的脚本是一个 1-of-1 multisig 脚本,然后推送 { a: 'a' } 的十六进制编码并再次将其弹出。

redeemScripts OP_1 33 0x03223d34686d6f19d20519156a030f7216e5d5bd6daa9442572bbaa446d06c8dfe OP_1 OP_CHECKMULTISIG 9 0x7b2261223a2261227d OP_DROP

由于这个脚本是非标准的,我正在使用 p2sh,生成的 p2sh 脚本是

OP_HASH160 20 0xa65dfd49f4c781dea389e485395b2e53434a34fe OP_EQUAL

在 2019 年 11 月比特币现金硬分叉之前,脚本运行良好,但现在我收到错误消息

16: mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation). Code:-26

如果删除数据的推送和弹出,我会收到相同的错误消息。我查看了协议的更改,但无法弄清楚我做错了什么 (https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/2019-11-15-upgrade.md)

我想知道如何在比特币现金多重签名脚本中存储元数据。我知道 op_return 但出于超出此问题的原因,我想将数据存储在脚本中。谢谢!

问题是我发送交易的节点没有升级到最新的软件。已解决。