Guten Nachmittag,
Ich habe ein bisschen Probleme, Bitcoin-Zahlungen in meinem Online-Shop zu erhalten. Bisher habe ich Bitcoin in meinem System installiert und eine Reihe von Empfangsadressen erstellt, und jetzt stehe ich vor dem Problem, nach neuen Zahlungen zu suchen.
Ich verwende die folgenden Ressourcen:
Ich möchte einen Cron-Job erstellen, der nach neuen Zahlungen sucht und jede von ihnen in einer relationalen Datenbank speichert, wobei jede Transaktion identifiziert wird durch:
Alles ist ziemlich einfach, aber ich kann keine effiziente Möglichkeit finden, die neu eingehenden Transaktionen aus meinem Bitcoin-Daemon zu extrahieren. Zum Beispiel kann ich den Saldo jeder Adresse extrahieren, aber ich finde keinen praktikablen Weg, um eine Sammlung eingehender Transaktionen mit allen erforderlichen Daten zu erhalten. Dies schafft ein weiteres Problem, da ich Transaktionen nicht zweimal verarbeiten möchte.
Was ist der beste Weg, dies mit der API zu tun?
Vielen Dank.
Wenn Sie eingehende Zahlungen identifizieren möchten, empfiehlt es sich, für jede Anfrage eine neue Empfangsadresse anzulegen. Wenn die Bestätigungen einer Transaktion an eine bestimmte Adresse hoch genug sind, können Sie die Zahlung als bestätigt betrachten.
Die Verwendung der "Absenderadresse" gibt Ihnen keine zuverlässigen Informationen - sie kann nur (eine der) Adressen identifizieren, die zuvor die Kontrolle über die Münzen hatten. Es gibt keine Garantie, dass diese dem Absender der Zahlung entsprechen (es kann beispielsweise eine Webwallet mit gemeinsam genutzten Coins sein).
Das Nichtwiederverwenden von Adressen hat auch andere Vorteile, wie z. B. die Tatsache, dass Bitcoins als Ganzes weniger leicht nachverfolgbar sind.
Raw-Transaktionen liefern die Informationen über die Eingaben ("Absenderadressen", wie Sie sich darauf beziehen).
Darin befindet sich ListUnspent, das Ihnen alle Transaktions-IDs, Ausgabeadressen ("Empfangsadresse") und Beträge gibt. Daraus können Sie mit Ihrer Liste vergleichen, um festzustellen, welche neu sind.
Flaum
Pieter Wuille
Flaum
Pieter Wuille
Flaum
Anthony Chua