python : erreur de diffusion pour testnet de transaction bitcoin brute
J’essaye de créer une transaction brute et de l’envoyer au testnet. J’utilise des clés testnet et voici la sortie lisible simplifiée de mon script:
clé privée décodée :
testnet private ky =
Clé publique du récepteur :
out1Script:
out1 longueur du script en octets = 25
Ma clé publique :
out2Script:
out2 longueur du script en octets = 25
Message à signer :
mon pub k sans 04 partie ajouté :
pub k len : 128 d’une longueur de 64 octets
signatureeeee :
longueur signature : 142
vérifier signatureeeee avec clé de pub sans ’04’ ajouté qui est dérivée directement de la clé privée : True
pub wif ky :
pub ky de pr ky :
sigscript:
sigscript lennn : 278
pubky len dans sigscript: 65
Formatage de la transaction réelle :
version ——————- 01000000
transaction utilisée ———- 01
transaction sur Hex ——
indice de sortie de transaction —– 00000000
taille du script de signature ——- 8b
sigScript —————–
taille sig —- 48
signature —
comment ce script s’applique —– 01
pub ky len — 41
clé de pub–
cette clé de pub mesure 65 octets dueto ’04’ ajouté
séquence —————— ffffffff
non. hors trxn ———– 02
valeur out1 —————- 00c4090000000000
out1 script len ———– 19
out1 Script —————
valeur out2 —————- c0cf6a0000000000
out2 script len ———– 19
script out2 —————
temps de verrouillage —————– 00000000
Transaction de chaîne hexadécimale :
//live./btc-testnet/pushtx/
qui montre cette erreur :
Erreur lors de la validation de la transaction : erreur lors de l’exécution du script pour l’entrée 0 faisant référence à à 0 : le script n’a PAS été vérifié avec succès.
L’indice 0 de cette transaction est:
essayé de diffuser en utilisant:://testnet./tx/send
qui montre cette erreur :
16 : obligatoire-script-verify-flag-failed (Script évalué sans erreur mais terminé avec un élément de pile supérieur faux / vide). Le code : -26
Lorsque je décode la transaction en utilisant:://live./btc-testnet/decodetx/
ça montre :
« adresses » : ,
-1,
-1,
« confirmations » : 0,
faux,
« frais » : 6499,
« hash » : « »,
« contributions » : ,
« âge » : 1489541,
7646499,
« »,
« Script » : « »,
« pay-to-pubkey-hash »,
« séquence » : 4294967295
« les sorties » : ,
« script » : « »,
« pay-to-pubkey-hash »,
« valeur » : 640000
« adresses » : ,
« script » : « »,
« pay-to-pubkey-hash »,
« valeur » : 7000000
],
« préférence » : « faible »,
« reçu » : « 2019-05-02T00 : 31 : 23.148760954Z »,
« 54.162.99.128 »,
« taille » : 258,
« total » : 7640000,
« ver » : 1,
Jusqu’à présent, ce que j’ai trouvé, c’est qu’il y a une sorte de confusion dans la partie sigscript parce que l’adresse à laquelle les pièces sont envoyées est: qui est » 04 » ajouté à la clé de pub et appliqué sha256 à cette nouvelle clé, puis ripemd160, mais la signature ne peut que être vérifié avec la pubkey sans la partie 04.
Alors maintenant, je ne sais pas trop comment procéder. Si quelqu’un a besoin du code pour regarder, je suis heureux de le fournir.