Wie adressiere ich Callbacks?

Ich baue eine Webapp, die Kontoinformationen aktualisieren und eine Nachricht senden muss, wenn die Adresse eines Kontos eine Einzahlung erhält und/oder Auszahlungen bestätigt.

Ich bin mir nicht sicher, was der beste Weg ist, dies zu tun. Möchten Sie, dass eine separate Anwendung weiterhin API-Aufrufe an blockchain.info sendet, bis eine neue Transaktion durchkommt? Dann die richtige Callback-Funktion einleiten?

Die Verwendung von blockchain.info scheint fadenscheinig zu sein, da es sich um einen Drittanbieterdienst handelt. Wie würden Sie das Bitcoin-Netzwerk überwachen? Es scheint, als ob die Verwendung eines beliebigen Bitcoin-Clients auf einer Befehlszeilenaktion beruhen würde. Wäre der beste Weg, die Befehlszeilenaktion weiter zu senden, bis die zurückgegebenen Daten unterschiedlich sind, und dann den Rückruf einzuleiten? Gibt es ein besseres Entwurfsmuster, das ich vermisse?

Versuchen Sie, Ihren Benutzern mitzuteilen, wann ihr Geld in ihre Brieftasche gelangt ist? Sollte ihnen das nicht ihr Geldbeutel sagen?
Die Brieftasche weiß möglicherweise, dass Bitcoin empfangen wurde, aber wie würde die Brieftasche wissen, dass sie den bestimmten Benutzer per E-Mail benachrichtigen soll? Ein Rückruf auf die Adresse ist erforderlich.

Antworten (2)

Wenn Sie sich auf Bitcoin und die JSON-RPC-API verlassen, können Sie versuchen, den Daemon mit der Option -walletnotify zu starten.

bitcoind -daemon -waletnotify="process-txn.sh %s"

Dies ruft process-txn.shmit der Transaktions-ID an der Eingabe auf. Dann können Sie den Daemon nach Transaktionsdetails abfragen.

Funktioniert walletnotify nicht nur für registrierte Adressen? Wie erhalte ich alle Transaktionen? Der Knoten empfängt es eindeutig. Bitcoinj erlaubt es.

Ich habe einen Open-Source-Dienst gebaut, der genau das tut. Jedes Mal, wenn eine neue Adresse generiert wird, wird sie einem Konto in einer Datenbank zugeordnet. Der Bitcoin-Client wird mit dem optionalen Befehl -walletnotify ausgeführt, um die Datenbank über die neue Transaktion zu benachrichtigen. Wenn die Datenbank eine neue Transaktion empfängt, kann das dieser Adresse zugeordnete Konto benachrichtigt werden.

Besuchen Sie https://bitlab.co/wallet, um eine Demo davon in Aktion zu sehen. Außerdem ist die Quelle für das Back-End unter https://github.com/bitlabco/bitlab-nodejs verfügbar