signature : signature manuelle de la transaction bitcoin


J’essaie de créer une transaction BTC avec une entrée et deux sorties. Et je fais tout cela sur mon backend regtest. La transaction brute non signée est

Je peux ensuite utiliser le bitcoin rpc pour le signer et cela fonctionne, donc je suis à peu près certain que cette partie est correcte. Cependant, lorsque j’essaie de le signer manuellement, j’obtiens l’erreur

500  ::null, »error » ::-26, »message » : »16  :, »id » :

J’ai suivi les étapes décrites dans Comment échanger un Tx de base ? ainsi que la signature d’une transaction brute avec Python ECDSA (ou OpenSSL) ainsi que la tentative d’utilisation de pybitcointools pour signer l’entrée sans succès.

signature : signature manuelle de la transaction bitcoin

L’adresse et la clé privée que j’utilise sont

adresse : «  » pk  : «  »

et étrangement, même si le PK est celui qui m’a été donné par./bitcoin-cli -regtest dumpprivkey ne semble pas correspondre à l’adresse et je ne sais pas pourquoi ni ce que je dois faire ( il est au format WIF et compressé, c’est-à-dire 0x01 ajouté à la fin

pubkey en utilisant le code suivant  :

sha256(hashlib.sha256(tx).digest()).SigningKey. curve=ecdsa. sigencode=ecdsa.util.

et privtopub est la fonction de pybitcointools car je n’arrivais pas à comprendre comment passer manuellement de la clé privée compressée à l’adresse. Il convient de noter cependant que la clé publique ici que privtoaddr de pybitcointools ne renvoie pas non plus la bonne adresse, ce qui pourrait être la cause première du problème ?

Je serais reconnaissant pour tous les pointeurs ou choses à essayer

bravo Chris

PS : un autre aspect intéressant est que la transaction signée que je génère est beaucoup plus longue que celle générée par l’appel rpc signtransaction :

rpc : manuel :