bitcoinlib · PyPI – Bitcoin investissement

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement

Inscrivez-vous à CoinBase









Actualité bitcoin


Bibliothèque Bitcoin Python

Bitcoin, Litecoin et Dash Crypto Currency Library pour Python.

Comprend un portefeuille entièrement fonctionnel, avec plusieurs signatures, plusieurs devises et plusieurs comptes.
Vous cette bibliothèque à un niveau élevé et créer et gérer des portefeuilles pour la ligne de commande ou à un niveau bas
et créez vos propres transactions, clés ou portefeuilles personnalisés.

BitcoinLib se connecte automatiquement à divers fournisseurs de services pour mettre à jour les portefeuilles, les transactions et
informations de blockchain. Il n’analyse pas actuellement la blockchain elle-même.

Travis
PyPi
RDT
Combinaisons

Avertissement

Cette bibliothèque est encore en développement, utilisez-le à vos risques et périls et testez-le suffisamment avant de l'utiliser
environnement de production.

Quelques exemples

Portefeuille

La bibliothèque bitcoin contient une implémentation de portefeuille utilisant sqlalchemy et sqllite3 pour importer, créer et gérer
clés d'une manière déterministe hiérarchique.

Exemple: créer un portefeuille et générer une nouvelle adresse (clé) pour recevoir des bitcoins

>>> de bitcoinlib.wallets importation HDWallet
>>> w = HDWallet.créer('Wallet1')
>>> touche 1 = w.Obtenir la clé()
>>> touche 1.adresse
'1Fo7STj6LdRhUuD1AiEsHpH65pXzraGJ9j'

Envoyez maintenant une petite transaction à votre portefeuille et utilisez la méthode scan () pour mettre à jour les transactions et les transactions UTXO.

>>> w.analyse()
>>> w.Info()  # Affiche les informations du portefeuille, les clés, les transactions et les UTXO

Lorsque votre portefeuille reçoit un paiement et que vos transactions ne sont pas dépensées, vous pouvez facilement envoyer des bitcoins.
En cas de succès, un ID de transaction est renvoyé.

>>> t = w.envoyer à('12ooWd8Xag7hsgP9PBPnmyGe36VeUrpMSH', 100000)
'b7feea5e7c79d4f6f343b5ca28fa2a1fcacfe9a2b7f44f3d2fd8d6c2d82c4078'
>>> t.Info  # Affiche les informations de transaction et envoie les résultats

Portefeuille de mot de passe composé de comptes et de plusieurs devises

Le code suivant crée un portefeuille avec deux comptes bitcoin et un compte litecoin à partir d'une phrase secrète mnémonique.
Le portefeuille complet peut être récupéré à partir de la phrase secrète qui est la clé principale.

de bitcoinlib.wallets importation HDWallet, wallet_delete
de bitcoinlib.mnemonic importation Mnémonique

phrase secrète = Mnémonique().produire()
impression(phrase secrète)
w = HDWallet.créer("Wallet2", clés=phrase secrète, réseau='bitcoin')
account_btc2 = w.nouveau compte("Compte BTC 2")
account_ltc1 = w.nouveau compte("Compte LTC", réseau='litecoin')
w.Obtenir la clé()
w.Obtenir la clé(account_btc2.identifiant de compte)
w.Obtenir la clé(account_ltc1.identifiant de compte)
w.Info()

Portefeuilles Multi Signature

Créez un portefeuille Multisig avec 2 cosignataires qui doivent tous deux signer une transaction.

de bitcoinlib.wallets importation HDWallet
de bitcoinlib.keys importation HDKey

RÉSEAU = 'testnet'
k1 = HDKey('tprv8ZgxMBicQKsPd1Q44tfDiZC98iYouKRC2CzjT3HGt1yW2zuX2awTotzGAZQE9bi2M5MCj8iedP9MREPjUgpDEBwBgGi2C8eK'
            '5zNYeiX8', réseau=RÉSEAU)
k2 = HDKey('tprv8ZgxMBicQKsPeUbMS6kswJc11zgVEXUnUZuGo3bF6bBrag1ieFfUdPc9UHqbD5HcXizThrcKike1c4z6xHrz6MWGwy8L6YKVb'
            'MeQHdWDp', réseau=RÉSEAU)
w1 = HDWallet.créer('multisig_2of2_cosigner1', sigs_required=2,
                     clés=[[[[k1, k2.public_master(multisig=Vrai)], réseau=RÉSEAU)
w2 = HDWallet.créer('multisig_2of2_cosigner2',  sigs_required=2,
                     clés=[[[[k1.public_master(multisig=Vrai), k2], réseau=RÉSEAU)
impression("Déposez testnet bitcoin à cette adresse pour créer la transaction:", w1.Obtenir la clé().adresse)

Créer une transaction dans le premier portefeuille

w1.utxos_update()
t = w1.balayage('mwCwTceJvYV27KXBc3NJZys6CjsgsoeHmf', min_confirms=0)
t.Info()

Et puis importez la transaction dans le deuxième portefeuille, signez-la et envoyez-la au réseau.

w2.Obtenir la clé()
t2 = w2.transaction_import(t)
t2.signe()
t2.envoyer()
t2.Info()

Portefeuille de témoin séparé

Créez et gérez facilement des portefeuilles segwit. Segwit natif avec adresses base32 / bech32 et segwit imbriqué P2SH
des portefeuilles avec des adresses traditionnelles sont disponibles.

Créez un portefeuille P2WPKH à clé unique natif:

>>> de bitcoinlib.wallets importation HDWallet
>>> w = HDWallet.créer('wallet_segwit_p2wpkh', type de témoin='segwit')
>>> w.Obtenir la clé().adresse
bc1q84y2quplejutvu0h4gw9hy59fppu3thg0u2xz3

Ou créez un portefeuille P2SH_P2WPKH à clé unique imbriqué:

>>> de bitcoinlib.wallets importation HDWallet
>>> w = HDWallet.créer('wallet_segwit_p2sh_p2wpkh', type de témoin='p2sh-segwit')
>>> w.Obtenir la clé().adresse
36ESSWgR4WxXJSc4ysDSJvecyY6FJkhUbp

Génération de clé mnémonique

Vous permet d’utiliser des mots de passe faciles à retenir, composés d’un certain nombre de mots, pour stocker les clés privées (BIP0039).
Vous pouvez protéger ce mot de passe par un mot de passe (BIP0038) et utiliser la structure HD Wallet pour générer une image presque infinie.
nombre de nouvelles clés privées et adresses bitcoin (BIP0043 et BIP0044).

Exemple: générer une liste de mots de passe composés et dériver une graine de clé privée

>>> de bitcoinlib.mnemonic importation Mnémonique
>>> mots = Mnémonique().produire()
>>> mots
protéger les voyages malins et intelligents des tout-petits faire apparaître des ciseaux écologiques de la saison sèche plus
>>> Mnémonique().semer(mots)
xprv6CY4yxy6enC53V7hEut2FFW74tv6L3dB53jSoSXpab2X8UMowLJc521UUFuar98eacS9MK5rwWjrEmp6SUone5swQWcqf4vhfhZuerj5E1

Les fournisseurs de services

Communique avec des pools de fournisseurs de services bitcoin pour récupérer des informations sur les transactions, les adresses et les chaînes de blocs.
Peut être utilisé pour envoyer une transaction au réseau, déterminer les frais de service optimaux pour une transaction ou mettre à jour votre
solde du portefeuille.

Lorsque vous travaillez avec des portefeuilles, les connexions aux fournisseurs de services sont automatiquement gérées de sorte que vous n’ayez pas à vous inquiéter.
à propos d'eux. Vous pouvez cependant facilement utiliser l'objet Service directement.

Exemple: obtenez des frais de transaction estimés en sathose par Ko pour confirmation dans les 5 blocs.

>>> de bitcoinlib.services.services importation Un service
>>> Un service().estimationfrais(5)
138964

Met en œuvre les propositions d'amélioration Bitcoin suivantes

  • Portefeuilles déterministes hiérarchiques (BIP0032)
  • Clé privée protégée par une phrase secrète (BIP0038)
  • Code mnémonique pour générer des clés déterministes (BIP0039)
  • Champ de destination pour les portefeuilles déterministes (BIP0043)
  • Hiérarchie à plusieurs comptes pour les portefeuilles déterministes (BIP0044)
  • Structure pour portefeuilles à plusieurs signatures P2SH déterministes (BIP0045)
  • Format d'adresse Bech32 / base32 pour les sorties témoins natives v0-16 (BIP0173)
  • Transactions de témoin séparé imbriquées natives et imbriquées P2SH (BIP0141 et BIP0143)

Installation et mise à jour

Installer avec pip

pip installer bitcoinlib

Ces paquets seront installés
* fastecdsa (ou ecdsa sous Windows)
* pyaes
* cryptage
* sqlalchemy
* demandes
* enum34 (pour les anciennes installations en python)
* six

Installer l'environnement de développement

Commencez par créer un environnement virtuel sous Linux avec virtualenv:

$ virtualenv -p python3 venv / bitcoinlib
$ la source venv / bitcoinlib / bin / activate

Puis clonez le référentiel et installez les dépendances:

$ git clone https://github.com/1200wd/bitcoinlib.git
$ CD bitcoinlib
$ pip install -r docs / requirements.txt

Autres exigences Linux

sudo apt install essentiel de la construction python-dev python3-dev libgmp3-dev

Pour installer le package de développement OpenSSL sur Debian, Ubuntu ou leurs dérivés

sudo apt install libssl-dev

Pour installer le package de développement OpenSSL sur Fedora, CentOS ou RHEL

sudo yum install gcc openssl-devel

Autres exigences Windows

Cette bibliothèque nécessitait un compilateur Microsoft Visual C ++. Pour Python version 3.5+, vous aurez besoin de Visual C ++ 14.0.
Voir https://wiki.python.org/moin/WindowsCompilers

La bibliothèque fastecdsa ne fonctionne pas actuellement sur Windows, la bibliothèque ecdsa plus lente est donc installée.

Dépannage

Lorsque vous rencontrez des problèmes avec le paquet scrypt lors de l’installation, vous pouvez essayer de le résoudre en supprimant et en réinstallant
cryptage:

$ pip désinstaller scrypt
$ pip install scrypt

Assurez-vous également que les packages de développement Python et SSL sont installés, voir "Autres conditions requises".
au dessus de.

Vous pouvez également utiliser pyscrypt au lieu de scrypt. Pyscrypt est une bibliothèque de dérivation de clé basée sur un mot de passe Python scrypt.
Cela fonctionne mais il est lent lorsque vous utilisez des clés protégées par mot de passe BIP38.

$ pip installer pyscrypt

Si vous rencontrez des problèmes, n'hésitez pas à nous contacter ou à signaler un problème à l'adresse https://github.com/1200wd/bitcoinlib/issues.



Traduit depuis https://pypi.org/project/bitcoinlib/

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement


Inscrivez-vous à CoinBase