Author

Topic: Как подписать P2SH-транзакцию в Bitcoin Core? (Read 185 times)

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
дак не может быть стандартного способа подписывания нестандартной транзакции... Там может быть подпись в начале, может быть в середине, может быть несколько подписей в разных местах, а может не быть ни одной подписи вообще. Откуда кора знает: куда вы хотите подпись воткнуть?
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
Так просто кор не для этого создан. У него свое назначение. 
А для чего он создан? P2SH когда там ввели, аж в 12-м году, что ли? Почему главный софт с ним полноценно не работает?
Quote
Честно говоря много функций не хватает в коре, в том числе для меня не хватает vanity-address генератора
Ну да, каждому свое, по мне так такой генератор там ни к чему, баловство одно (возможно, я просто пока не понимаю его смысл)).
sr. member
Activity: 1092
Merit: 273
Спасибо за ответ.
Для подписи нужен твой приватник, ты доверишь свой приватник кому-то кроме себя или биткоин коры?
Подписывал бы на отлученном от сети компе. В принципе, надо этот coinb.in погонять с разными скриптами, если будет работать, то сойдет. Странно как-то, что какая-то левая прога может подписать транзакцию, а кор не умеет (.

Так просто кор не для этого создан. У него свое назначение.  Честно говоря много функций не хватает в коре, в том числе для меня не хватает vanity-address генератора
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
Спасибо за ответ.
Для подписи нужен твой приватник, ты доверишь свой приватник кому-то кроме себя или биткоин коры?
Подписывал бы на отлученном от сети компе. В принципе, надо этот coinb.in погонять с разными скриптами, если будет работать, то сойдет. Странно как-то, что какая-то левая прога может подписать транзакцию, а кор не умеет (.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Да. Не умеет Bitcoin Core подписывать нестандартные скрипты.
Понятно, спасибо. А как их подписывать тогда лучше, какие способы есть?

Если без коддинга, то никак наверное.
Для подписи нужен твой приватник, ты доверишь свой приватник кому-то кроме себя или биткоин коры?
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
Да. Не умеет Bitcoin Core подписывать нестандартные скрипты.
Понятно, спасибо. А как их подписывать тогда лучше, какие способы есть?
legendary
Activity: 2314
Merit: 2300
Или это кор не хочет кастомные скрипты принимать?

Да. Не умеет Bitcoin Core подписывать нестандартные скрипты.
https://bitcoin.stackexchange.com/questions/72706/bitcoin-tx-sign-redeem-p2sh-transaction-unable-to-sign-input-invalid-stack-siz#comment85989_72708
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
Привет. Хочу научиться создавать P2SH-транзкции. Сделал скрипт, адрес, закинул сатошики, пытаюсь потратить, но не могу подписать транзакцию в Bitcoin Core 0.18.1 (тестнет). Даю такую команду:
Code:
signrawtransactionwithkey "0200000001a4c7dcc2418799bcff07e78b30175369c52532b4590c5d77e7029b9d200545b60000000000fdffffff01bc020000000000001976a91406e5e10f03efd4b218285699b902a42d8250d95288ac321f1800" '["cV6sEWYvtFz7EW8TJMf5Bf25c6LXVXCdFwtPQfDaUADYnexxWGML"]' '[{"txid":"b64505209d9b02e7775d0c59b43225c5695317308be707ffbc998741c2dcc7a4","vout":0,"scriptPubKey":"a9146f9b998ef68634213b3071519788a90c722aa28387", "redeemScript":"03321f18b175210231310bfe71d36cb204a22c4db0e736de7efd091cec2db3f2c49d90661232f182ac","amount":0.000007}]'
Выдает результат (не понимаю, кстати, зачем там в "hex" 2a появилось перед redeem скриптом):
Code:
{
  "hex": "0200000001a4c7dcc2418799bcff07e78b30175369c52532b4590c5d77e7029b9d200545b6000000002a2903321f18b175210231310bfe71d36cb204a22c4db0e736de7efd091cec2db3f2c49d90661232f182acfdffffff01bc020000000000001976a91406e5e10f03efd4b218285699b902a42d8250d95288ac321f1800",
  "complete": false,
  "errors": [
    {
      "txid": "b64505209d9b02e7775d0c59b43225c5695317308be707ffbc998741c2dcc7a4",
      "vout": 0,
      "witness": [
      ],
      "scriptSig": "2903321f18b175210231310bfe71d36cb204a22c4db0e736de7efd091cec2db3f2c49d90661232f182ac",
      "sequence": 4294967293,
      "error": "Unable to sign input, invalid stack size (possibly missing key)"
    }
  ]
}

Закинул транзакцию в coinb.in:
Code:
0200000001a4c7dcc2418799bcff07e78b30175369c52532b4590c5d77e7029b9d200545b6000000002903321f18b175210231310bfe71d36cb204a22c4db0e736de7efd091cec2db3f2c49d90661232f182acfdffffff01bc020000000000001976a91406e5e10f03efd4b218285699b902a42d8250d95288ac321f1800
Подписалось и отправилось без проблем, значит, получается, нигде не накосячил.

Вопрос, что я сделал не так? Или это кор не хочет кастомные скрипты принимать? Какими инструментами тогда лучше пользоваться для создания таких транзакций (желательно попроще, я не программист)?
Jump to: