transactions : Qu'est-ce qu'une méthode étape par étape pour insérer des données dans OP_RETURN  ?


Cela nécessite une instance bitcoin qui accepte les connexions RPC, bien qu’elle puisse être implémentée sans cela. Vous pouvez le trouver sur github ici. Il a été testé, mais uniquement sur testnet. Je vais parcourir le code et expliquer ce qu’il fait.

Commencer

logging.basicConfig() logging.getLogger(« BitcoinRPC »).setLevel(logging.DEBUG)

Cela rend la journalisation plus détaillée. C’est pratique car cela montre quels appels RPC sont effectués.

transactions : Qu'est-ce qu'une méthode étape par étape pour insérer des données dans OP_RETURN  ?

Lister les extrants non dépensés

listunspent()

Décimal (« 0.005 ») – SATOSHI

Créer une transaction

Ce sont deux encodages différents d’un Pay to Public Key Hash de tous les zéros. Celui du haut est la représentation du réseau principal et celui du bas est la représentation du réseau de test.

Rappelez-vous, c’est mon adresse de changement. Si vous ne le changez pas, vous m’enverrez de l’argent.

Cependant

Remplacer la sortie factice par notre propre sortie

# puis la longueur du hachage

puis recherchons le motif qu’il crée et le remplaçons. Il y a probablement une meilleure façon de faire cela, mais cela semble plus facile.

J’utilise la chaîne Melons. mais vous pouvez utiliser n’importe quoi. (Cependant, au-dessus de 40 octets, ce n’est pas standard.) J’ai couvert la plupart de cela dans mon autre réponse.

Ce code rompra avec des données de plus de 251 octets. Si vous voulez qu’il fonctionne sur des données plus longues que cela, encodez correctement une variante.

si oldScriptPubKey n’est pas dans tx  : lever une exception (« Quelque chose s’est cassé  ! « )

Erreur lors de la vérification de cette méthode très bancale.

tx = tx.replace(oldScriptPubKey,

Enfin, un remplacement de chaîne remplace le nouveau script par l’ancien.

Signez-le

tx = rpc.signrawtransaction(tx)

Bitcoin gère le soulèvement ici.

Diffusez-le sur le réseau.

rpc.sendrawtransaction(tx)

Fait ! Maintenant, attendez que votre transaction entre dans un bloc.

vous obtenez.

Melons.

Fait !

J’ai trouvé cette page Web utile en écrivant ceci.