[PYTHON] Connectez-vous à Bitcoin Testnet avec Pycoin

Qu'est-ce que Pycoin

Une bibliothèque Python qui peut interagir avec les réseaux Bitcoin et Altcoin. Je pense qu'il est courant d'installer Bitcoin Core pour se connecter à un réseau Bitcoin, mais c'est assez compliqué. Pycoin facilite la connexion à votre réseau Bitcoin. Il existe également des outils de ligne de commande utiles appelés KU et TX, et cet article vous montrera comment utiliser cet outil de ligne de commande et comment définir des variables d'environnement pour se connecter à Bitcoin Testnet.

Pycoin peut gérer non seulement Bitcoin, mais aussi des Altcoin relativement célèbres tels que Litecoin, Dogecoin, Dash et d'autres pièces dont vous n'avez jamais entendu parler. Il prend en charge Python 2.7 et 3.3 ou version ultérieure. https://github.com/richardkiss/pycoin

Environnement

Vous pouvez l'installer avec pip. Construisons et installons un environnement virtuel avec venv etc.

$ pip install pycoin

Qu'est-ce que Testnet

Testnet est généralement utilisé pour le développement Bitcoin. Il n'y a aucune raison d'utiliser du vrai BTC pour le développement, la production s'appelle Mainnet, mais Testnet est conçu pour les développeurs.

Cet article est détaillé. Environnement de test d'application utilisant Bitcoin http://techmedia-think.hatenablog.com/entry/2015/05/10/123243

Les pièces sur Testnet n'ont aucune valeur et peuvent être obtenues sur Faucet. https://tpfaucet.appspot.com/

Vous pouvez vérifier Testnet ici. https://testnet.blockexplorer.com/

KU et TX

Pycoin a des outils de ligne de commande utiles appelés KU et TX. https://github.com/richardkiss/pycoin/blob/master/COMMAND-LINE-TOOLS.md

KU est un "utilitaire de clé" et est comme un "couteau suisse" pour manipuler les clés, selon le développeur Richard Kiss. Est-ce si pratique?

TX est un outil de vérification et de manipulation des transactions pour la lisibilité humaine.

Tapons ku create, qui figure également dans l'exemple de code. Les clés BIP32, qui peuvent être considérées comme la norme pour les portefeuilles HD, sont émises au hasard.

$ ku create
warning: can't open gpg, can't use as entropy source

input                        : create
network                      : Bitcoin mainnet
netcode                      : BTC
wallet key                   : xprv9s21ZrQH143K2K5pPUoMrx8g8B3xSeJuAAXtt7XP6Gs1w9WWCRibNaMiEUjN9j\
                                 YpXaejADY9GGE3KyKX4oztPCt7bCZwVTw8fuyr7rPcVp3
public version               : xpub661MyMwAqRbcEoAHVWLNE65QgCtSr72kXPTVgVvzecPzowqejy2qvNgC5mofRo\
                                 PR2QT7xC4XY9pxtP2H3EoLbB2urCPgvD6FBMm1LXEBope
tree depth                   : 0
fingerprint                  : 9a087148
parent f'print               : 00000000
child index                  : 0
chain code                   : 1980c24d0593ce4a42f3dae1991cb7617f8cbac03df219a796be5392775ff361
private key                  : yes
secret exponent              : 62147175208710988790827765505072286205595207768729086914666605171876233295603
 hex                         : 89660dfd51eb4720adb856375cb0273222b6aaccf34d48ec3abbcc3e865936f3
wif                          : L1po7g8b8xtn7w7ukg8Gv6j3sEQykCS2NcWwLRZD1tDAUMMVYJ5Y
 uncompressed                : 5JroFCatgsGovgT2z2AMNYf5GutCVpT4V1LvYb7PfGEBJdEbts1
public pair x                : 68090829527568288081052782941849647349285350892240776672153772254112346326898
public pair y                : 51301029354091858472661926463670541630631183134816042193916222104982852838049
 x as hex                    : 968a0b34e401a041c684d7a675857ad7b9b1ed1936d056e43b01ac6a0180c772
 y as hex                    : 716b5a882afdc55f901d07dfe5c769106dead6710a70858e51fe51a15039a2a1
y parity                     : odd
key pair as sec              : 03968a0b34e401a041c684d7a675857ad7b9b1ed1936d056e43b01ac6a0180c772
 uncompressed                : 04968a0b34e401a041c684d7a675857ad7b9b1ed1936d056e43b01ac6a0180c772\
                                 716b5a882afdc55f901d07dfe5c769106dead6710a70858e51fe51a15039a2a1
hash160                      : 9a087148075e0ae4cd68fd4019e63f2df521572c
 uncompressed                : 017773ac09011e42b64ede8701f67a15056455ed
Bitcoin address              : 1F3TB8yLpkDxRZ8jsX9o7FPCF99VDcZsg5
Bitcoin address uncompressed : 18kmrPFEDGxXiUjr5GYsw2TxCzqqUiZ5F
Bitcoin segwit address       : p2y8WmmTAGv9XjWT8bjjyuZemZFrUz5xA7oY

Connectez-vous à Testnet à partir de la ligne de commande

Vous pouvez spécifier le nom du réseau en prenant -n comme argument. -NXTN pour spécifier le Testnet de Bitcoin.

ku -nXTN 1

input                        : 1
network                      : Bitcoin testnet3
netcode                      : XTN
secret exponent              : 1
 hex                         : 1
wif                          : cMahea7zqjxrtgAbB7LSGbcQUr1uX1ojuat9jZodMN87JcbXMTcA
 uncompressed                : 91avARGdfge8E4tZfYLoxeJ5sGBdNJQH4kvjJoQFacbgwmaKkrx
public pair x                : 55066263022277343669578718895168534326250603453777594175500187360389116729240
public pair y                : 32670510020758816978083085130507043184471273380659243275938904335757337482424
 x as hex                    : 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
 y as hex                    : 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
y parity                     : even
key pair as sec              : 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
 uncompressed                : 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\
                                 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
hash160                      : 751e76e8199196d454941c45d1b3a323f1433bd6
 uncompressed                : 91b24bf9f5288532960ac687abb035127b1d28a5
Bitcoin address              : mrCDrCybB6J1vRfbwM5hemdJz73FwDBC8r
Bitcoin address uncompressed : mtoKs9V381UAhUia3d7Vb9GNak8Qvmcsme
Bitcoin segwit address       : QWz8QvrJz5QmWegmBv9tXP447AdU7JQtyakg

Définissez les variables d'environnement et connectez-vous à Testnet

Vous pouvez spécifier le réseau non seulement à partir de la ligne de commande, mais également à partir d'un fichier, bien sûr.

En gros, si vous ne spécifiez rien, vous serez connecté à Bitcoin Mainnet.

Je l'ai fait par inadvertance sur Mainnet! Je n'aime pas cela, je vais donc vous montrer comment définir des variables d'environnement sur votre terminal et spécifier le réseau par défaut.

Cette fois, nous utiliserons par défaut Bitcoin Testnet.

Définissez les paramètres de la variable d'environnement. Le code net qui peut être spécifié est écrit dans all.pylegacy_network.py des réseaux.

$ export PYCOIN_DEFAULT_NETCODE="XTN"

Allons vérifier.

sample.py


from pycoin.networks import default

default_netcode = default._netcode_for_env()
print(default_netcode)

Ce n'est pas grave si vous faites cela et que le netcode spécifié est affiché.

Étant donné que netcode peut être considéré comme un argument tel que la création d'une clé, c'est OK si vous le spécifiez à ce moment-là. Essayez-le sur Testnet et réfléchissez-le sur Mainnet! J'ai pensé que ce serait pratique car je n'avais qu'à changer les paramètres des variables d'environnement.

C'est facile, mais je vous ai montré comment vous connecter à Bitcoin Testnet avec Pycoin. La prochaine fois, j'aimerais créer une clé avec Testnet, créer une transaction et échanger des pièces de monnaie.

Recommended Posts

Connectez-vous à Bitcoin Testnet avec Pycoin
Connectez-vous à BigQuery avec Python
Connectez-vous à Postgresql avec GO
Connectez-vous au réseau Bitcoin en utilisant pycoin (Python Cryptocoin Utili)
Connectez-vous à Elastic MQ avec boto
Connectez-vous à MySQL avec Python dans Docker
Connectez-vous à GNU / Linux avec un bureau distant
Connectez-vous à s3 avec AWS Lambda Python
Connectez-vous à Pepper avec l'interpréteur Python de PEPPER Mac
Comment utiliser SQLAlchemy / Connect avec aiomysql
Connectez-vous à mysql
J'ai fait un simple portefeuille de Bitcoin avec pycoin
Connectez facilement Xillybus et la logique utilisateur avec cReComp
Connectez-vous à un réseau Bitcoin à l'aide des outils Pybitcoin
Connectez-vous à MySQL avec Python sur Raspberry Pi
Convertir 202003 en 2020-03 avec les pandas
Connectez python à mysql
Connectez-vous à centos6 sur Virtualbox avec une connexion SSH depuis Mac
Connectez le noyau Jupyter Notebook à Spyder avec Jupytext activé
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
Essayez de défier le sol par récursif
Publiez sur Slack avec Python 3
Introduction à RDB avec sqlalchemy Ⅰ
Rendre avec la syntaxe facile
Connectez MySQL de Vagrant à MySQL Workbench
Pour exécuter gym_torcs avec ubutnu16
Comment lancer avec Theano
Comment modifier avec SQLAlchemy?
Connectez-vous à sqlite depuis python
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Comment séparer les chaînes avec ','
Connectez-vous à la région tokyo de s3
Comment faire RDP sur Fedora31
2 façons de gérer SessionNotCreatedException
Comment supprimer avec SQLAlchemy?
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python