Ранее я генерировал транзакцию с помощью CHECKLOCKTIMEVERIFY Вот транзакция https://tchain.btc.com/bb1415c166fd9f767c06d34d539f4b110ef4445f74a76c5ffad1ded33032e872
Он блокирует средства до блока 1442909. Я создаю новую транзакцию расходов.
Когда я пытаюсь подписать его:
bitcoin-cli -testnet signrawtransactionwithwallet "020000000172e83230d3ded1fa5f6ca7745f44f40e114b9f534dd3067c769ffd66c11514bb0000000000ffffffff01443dd200000000002676a92103e8546cfe53ca9014f6a352bc2e5c1f7cec1f5b344c73d4db3ed3b8f075d5c9ef88ac00000000"
{
"hex": "020000000172e83230d3ded1fa5f6ca7745f44f40e114b9f534dd3067c769ffd66c11514bb0000000000ffffffff01443dd200000000002676a92103e8546cfe53ca9014f6a352bc2e5c1f7cec1f5b344c73d4db3ed3b8f075d5c9ef88ac00000000",
"complete": false,
"errors": [
{
"txid": "bb1415c166fd9f767c06d34d539f4b110ef4445f74a76c5ffad1ded33032e872",
"vout": 0,
"witness": [
],
"scriptSig": "",
"sequence": 4294967295,
"error": "Locktime requirement not satisfied"
}
]
}
Я получил «Требование блокировки не выполнено»? Сейчас высота блокчейна составляет 1 442 912.
Что я делаю неправильно?
Bitcoin Core не поддерживает подписание скриптов с инструкциями CLTV.
Он поддерживает только:
Если вы хотите подписать что-то еще, вам нужно будет реализовать собственную логику подписи.
Ошибка, которую вы видите, связана с тем, что в транзакции расходов не установлено поле nLockTime
. В общем, CLTV работает косвенно:
nLockTime
поле было больше, чем время, указанное инструкцией CLTV.nLockTime
полем может быть подтверждена только в том случае, если время блокчейна после значения в этом поле (это даже в том случае, когда нет CLTV).Но в любом случае, даже если бы у вас было правильное nLockTime
поле, signrawtransaction
вы все равно не знали бы, как подписать этот сценарий.
пебвиндкрафт
Питер Уилле
Никос Костулас