Abrufen aller Gelder aus von BIP32 abgeleiteten Brieftaschen

Eine E-Commerce-Site verwendet BIP32-Wallets, um Bestellzahlungen von einem Baum von untergeordneten Schlüsseln zu erhalten, wobei jeder Blattknoten für eine Kauftransaktion eindeutig ist.

Ist es üblich, dass die Website die empfangenen Coins bei X-Bestätigungen sofort an ihre Superwallet (Master-Knoten) sendet? Wenn ja, wie würden Sie vorgehen, um alle Münzen im gesamten Baum der untergeordneten Schlüssel (die je nach Anzahl der Transaktionen Tonnen von Knoten sein können) an die Super Wallet zu senden?

Und woher wissen Sie, wann eine Zahlung an eine der abgeleiteten Adressen gesendet wird?

Nehmen wir den Fall mit einem Ableitungspfad von an m/k'/0/i, wobei mder Masterknoten ist, jeder Benutzer einen kKnoten hat und iseine i-te Kauftransaktion ist.

Antworten (2)

Ist es üblich, dass die Website die empfangenen Coins bei X-Bestätigungen sofort an ihre Superwallet (Master-Knoten) sendet?

Nein. Überhaupt nicht und würde normalerweise als sehr schlechte Praxis angesehen werden, da Sie in Bitcoin nicht von Adressen, sondern von Transaktionen ausgeben, also funktioniert das "Akkumulieren" in einer Adresse nicht wirklich. Das Senden von dieser Adresse müsste wiederum auf alle weitergeleiteten Transaktionen verweisen. (Es gibt Sonderfälle wie die grüne Adresse in ihrer ursprünglichen Implementierung, aber nein, das gehört der Vergangenheit an.)

Und woher wissen Sie, wann eine Zahlung an eine der abgeleiteten Adressen gesendet wird?

Sie beobachten das Bitcoin-Netzwerk? Entweder über Proxys oder mit einem Full Node. Sehen Sie sich die Insight.bitpay.com-API an.

Nehmen wir den Fall mit einem Ableitungspfad von m/k'/0/i an, wobei m der Master-Knoten ist, jeder Benutzer einen k-Knoten hat und i seine i-te Kauftransaktion ist.

Ich würde dringend raten, diese Logik nur auf dem Server zu halten.

E-Commerce klingt nach einem zentralen Server, daher besteht wirklich keine große Notwendigkeit, die HD-Wallet-Struktur zu sehr aufzufächern. Sie sollten sich auch BIP44 zur Transaktionserkennung ansehen.

Ihre Geschäftslogik muss verfolgen, welchen Zweck eine Adresse hat, aber wenn diese Website niemals Rückerstattungen senden muss, hätte sie normalerweise nur einen erweiterten öffentlichen Schlüssel. Nun, wenn es dazu kommt

m / 44' / 0' / i' / 0 / j

Jede bip44-kompatible Brieftasche würde das Geld finden und ausgeben können, wenn Sie ihr mindestens den xpriv-Schlüssel für zur Verfügung stellen

m / 44' / 0' / i' / 0

aber typisch

m / 44' / 0' / i'

Eine Kleinigkeit, die Sie im Auge behalten müssen, ist die Lücke zwischen Adressen, die keine Zahlung erhalten. Wenn Ihr Server eine Lücke von mehr als 20 feststellt, müssten Sie Ihrer Brieftasche helfen, diese Gelder zu finden, wenn es sich ausschließlich um bip44 handelt, was nur Lücken bis zu 20 überbrücken würde. Wenn Ihre letzte Transaktion 1220 indexiert und Sie keine Transaktionen sehen an 1255 und 1257, Sie könnten ein Satoshi an 1239 senden und Ihre Brieftasche würde den Rest finden.

Ist es üblich, dass die Website die empfangenen Coins bei X-Bestätigungen sofort an ihre Superwallet (Master-Knoten) sendet?

Es ist nicht notwendig, Ihre Vermögenswerte aus Tonnen von Transaktionen in einer einzigen Adresse zusammenzufassen, aber es ist nicht ungewöhnlich. Es kann praktisch sein, wenn die Menge an Adressen, die einige Coins enthalten, unüberschaubar wird (die genaue Anzahl hängt von Ihrer Wallet-Software, Ihren Systemressourcen usw. ab).

In diesem Fall können Sie diese Coins einfach in einer großen Transaktion mit mehreren Eingaben (um Übertragungsgebühren zu sparen) an eine von Ihrem "Masternode" verwaltete Adresse senden .

Und woher wissen Sie, wann eine Zahlung an eine der abgeleiteten Adressen gesendet wird?

So, wie Sie es vorher kannten. Sie können die Adresse weiterhin beobachten, nachdem Sie das Geld an Ihre Master-Adresse überwiesen haben. Bei Bedarf können Sie später noch einmal eine weitere Aggregationstransaktion durchführen.