Ich habe eine Website, auf der Benutzer mit Bitcoin Geld senden und abheben können. Ich möchte ihnen die Möglichkeit geben, anstelle einer festen Gebühr verschiedene Gebühren (niedrig, mittel und hoch) zu verwenden oder Bitcoin die Gebühr wählen zu lassen. Ich kann keine Standardgebühr einrichten oder zur Laufzeit ändern, denn wenn sich ein Benutzer entscheidet, eine hohe Gebühr und eine niedrigere zu verwenden, kann es passieren, dass der Benutzer mit der hohen Gebühr als niedrig zugewiesen wird oder umgekehrt.
Daher bin ich nach Recherchen zu dem Schluss gekommen, dass es notwendig ist, die Transaktion aus dem UTXOS zu erstellen, das mein Knoten hat. Es fällt mir jedoch schwer zu verstehen, wie diese Aufgabe auszuführen ist. Ich gebe ein Beispiel, um mein Problem zu erklären: Wenn der Node UTXOS 1 BTC ist, hat ein Benutzer 0,1 BTC in der Service-Wallet und möchte 0,07 BTC abheben. Ich verstehe, dass die zu unternehmenden Schritte die folgenden wären:
Meine Zweifel in diesem Moment wären:
Wenn ich das richtig verstehe, haben wir für jede eingehende Transaktion eine nicht ausgegebene Transaktion, die es uns ermöglicht, die verfügbaren Mittel auszugeben; Dann, solange Sie in einer Datenbank das korrekte Guthaben für jeden Benutzer haben (Aktualisieren dieses Guthabens mit den entsprechenden Gebühren beim Abheben von Geldern), sollte ich nur denselben UTXO verwenden, der von jedem Benutzer generiert wird, wenn BTCs eingezahlt werden. Oder ist es möglich, ihn zu verwenden andere UTXOs, solange die Menge gleich ist?
Ich habe in Bitcointalk gelesen, dass die Eingaben einer Rohtransaktion kleiner oder gleich den Ausgaben dieser Transaktion sein müssen. Ist es nicht möglich, Eingaben zu verwenden, die höher sind als die Ausgaben, und die überschüssigen Gelder wieder in eine Brieftasche meines Knotens "zurückzugeben"?
Wie kann ich die verwendete Gebühr berechnen? Ich meine, ich kann entscheiden, ob ich X Satoshis/kb verwenden möchte, aber wie kann ich die Gebühr berechnen, die für die Transaktion erforderlich ist, bevor ich sie erstelle? Denn wenn ich das richtig verstanden habe, erhalte ich die Größe der Transaktion, sobald ich eine solche Transaktion erstellt habe. Ich weiß nicht, ob es eine Möglichkeit gibt, die Berechnung durchzuführen, die die Transaktion in Bytes / Kilobyte belegen wird
Ich habe nicht allzu viele Informationen darüber gefunden, also wenn mir jemand helfen kann, wäre ich dankbar.
- also sollte ich nur die gleichen UTXOs verwenden, die von jedem Benutzer generiert werden, wenn BTCs eingezahlt werden. Oder ist es möglich, andere UTXOs zu verwenden, solange die Menge gleich ist?
Dies liegt an Ihnen, obwohl es wahrscheinlich sicherer wäre, nur die von den Benutzern hinterlegten UTXOs auszugeben, um sicherzustellen, dass nichts schief gelaufen ist (z. B. ein Leck des privaten Schlüssels und die Münzen wurden bereits ausgegeben). Aber solange der Benutzer am Ende die richtige Menge an Bitcoins bekommt, spielt es keine Rolle.
- Ich habe in Bitcointalk gelesen, dass die Eingaben einer Rohtransaktion kleiner oder gleich den Ausgaben dieser Transaktion sein müssen. Ist es nicht möglich, Eingaben zu verwenden, die höher sind als die Ausgaben, und die überschüssigen Gelder wieder in eine Brieftasche meines Knotens "zurückzugeben"?
Ich glaube, Sie haben die Informationen, die Sie gefunden haben, falsch gelesen oder sie waren falsch. Die Inputs einer Transaktion müssen größer oder gleich den Outputs sein, sonst würden Sie irgendwie neue Coins generieren. Wenn die Inputs streng größer sind, wird die Differenz den Minern der Transaktion als Gebühr gegeben. Um die überschüssigen Gelder "zurückzugeben", müssen Sie einfach eine Transaktionsausgabe vornehmen, die die Münzen an Sie zurücksendet, die als Wechselgeld bezeichnet werden.
Wenn Sie eine neue Transaktion manuell mit Bitcoin-RPC-Aufrufen generieren, wird die Gebühr automatisch geschätzt. Um einen benutzerdefinierten Gebührensatz zu verwenden, können Sie die feeRate im FundRawTransaction- Aufruf festlegen. Sie können auch die Transaktionsrate für alle zukünftigen Transaktionen festlegen, während das Wallet mit SetTxFee läuft .
John Graham
John Graham
meshcollider