Wie funktionieren APIs wie Blockchain.info und BlockExplorer?

Wenn ich eine Adresse mit einem der beiden Dienste abfrage, fragen sie dann einfach den letzten Block ab, der abgebaut wurde?

Oder haben diese Dienste Knoten im Netzwerk, die Daten sammeln, die noch nicht in einem Block kodifiziert wurden?

Manchmal geben meine Abfragen fast sofort die "richtigen" Informationen zurück, aber manchmal dauert es lange, bis die letzten Transaktionen angezeigt werden - ich frage mich, warum das so ist. Scheint seltsam, dass ich BTC senden, eine Abfrage der Empfangsadresse den aktuellen Kontostand innerhalb von 3 Sekunden zurückgeben und dann sofort eine weitere Transaktion durchführen und eine erfolgreiche Abfrage durchführen könnte, während die API-Abfrage zu anderen Zeiten nicht reflektiert wird die neueste Transaktion für eine lange Zeit. Einblicke geschätzt.

Antworten (1)

Öffentliche Bitcoin-Inspektionsdienste wie BlockExplorer und BlockChain.info funktionieren fast genauso wie der normale Bitcoin-Client .

Sie fungieren als Node im Bitcoin-Netzwerk und speichern so wie alle anderen Nodes die komplette Blockchain. Diese Blockchain besteht aus allen jemals getätigten Transaktionen und wird verwendet, um den Kontostand einer Adresse zu berechnen.

Genau wie andere Nodes erhalten auch sie Transaktionen von anderen Nodes und werden diese wahrscheinlich auch anzeigen, bevor sie bestätigt werden (natürlich ausdrücklich darauf hinweisen, dass dies nicht der Fall ist). Die Zeit, die eine Transaktion benötigt, um alle Knoten zu erreichen, variiert. Nicht alle Knoten kennen alle anderen Knoten, daher kann es einige Sekunden dauern, bis eine Transaktion von allen Knoten bemerkt wird .

Je nachdem, ob der Dienst Informationen zwischenspeichert oder nicht , kann zwischen dem Eintreffen der Transaktion des Knotens und dem Zeitpunkt, an dem sie auf der Website angezeigt wird, einige Zeit vergehen. Sie werden wahrscheinlich verstehen, dass es sehr kostspielig ist, dieselbe Suche im Blockchain-Index mehrmals durchzuführen, wenn Sie 10 Mal kurz hintereinander dieselben Daten abfragen. Aus diesem Grund halte ich es für wahrscheinlich, dass die meisten dieser Clients eine Art Caching durchführen, aber nicht zu umfangreich. Wahrscheinlich höchstens eine Minute, denn sie wissen, dass in der Bitcoin-Transaktionsverarbeitung in dieser Zeit viel passieren kann.

Außerdem kann die Ladezeit auch von der Auslastung des Servers abhängen . Wenn mehrere Benutzer gleichzeitig versuchen, auf das Guthaben für ihre Adresse zuzugreifen, müssen einige von ihnen wahrscheinlich warten.