Ich habe die Bitcoin-Python-Bibliothek verwendet, um Zahlungen aus Python heraus zu tätigen. Das hat ziemlich einfach funktioniert:
>>> import bitcoinrpc
>>> conn = bitcoinrpc.connect_to_local()
>>> conn.sendtoaddress('bitcoin_address_here', 0.5)
Die Readme dieser Bibliothek sagt nun, dass sie nicht mehr gepflegt wird und verweist auf die python-bitcoinlib als Nachfolger. Also versuche ich jetzt, mich um diese Bibliothek zu kümmern, aber es scheint ein bisschen schwieriger zu sein, als es Bitcoin-Python früher war. Ich verstehe jetzt, dass ich mit dem folgenden Code eine Verbindung zum laufenden Bitcoin herstellen kann:
>>> import bitcoin.rpc as rpc
>>> proxy = rpc.Proxy()
>>> proxy.getinfo()
{u'connections': 36, u'errors': u'', u'blocks': 295646, u'paytxfee': 0, u'keypoololdest': 1394108331, u'walletversion': 60000, u'difficulty': Decimal('6119726
089.12814713'), u'testnet': False, u'version': 90100, u'proxy': u'', u'protocolversion': 70002, u'timeoffset': -1, u'balance': 1856000, u'keypoolsize': 101}
So weit, ist es gut. Das Problem ist jetzt, dass ich keine Ahnung habe, wie ich eine einfache Zahlung durchführen kann. Ich sehe, dass es eine Funktion namens gibt proxy.sendrawtransaction(self, tx)
, die anscheinend eine Rohtransaktion als Argument verwendet. Ich habe jedoch keine Ahnung, wie man eine Rohtransaktion erstellt, und ich würde erwarten, dass eine Art send_to_address(address, amount)
verfügbar ist, aber ich kann sie in der Bibliothek nicht finden.
Weiß jemand, wie ich mit der python-bitcoinlib eine einfache Transaktion an eine Adresse senden kann ? Alle Tipps sind willkommen!
Ich habe gerade sendtoaddress zu bitcoin.rpc.Proxy hinzugefügt:
from bitcoin.core import COIN, b2lx
import bitcoin.wallet
import bitcoin.rpc
try:
# This moved between versions
from bitcoin.base58 import CBitcoinAddress
except:
from bitcoin.wallet import CBitcoinAddress
rpc = bitcoin.rpc.Proxy()
addr = CBitcoinAddress('1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T')
txid = rpc.sendtoaddress(addr, 0.001 * COIN)
print(b2lx(txid))
Beachten Sie, dass es so einfach wie bitcoinrpc ist, aber das ist der Kompromiss für die richtigen Typen und so weiter.
Codebeispiel von 04/2014 ist mit aktueller python-bitcoinlib veraltet. Hier leichte Modifikation:
from bitcoin.core import COIN, b2lx
import bitcoin.wallet
import bitcoin.rpc
rpc = bitcoin.rpc.Proxy()
addr = bitcoin.wallet.CBitcoinAddress('1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T')
txid = rpc.sendtoaddress(addr, 0.001 * COIN)
print(b2lx(txid))
Getestet auf v0.3.0+
CBitcoinAddressError: Version 0 not a recognized Bitcoin Address
. Können Sie mir helfen, es zu beheben?
Johannes T
kramer65
Priester
CBitcoinAddress
importiert?