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 —————–

  • — formatage 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é

  • – fin du formatage sigscript —-
  • séquence —————— ffffffff

    non. hors trxn ———– 02

    python : erreur de diffusion pour testnet de transaction bitcoin brute

    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.