Bitcoin 0,11 auf einem Raspberry Pi 2:
https://github.com/jgarzik/python-bitcoinrpc
Ich verwende diesen RPC-Authentifizierungs-Proxy, um von Python aus mit Bitcoin zu sprechen. Ich habe ein Skript, das getmempoolinfo
alle 1 Sekunde anfordert. Gelegentlich wird bei Benutzereingaben eine neue Adresse benötigt und das Skript fordert getnewaddress
. Dieser RPC-Aufruf läuft oft ab.
Manchmal verursacht die Zeitüberschreitung bei anderen RPC-Aufrufen noch seltsameres Verhalten, bis Python unterbrochen und das Skript beendet wird: Beispielsweise werden bei getmempoolinfo
jedem Aufruf dieselben Informationen zurückgegeben, bis das Skript neu gestartet wird. Selbst die Abfrage von Bitcoin über die Befehlszeile in einem separaten Terminalfenster bitcoin-cli getmempoolinfo
zeigt an, dass der Mempool überhaupt nicht wächst, bis das Skript getnewaddress
beendet wird, das das Zeitlimit für den Aufruf überschritten hat.
Ich stelle auch fest, dass die Befehlszeile bitcoin-cli getnewaddress
bis zu 30 Sekunden dauern kann, ohne dass Python-Skripts oder andere laufende RPC-Aufrufe ausgeführt werden.
Ich dachte, Bitcoin ruft nur eine neue Adresse von wallet.dat ab, was dauert so lange? Es entschlüsselt nicht die Brieftasche, es generiert keine ganz neue Adresse aus Entropie ... aber dieser spezifische RPC-Aufruf verursacht mir viele Downstream-Probleme.
Das Problem hat mit anderen Prozessen auf dem Rechner mit zu hoher CPU-Priorität zu tun:
Pieter Wuille
Stecknadelkopf
Stecknadelkopf
dumpwallet
funktioniert sofort.Pieter Wuille
Stecknadelkopf
Mursch
Stecknadelkopf
Mursch
Stecknadelkopf
getnewaddress
Timeout - sogar bis zu 45 Minuten! Ich verwende den GPIO des Pi, um eine LED-Matrix anzusteuern.Mursch