Wir bieten derzeit Bitcoin-Auszahlungen und -Einzahlungen auf unserer Website an. Die Blockchain-API wird verwendet, um alle Vorgänge abzuwickeln.
Das einzige Problem ist das Limit von 20 Adresslücken der Blockchain Receive API, wie hier erwähnt: http://bitcoinx.io/news/articles/blockchain-info-updates-receive-payments-api-version-to-address-edge-cases/
Jetzt bekommen wir viele neugierige Benutzer, die auf die Bitcoin-Einzahlungsschaltfläche klicken und sich dazu verpflichten, ohne tatsächlich eine Transaktion zu senden, was leicht zu 20 Adressen führen kann. Welche Möglichkeiten gibt es, diese Einschränkung aufzuheben? Ich habe nur wenige Ideen, aber sie sind ziemlich sperrig und einige erfordern eine vollständige Neufassung des Codes und den Austausch der Blockchain-API. Könnt ihr irgendwelche Einblicke und/oder Ratschläge geben? Wie kann dieses Problem elegant und effizient gelöst werden?
Ja, die Lücke ist ein Problem mit der HD-Wallet. Blockchain hat einen Blogbeitrag über die Arbeit mit diesem Problem erstellt. Siehe hier: https://blog.blockchain.com/2016/06/15/receive-payments-api-update-address-gap-limits/#more-9024
Nehmen wir an, Sie werden an die erste Adresse, Adresse 1, bezahlt – die Brieftasche wird 2-21 Adressen vorausschauen, um zu sehen, ob es zusätzliche Gelder oder Transaktionshistorie in diesen Adressen gibt. Wenn es nichts findet, hört es auf zu suchen. Wenn Sie also für Adresse 22 bezahlt werden, sieht die Wallet-Software das Geld nicht, weil es bei 21 aufgehört hat. Wenn Sie jedoch für Adresse 2 bezahlt werden, sieht die Wallet-Software die Adressen 3-22 voraus und sieht die Gelder, die waren an die Adresse 22 senden und dann weitere 20 vorausschauen (Adressen 23 – 43).
Ab dem 1. August 2016 werden wir mit einem HTTP-Fehler auf API-Anforderungen antworten, die Sie über die Lückengrenze von 20 Adressen hinausschieben würden, und wir werden keine neuen Adressen für Ihr xpub generieren, bis wir eine Zahlung erkennen, die die Lücke schließen würde unterhalb dieser Grenze. Dies stellt sicher, dass Sie durch die Verwendung von Receive Payments API V2 niemals unerreichbare Gelder haben, aber möglicherweise dazu führen, dass keine Adressen generiert werden, wenn Ihre Benutzer sie anfordern.
Sie können die Checkgap-API über den folgenden Endpunkt aufrufen:
https://api.blockchain.info/v2/receive/checkgap?xpub= {xpub}&key={apikey}
Sie erhalten eine JSON-Antwort, die wie folgt aussieht:
{ "gap": 1 }
Dieser Lückenwert stellt die Differenz zwischen dem Index der zuletzt bezahlten Adresse und der zuletzt angeforderten Adresse dar. Wenn dieser Wert 20 oder mehr beträgt, ist der Zugriff auf Gelder, die an weitere erstellte Adressen gezahlt wurden, schwierig, bis frühere Adressen Gelder erhalten.
Bevor neue API-Limits eingeführt wurden, war eine angemessene Methode zur Abwicklung von Bitcoin-Zahlungen
Nachdem die neue API Begrenzungen für die Gesamtzahl der angeforderten Adressen eingeführt hatte, wurde sie aus meiner Sicht unbrauchbar. Zumindest kann ich nicht erkennen, wie "zuverlässig" Zahlungen von mehreren Benutzerkonten gleichzeitig abgewickelt werden.
Morsecoder
Morsecoder