Aufbau eines Überwachungsdienstes für Blockchain-Adressen. Der beste Weg, um eine Adresse für Bitcoin und andere Altcoins zu überwachen?

Ich möchte einen Blockchain-Adressüberwachungsdienst für Bitcoin und andere Altcoins aufbauen. Was ist der beste Weg, um eine Reihe von Adressen auf eingehende/ausgehende Transaktionen zu überwachen?

Derzeit habe ich ein PHP-Skript geschrieben, das die Adresse alle 5 Minuten auf neue Aktivitäten überprüft und diese Daten dann in einer Datei speichert, und dann weitere 5 Minuten, um die Daten erneut abzurufen und die Datei zu vergleichen, um Unterschiede zu sehen und wenn ja, etwas zu tun .

Eine andere Methode, an die ich dachte, war, jeden Block abzurufen, während er abgebaut wird, und dann zu sehen, ob eine der Adressen mit dem übereinstimmt, was ich aufgelistet habe, und dann etwas zu tun .

Antworten (2)

Da Sie PHP erwähnt haben, können Sie einen Bitcoin-Knoten auf Ihrem Server installieren und dann EasyBitcoin-PHP verwenden: https://github.com/aceat64/EasyBitcoin-PHP

Verwenden Sie dann die Bitcoin-API: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

So listen Sie alle Transaktionen auf, die einem Konto zugeordnet sind:

echo $bitcoin->getreceivedbyaddress($btc_address);

"Gibt den Betrag zurück, der von bei Transaktionen mit mindestens [minconf] Bestätigungen erhalten wurde. Es behandelt korrekt den Fall, dass jemand in mehreren Transaktionen an die Adresse gesendet hat. Denken Sie daran, dass Adressen immer nur zum Empfangen von Transaktionen verwendet werden. Funktioniert nur für Adressen in In der lokalen Brieftasche zeigen externe Adressen immer 0 an."

Sie könnten dies also ausführen und mit Ihrer DB vergleichen, um zu sehen, ob eine neue Transaktion angezeigt wird, die noch nicht in der DB vorhanden ist.

--

Um den Saldo eines Kontos zu überwachen, können Sie einfach das Laden jeder Seite überprüfen (und Ihre Datenbank aktualisieren, wenn Sie möchten):

echo $bitcoin->getbalance($user['id'], 1);

Holen Sie sich eine Ihrer Benutzeradressen:

echo $bitcoin->getaccount($user['id']);

Um Transaktionen zu überprüfen:

echo $bitcoin->gettransaction($trans_id);

--

Sie könnten auch eine API verwenden: Wie bekomme ich die Liste der Transaktionen von Ein-/Ausgaben für eine Bitcoin-Adresse im JSON-Format?

--

Ich bin mir nicht 100% sicher, wonach Sie fragen, aber ich hoffe, dass das, was ich Ihnen zur Verfügung stelle, Ihnen hilft.

Das ist wirklich Zeitverschwendung.

Als Transaktionsbuch werden Bitcoin und alle anderen Altcoins verwendet, die die Blockchain-Technologie verwenden. Holen/installieren Sie einfach Ihr Krypto-Ledger, aktualisieren Sie Ihr Ledger Ihrer Bitcoin (Altcoin).

Wenn Sie über bestimmte Transaktionen im Zusammenhang mit der Adresse Bescheid wissen müssen, verwenden Sie einfach die vorgefertigten Tools, um das Hauptbuch zu scannen.

echo $bitcoin->gettransaction($trans_id);

nur wie oben dargestellt.

Es ist nicht erforderlich, jede Transaktion in der Datenbank zu protokollieren, da sie bereits im Ledger protokolliert ist. Wenn Sie also einige Adressen überwachen möchten, erstellen Sie einfach einen Cronjob, um jede Transaktion zu überwachen und eine Warnung an den Benutzer zu senden.

das bekommt eine Transaktion von einem tid. Wie würden Sie wissen, wann eine Adresse eine eingehende oder laufende Transaktion erhält?
Dies muss mithilfe von Cron-Jobs erfolgen, um den Blockchain-Scan-Drittanbieterserver ( blockchain.info ) oder die lokale Wallet-Installation zu überwachen.
Das ist die Sache, verwenden Sie einen Cron-Job, um die Adresse zu überwachen, oder überwachen Sie jeden Block und sehen, ob die überwachte Adresse in jedem Block vorhanden ist?
Es gibt Billionen möglicher öffentlicher Schlüssel, daher ist es keine praktikable Lösung, jeden einzelnen Schlüssel zu überwachen. Aber es ist verwendbar, wenn wir einen definierten begrenzten Satz öffentlicher Schlüssel von einem Benutzer haben. Wir können diese Cronjobs verwenden, um fünf oder sechs öffentliche Schlüssel pro Benutzer für Tausende von Benutzern ohne Overhead auf dem Server zu verfolgen.
Ja, ich habe eine Liste mit BTC-Kneipenschlüsseln, die ich überwachen möchte.
Herzlichen Glückwunsch!!, in diesem Fall können Sie Cronjobs einfach verwenden, um sie zu überwachen.
Verwenden Sie importaddress in Bitcoin Core, um die Adressen, an denen Sie interessiert sind, als Watch-Only-Adressen zu markieren, und verwenden Sie dann Standardbenachrichtigungsdienste (ZMQ oder -walletnotify), um Sie zu benachrichtigen, wenn eine neue Transaktion, die diese Adressen betrifft, im Netzwerk gesehen wird.
Da PHP in der Frage erwähnt wird, möchte @duckx meiner Meinung nach einen ähnlichen Dienst wie ZMQ oder -walletnotify machen, also habe ich das früher nicht gesagt.
Ich denke, -walletnotify löst das Problem. Aber gibt es eine Alternative, um den Bitcoin-Kern nicht zu verwenden, da ich keine 200 GB der Blockchain herunterladen möchte? Welche andere Bitcoin-Wallet-App unterstützt das -walletnotify-Flag?