Skaliert der ursprüngliche Bitcoin-Client, um Millionen von Adressen zu enthalten?

Wir verwenden den Standard-Client in unserem Geschäft. Das Wallet enthält bereits etwa 25.000 Adressen. Wird die Brieftasche stabil bleiben, nachdem die Zahl 100.000 oder eine Million Adressen erreicht hat? Mir wurde gesagt, dass alle großen Unternehmen den Kunden gegabelt haben. Sollen wir auch unsere eigene Wallet forken und codieren?

Antworten (4)

Ich habe bereits Tests mit 0,5 Millionen Adressen durchgeführt, die an einem Nachmittag generiert wurden. Es hat walletnotify innerhalb von Millisekunden ausgelöst, ohne merkliche Verzögerung, als ich einen Betrag an eine zufällige Adresse gesendet habe. Das einzig Auffällige war, dass der Client 30 Minuten zum Starten brauchte, was meiner Meinung nach in Ordnung ist, wenn Sie einen größeren Dienst betreiben. Das einzige, was Sie stören könnte, ist die langsame Transaktionserstellungszeit, aber jemand hier hat mir geraten, das Geld einfach monatlich an eine neue Adresse zu verschieben.

Wie wird es sich verhalten, wenn Sie mehrere Transaktionen mit all diesen Adressen haben? Ich denke, der Rat, alle Gelder monatlich an eine neue Adresse zu verschieben, ist, dieses Problem zu lösen?
Die Transaktionsgröße und damit die Gebühr werden größer, je breiter Ihre Gelder sind. Obwohl ich davon ausgehen würde, dass das Verschieben an eine zentrale Adresse das Problem lösen sollte, da aus vielen eine einzelne nicht ausgegebene Ausgabe erstellt wird.

Ein normaler BitcoinQT-Client ist nicht geeignet, um eine große Anzahl von Adressen/Transaktionen auszuführen. Die Datenbank geht in einem Monat mit IO-Operationen leicht ans Dach, wenn Sie, sagen wir, 1 Transaktion pro Minute durchführen. Bitte erwägen Sie, Blockchain direkt zu lesen, oder verwenden Sie einen externen Dienst, der den Overhead für Sie übernimmt, z. Blockchain.info

Angenommen, wir verwenden einen externen Dienst für Walletnotify und Blocknotify für die Adressen, die wir in unserer Brieftasche aufbewahren. (Als würde man sie als Nur-Uhr-Adresse hinzufügen) Wird der Client nicht immer noch Transaktionsdaten in Bezug auf unsere Adressen aus dem Netzwerk ziehen? Und deshalb muss die db wieder auf die Decke gehen?

Ich habe dies getestet, indem ich dem QT-Client über die JSON-RPC-Schnittstelle aus einem Java-Programm programmgesteuert 1 Million Adressen hinzugefügt habe. Das erneute Scannen wurde deaktiviert, sodass lediglich die Adressen hinzugefügt und die Salden nicht bestätigt wurden. Es dauerte ungefähr 24 Stunden, um 1 Million Adressen hinzuzufügen, und dann dauerte es weitere 4 Stunden, um den Client neu zu starten und die 1 Million Adressen zu scannen. Ich habe ein MacBook Air verwendet, also keine sehr leistungsstarke Hardware. Angesichts der Zeit, die für den erneuten Scan benötigt wurde, würde ich jedoch nicht empfehlen, den QT-Client mit so vielen Adressen in einer Produktionsumgebung zu verwenden. Viel Glück.

Ihr Test reicht möglicherweise nicht aus, um vorherzusagen, was in realen Szenarien passieren wird, die Millionen von Transaktionen und möglicherweise Hunderte von Konten in der Brieftasche beinhalten.

Es läuft alles auf historische Daten hinaus. Rufen Sie historische Daten durch Abfragen der Blockchain ab oder verlassen Sie sich auf Ihre eigenen Transaktionsdaten in einer lokalen DB? Wenn Sie letzteres tun und sich Sorgen um die Stabilität Ihres überladenen Wallets machen, können Sie jederzeit zu einem brandneuen, sauberen Wallet mit nur den vorinstallierten 100 Adressen wechseln und sich darauf verlassen, dass bis zum 25.000-Punkt alles reibungslos läuft und läuft.