Wie kann ich in meiner Anwendung Massenauszahlungen an mehrere Adressen gleichzeitig oder sehr schnell vornehmen?

Nehmen wir an, es ist Zahltag – ich habe viele Bitcoins angesammelt und sie alle an eine einzige Adresse geschickt. Ich möchte jetzt viele Adressen aus diesem "Pool" von Coins bezahlen, sagen wir irgendwo zwischen 100 und 10.000 Adressen. Was ist der beste Weg, dies so zu tun, dass ich es mit PHP verwenden kann, und mit welchem ​​​​Client würde es am besten passen? Ich bin derzeit mit Bitcoin und Elektron vertraut.

Die Probleme, die ich sehe, sind:

  1. Wenn ich sie nacheinander mache, müsste ich zwischen jeder Transaktion auf eine Bestätigung warten.
  2. Wenn ich sie irgendwie alle in einer Transaktion sende, müsste ich a) mit Rohtransaktionen herumspielen und b) möglicherweise eine Begrenzung der Transaktionsgröße erreichen.

Ist es möglich, dies zu tun, ohne Rohtransaktionen zu verwenden? Und wie überprüfe ich, an wie viele Adressen ich gleichzeitig senden kann, ohne die maximale Transaktionsgröße zu erreichen? Wenn ich mich mit rohen Transaktionen befassen muss, gibt es eine Bibliothek in PHP, die mir hilft, sie einfach zu erstellen?

Vielen Dank.

Antworten (2)

Zumindest wenn Sie Bitcoin verwenden, ist die beste Lösung die Verwendung des sendmanyRPC-Aufrufs, mit dem Sie eine einzelne Transaktion erstellen können, die viele Auszahlungen ausführt. Die Transaktion ist viel kleiner (in Byte) als die vielen Einzelzahlungstransaktionen, die Sie im Sinn hatten (über 6 Mal für 100 Ausgaben), was insgesamt zu niedrigeren Gebühren für den gleichen Effekt führt.

Auch wenn Sie für jede einzelne Transaktion separate Transaktionen verwenden würden (obwohl ich davon abraten würde), müssen Sie nicht auf Bestätigungen zwischen den verschiedenen Transaktionen warten, da die Implementierung das Senden von 0-Bestätigungs-Transaktionen ermöglicht, wenn sie von Ihnen stammen.

In Electrum können Sie die CSV-Importfunktion verwenden, um Massenzahlungen vorzunehmen. Es kann entweder eine CSV-Datei oder eine in ein Textfeld eingegebene CSV-Datei akzeptieren. Das grobe Format ist:

ADDRESS, 0.12345
ADDRESS, 0.12314

Diese Funktion wurde in die Version 1.9 integriert, die noch nicht veröffentlicht ist, aber Sie können sie bereits verwenden.

https://github.com/spesmilo/electrom/pull/282

Beispiel:

1PkeTTctdh2CvhW3fQLs93PWP9qupWV68X, 5
3NujXLC3LxNsmk2wr69CLBuXGfhXeenUyu, 5
1CNAnSb7d1XCA4AXBH2gip3mi8dNTQxzeo, 1
1LSBFJ1An9orRMU6Bz3NS1y3jr1eH9AexE, 1
16qRyDVZVpptJb4HZzv5rWkjqtJWVRjDep, 1
1PkeTTctdh2CvhW3fQLs93PWP9qupWV68X, 5
1Nnad832Zyob64wGbju49CC5RFbACAfCNZ, 1
1J2gFYBnf8K2wHJDndgr3iN1nPoZumHXap, 5

Die Menge ist in der Einheit, in der Ihr Electrum konfiguriert ist. In meinem Fall ist es zum Beispiel in mBTC. Seien Sie dabei vorsichtig!

Oh, das ist cool. Wie geht es mit Transaktionen um, die für eine einzelne Transaktion zu groß werden – werden sie aufgeteilt? Irgendeine Ahnung, wann diese Version als stabil veröffentlicht wird? Im Verlaufsfenster sieht es so aus, als ob bei Rechtsklick -> Details das Popup-Fenster nicht mehr angezeigt wird.
Ich habe jemanden gesucht, der sich mit der Abwicklung großer Transaktionen auskennt, werde fragen. Die Veröffentlichung steht vor der Tür.
@user371699 Der CSV-Import von Electrum funktioniert genauso wie die Sendefunktion, sodass für eine große einzelne Transaktion eine höhere Gebühr erforderlich ist.
Ich glaube, es gibt immer noch eine Größenbeschränkung für jede Transaktion im Protokoll, etwa 10 KB? Ich frage mich, ob Electrum dieses Limit kennt und es in mehrere Transaktionen aufteilt?
Zitat: "Txs werden nicht aufgeteilt. Das Limit beträgt 100 KB, also sollte es kein Problem sein. Die Gebühr würde jedoch wahrscheinlich 1 BTC betragen."