Welche Optionen habe ich, um das API-Gap-Limit zu vermeiden? Ich verwende xpub-Schlüssel

Ich baue eine App, und das Design ist, dass die "Willkommensseite" einen QR-Code enthält, der es dem Benutzer ermöglicht, eine einmalige Nutzung der App zu erwerben.

Blockchain.info ermöglicht es Ihnen bequem, xpub zum Generieren von Adressen zu verwenden, aber ihre Dokumente erwähnen BIP 44 und das "Lückenlimit" ... Dies ist sofort ein Problem, wie ich mir vorstellen kann, sagen wir, 30 Benutzer gehen gleichzeitig auf die App (mehr realistischerweise gehen 30 Benutzer auf die App unter der Zeit, die ein einzelner Benutzer für den Kauf benötigt), 20 werden Bitcoin-Adressen zum Kauf präsentiert, 10 werden nicht aufgrund der API-Wurf-Gap-Limit-Fehler angezeigt.

Welche Möglichkeiten habe ich um das zu umgehen?

Andere haben mir vorgeschlagen, einfach manuell ein paar private Schlüssel zu generieren und xpub nicht zu verwenden, aber all diese Einzeltransaktionen pro Adresse manuell konsolidieren zu müssen, klingt einfach wie ein absoluter Albtraum, den ich vermeiden möchte.

AKTUALISIEREN

Gibt es überhaupt eine Möglichkeit, dieselbe Adresse jedes Mal wiederzuverwenden, aber eine Anleitung daran anzuhängen, damit ich sie mit der Sitzung eines bestimmten Benutzers verknüpfen kann, wenn ich die gesendete txn sehe? Das ist wirklich alles, was ich brauche. Ich brauche kein xpub.. Ich brauche nur eine Möglichkeit zu identifizieren, dass Benutzer A und Benutzer B beide die Willkommensseite anzeigen, Benutzer A nicht bezahlt, Benutzer B bezahlt, Benutzer B automatisch Zugriff erhält, Benutzer A nicht .

@pebwindkraft Leider bietet dieser Beitrag keinerlei Lösung oder Vorschlag.
Verwenden Sie github.com/bitcoin/bips/blob/master/… ? Benötigen Sie eine Umsetzung?

Antworten (2)

Probleme im Zusammenhang mit dem Lückenlimit, wie in diesem Blogbeitrag zusammengefasst . Grundsätzlich haben Sie wenige Möglichkeiten

  • Verwenden Sie Brieftaschen wie Elektron, um die Einstellung des Lückenlimits zu erhöhen
  • Senden Sie automatisch kleine Geldbeträge an die 20. unbestätigte Adresse, um die Dinge am Laufen zu halten. Dies wird von Diensten wie Blockonomics erledigt
  • Generieren Sie weiterhin neue Adressen, ohne sich Gedanken über das Lückenlimit machen zu müssen. Später können Sie alle privaten Schlüssel mit xprv generieren und die Gelder aus allen privaten Schlüsseln einziehen.
kann mir mehr Informationen über die 3. Option geben?

Hier ist meine Lösung.

Wenn das Lückenlimit erreicht ist, hängen Sie einen zufälligen und eindeutigen Satoshi-Betrag an den gesamten Bitcoin-Betrag an und verknüpfen Sie ihn mit dem Benutzer.

Wenn Ihr Produktpreis beispielsweise 0,001 BTC beträgt, generieren Sie einen Betrag wie 0,00100001 für Benutzer A und 0,00100002 für Benutzer B, wobei beide dieselbe Adresse verwenden, wenn die Lücke erreicht ist.

Für Benutzer A verwenden Sie nun die Receive-API von Blockchain.info. In der Datenbank erfassen Sie Benutzer A, Preis und Adresse.

Im Fall von Benutzer B verwenden Sie nun die Saldoaktualisierungs-API. In der Datenbank erfassen Sie auch Benutzer B, Preis und Adresse.

Wenn Sie also die Benachrichtigung erhalten, können Sie überprüfen, welcher Benutzer die Zahlung vorgenommen hat, indem Sie den gezahlten Betrag überprüfen.

Dies ist keine Lösung. Es kann eine Katastrophe verursachen. Sie sollten nicht zwei Benutzern gleichzeitig eine Adresse geben und warten, wenn einer von ihnen den Betrag sendet. Wie wäre es mit einer Zeit, in der zwei von ihnen den Betrag geschickt haben?! Das ist keine kleine Sicherheit. Das ist ein sehr großer Fehler dieser Methode.
Der erste Benutzer sendet Geld und Sie kehren *ok*für Ihren Rückruf zurück. Der zweite Benutzer sendet Geld und die Brieftasche führt keinen Rückruf durch, da Sie *ok*zuvor für diese Adresse zurückgekehrt sind. überwacht also nicht mehr. es bedeutet, dass Sie nicht einmal den zweiten bezahlten Benutzer kennen können!
Eine weitere bessere Lösung dafür können Sie die Benachrichtigung "Balance Update" verwenden.
Auf weitere Rückrufe zu warten, nachdem man bezahlt hat, ist schlecht. Vielleicht erhalten Sie den ersten Bestätigungsrückruf für den 2. Benutzer in den 48 Stunden. Balance Update ist keine Lösung für das Lückenlimit. Es scheint, dass HD Wallets nichts für Händler sind. Sie haben einen großen Fehler für Online-Shops und können mit großen oder sogar kleinen Online-Shops nicht umgehen.
Kleine oder große Sicherheiten spielen keine Rolle. beide sind gleichbedeutend mit einem fehlerhaften System.