bitcoind : Erreur vide du script P2WSH Bitcoin Core Witness

  • L'erreur "bitcoind : Erreur vide du script P2WSH Bitcoin Core Witness" peut survenir lors de l'exécution d'un script P2WSH sous Bitcoin Core.
  • Cette erreur est généralement causée par une syntaxe incorrecte du script ou une incompatibilité entre les versions de bitcoin utilisées.
  • Pour résoudre cette erreur, il est recommandé de vérifier la syntaxe du script et de s'assurer que toutes les versions de bitcoin sont compatibles.

J’essaie de dépenser une sortie P2WSH. Voici les mesures que j’ai prises :

  • J’ai créé une sortie P2WSH via bitcoin-cli. Voici les détails de la sortie P2WSH :
  • Tapez V0_P2WSH scriptPubKey (asm) OP_0 OP_PUSHBYTES_32 a2b95877500eb4180401640c5649c55ce578584f865e4f1609f9971ca19d6f40 scriptPubKey (hex) 0020a2b95877500eb41804016 40c5649c55ce578584f865e4f1609f9971ca19d6f40 Dépenses fiscales non dépensées

    Vous pouvez également le consulter ici : https://blockstream.info/testnet/tx/3010534df31914f938014d34d0bd402ce1a741a46624b28abcfd2462126331a5?expand

    bitcoind : Erreur vide du script P2WSH Bitcoin Core Witness

  • Afin de dépenser ce résultat, je crée d’abord une transaction via bitcoin-cli en tant que telle :
  • bitcoin-cli créer une transaction brute [{\ »txid\ »:\ »3010534df31914f938014d34d0bd402ce1a741a46624b28abcfd2462126331a5\ »,\ »vout\ »:0}] [{\ »tb1q77vr56qx6y5vs2zzt9qc85ge62j30r6vaccfxl\ »:0.0000007}]

    Cela génère la sérialisation suivante :

    0200000001a53163126224fdbc8ab22466a441a7e12c40bdd0344d0138f91419f34d53103000000000000fdffffff014600000000000000160014f7983a6806d 128c82842594183d119d2a5178f4c00000000

  • J’essaie maintenant de signer le message
  • Bitcoin-cli signrawtransactionwithwallet « 0200000001a53163126224fdbc8ab22466a441a7e12c40bdd0344d0138f91419f34d53103000000000000fdffffff014600000000000000160014 f7983a6806d128c82842594183d119d2a5178f4c00000000″ [{\ »txid\ »:\ »3010534df31914f938014d34d0bd402ce1a741a46624b28abcfd2462126331a5\ »,\ »vout\ »:0,\ »scriptPubKey\ »:\ »0020a2b95877500eb4180401640c5649c55ce578584f865e4f1609f9971ca19d6f40\ »,\ »witnessScript\ »:\ »4c02efef754c14f7983a6806d128c82842594183d119d2a5178f4cac\ »,\ »amount\ »:0.0000007}]

    Cependant, cela ne fonctionne pas, car j’obtiens toujours l’erreur suivante :

    { « hex »: « 0200000001a53163126224fdbc8ab22466a441a7e12c40bdd0344d0138f91419f34d5310300000000000fdffffff014600000000000000160014f7983a 6806d128c82842594183d119d2a5178f4c00000000 », « complet »: faux, « erreurs »: [
    {
    « txid »: « 3010534df31914f938014d34d0bd402ce1a741a46624b28abcfd2462126331a5 »,
    « vout »: 0,
    « witness »: [
    ] »scriptSig »: « », « sequence »: 4294967293, « error »: « Le programme témoin a reçu un témoin vide » } ]}

    Je ne comprends pas pourquoi je reçois un Le programme de témoin a été transmis avec un témoin vide erreur, car je transmets explicitement un script témoin dans la ligne de commande. Y a-t-il un bug ou qu’est-ce qui me manque ?

    Le script témoin qui a été haché est OP_PUSHDATA1 EFEF OP_DROP OP_PUSHDATA1 f7983a6806d128c82842594183d119d2a5178f4c OP_CHECKSIG qui est sérialisé en 4c02EFEF754c14f7983a6806d128c82842594183d1. 19d2a5178f4cac