Есть ли пошаговое руководство или какая-либо документация, описывающая, как создать нестандартную транзакцию OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
?
Кажется очень странным, что нет абсолютно никакой документации или информации о том, как создать подобную транзакцию, когда это является одним из величайших преимуществ Биткойна.
Может быть, будет полезна ссылка на какое-нибудь программное обеспечение с открытым исходным кодом, которое создает пользовательские транзакции сценариев. Я не знаю ни одного, который существует под рукой, хотя.
Я бы предложил использовать Python для достижения этой цели. У pybitcointools есть все, что вам нужно, чтобы иметь возможность десериализовать шестнадцатеричную транзакцию в JSON и манипулировать ею, а затем снова сериализовать , чтобы иметь возможность подписывать и транслировать через поддержку blockchain.info.
Этот пример перестроит стандартный скрипт с нуля:
>>> opdup = 0x76
>>> ophash160 = 0xA9
>>> push20 = 0x14
>>> opeqver = 0x88
>>> opchecksig = 0xAC
>>> pubkeyhash = 0x2dbde30815faee5bf221d6688ebad7e12f7b2b1a
Мы собираемся добавить шестнадцатеричные значения , перемещая их побитно.
Это один из способов сделать это
>>> quickfix = 0xff
>>> asm = quickfix
>>> asm = asm << 8 | opdup
>>> asm = asm << 8 | ophash160
>>> asm = asm << 8 | push20
>>> asm = asm << 8*20 | pubkeyhash
>>> asm = asm << 8 | opeqver
>>> asm = asm << 8 | opchecksig
Затем Ant, чтобы проверить, совпадает ли это:
>>> almost = hex(asm)
>>> ready = almost.partition("0xff")[2]
>>> print(ready)
Надеюсь, это то, что вам нужно :-)
АБСОЛЮТНО Идите!
import(
"github.com/btcsuite/btcd/txscript"
"github.com/btcsuite/btcd/wire"
)
tx := wire.NewMsgTx(2)
tx.AddTxOut(wire.NewTxOut(int64(*outputvalueFlag*1e8), script()))
func script() ([]byte) {
script := txscript.NewScriptBuilder()
script.AddInt64(1)
script.AddData(bytes[0:65])
script.AddInt64(1)
script.AddOp(txscript.OP_CHECKMULTISIG)
return script.Script()
}
...
Боковой фрактал
"; drop table wallet;"
возможности.РЛХ
КДж О
бвпкс
Йонас Остман
Бадр Беллай