Ein inoffizieller Leitfaden zur Integration von Qubic-Diensten
Integrieren Sie Qubic in bestehende Dienste über einen Full Node, einen Remote Node, einen Archiving Server oder eine API, mit unterschiedlichem Maß an Kontrolle und Komplexität.
Qsilver · 17. Februar 2024.
Einführung
Die Integration von Qubic in bestehende Dienste kann auf vier Hauptwegen erfolgen, die jeweils unterschiedliche Kontroll- und Komplexitätsgrade bieten:
- Einen Full Node betreiben: Direkter Zugriff auf die im Speicher befindlichen Daten für Operationen.
- Einen Remote Node betreiben: Abfrage von öffentlichen Full Nodes, um die erforderlichen Daten für Operationen zu erhalten.
- Einen Archiving Server betreiben: Aufbau eines lokalen vollständigen Archivs aller Qubic-Daten für Operationen.
- Schnittstelle mit einem Qubic API-Server: Einfachste Methode, jedoch mit weniger Kontrolle über die Datenverfügbarkeit.
Je niedriger die Zahl, desto mehr Arbeit ist erforderlich, aber desto mehr Kontrolle haben Sie über die Datenverfügbarkeit. Unabhängig von der gewählten Ebene ist es wichtig, die wesentlichen Unterschiede von Qubic zu verstehen.
Wichtige Unterschiede bei Qubic
Für Dienste, die mit monetären Werten umgehen, sind die beiden wichtigsten Unterschiede bei Qubic:
- Selbst wenn eine txid in einem validierten Tick enthalten ist, hat sie möglicherweise nichts bewirkt.
- Das Guthaben einer Adresse kann ohne eine spezifische Transaktion, die von A nach B überträgt, geändert werden, z.B. durch eine Smart-Contract-Operation.
Aufgrund dieser Unterschiede sollte die Qubic-Verarbeitung auf Änderungen des Adressguthabens basieren, um sicherzustellen, dass Änderungen durch Smart Contracts die Logik nicht verwirren.
Einzahlungsabwicklung
Um die Einzahlungsabwicklung zu vereinfachen, wird empfohlen, normale Transaktionen zu verwenden. Einzahlungen, die über Smart Contracts erfolgen, könnten ignoriert oder manuell bearbeitet werden (mit einer zusätzlichen Gebühr zur Deckung der Kosten).
- Iterieren Sie durch alle Transaktionen in jedem Tick und identifizieren Sie Zieladressen, die Kunden gehören.
- Markieren Sie diese Adressen für die Guthabenprüfung.
- Holen Sie sich Entity-Informationen für markierte Adressen, um zu sehen, welche neue Mittel erhalten haben.
- Aktualisieren Sie die aktuellen Entity-Informationen für Adressen, die neue Mittel erhalten haben.
Guthabenänderungen stimmen möglicherweise nicht mit dem Transaktionsbetrag überein, da txid-Fehler oder Smart-Contract-Einzahlungen auftreten können. Das Ignorieren von SC-Einzahlungen stellt sicher, dass der Benutzer für SC-Einzahlungen gutgeschrieben wird, selbst wenn die txid fehlschlägt.
Einzahlungsabwicklung basierend auf Guthaben
Diese Methode erfordert möglicherweise mehr Bandbreite, ist jedoch für mittlere Dienste durch das Abfragen von Hunderttausenden von Adressen über das Netzwerk über einen Remote Node machbar. Sie stellt sicher, dass alle Einzahlungsmethoden korrekt gutgeschrieben werden, wodurch das Benutzererlebnis verbessert wird.
- Pflegen Sie die neuesten validierten Entity-Daten für jede Benutzeradresse.
- Vergleichen Sie in einer Abfrageschleife die neuesten Entity-Daten mit den validierten Entity-Daten.
- Validieren Sie die neuesten Entity-Daten mithilfe des Merkle-Baums.
- Wenn es validiert, aktualisieren Sie die validierten Entity-Daten und generieren Sie ein Einzahlungsevent basierend auf dem Unterschied in den gesamten Einzahlungen.
Auszahlungsabwicklung
Kleine Volumen
- Holen Sie sich validierte Entity-Daten für die Absenderadresse.
- Stellen Sie eine Auszahlungsanweisung basierend auf Ziel und Betrag in die Warteschlange.
- Generieren Sie die erwarteten Entity-Daten für den ausgehenden Betrag und den aktuellen ausgehenden Betrag + den Betrag der Auszahlung.
- Verarbeiten Sie die Warteschlange, indem Sie die Auszahlungsanweisung erstellen und übertragen.
- Überprüfen Sie nach einem bestimmten Tick, ob sich der ausgehende Betrag in den Entity-Daten auf den erwarteten Betrag geändert hat.
- Wenn ja, markieren Sie die Auszahlung als abgeschlossen, entfernen Sie sie aus der Warteschlange und aktualisieren Sie die validierten Entity-Daten. Wenn nicht, wiederholen Sie den Vorgang.
Mittlere Volumen
- Verwenden Sie den SENDMANY SC-Befehl, um bis zu 25 Auszahlungen in einer einzigen Transaktion zu bündeln.
- Wenden Sie die gleiche Logik wie bei kleinen Volumen an, wobei SENDMANY anstelle von einfachen Sendetransaktionen verwendet wird.
- Eine einzelne Adresse, die SENDMANY verwendet, kann etwa 100 Auszahlungen pro Minute erreichen.
Hohe Volumen
- Verwenden Sie die sendmany App, um bis zu 15.625 Zahlungen zu senden, die in etwa 20 Ticks abgeschlossen werden (~8000 Auszahlungen pro Minute).
- Die sendmany App verwendet den SENDMANY SC in einem dreistufigen Fanout. Zahlungen werden in einer .csv-Datei angegeben, verarbeitet, um den Gesamtbetrag zu berechnen, und an eine spezielle Adresse gesendet.
- Sobald die Mittel ankommen, werden sie in drei Generationen verteilt (25 x 25 x 25 Zahlungen).
sendmany Repository
Für Details zum sendmany Programm besuchen Sie das Repository:
Schlussfolgerung
Die Integration von Qubic in bestehende Dienste erfordert eine sorgfältige Berücksichtigung des Datenhandlings, insbesondere bei monetären Transaktionen. Durch die Wahl der geeigneten Integrationsmethode und das Verständnis der einzigartigen Aspekte von Qubic können Dienste Einzahlungen und Auszahlungen effektiv in unterschiedlichen Maßstäben verwalten.
Lesen Sie Qsilvers „Inoffizielle“ Serie
- Ein inoffizielles Qubic Zwischenpapier
- Qubic-Krypto-Details
- Ein inoffizieller Leitfaden zur Integration von Qubic-Diensten
- Ein inoffizieller Leitfaden zum Schreiben von Qubic Smart Contracts
Für die neuesten Updates, treten Sie dem Valis Discord bei, folgen Sie uns auf X und setzen Sie ein Lesezeichen für unseren Blog.
← Vorherige
Auf dieser Seite
- Ein inoffizieller Leitfaden zur Integration von Qubic-Diensten
- Einführung
- Wichtige Unterschiede bei Qubic
- Einzahlungsabwicklung
- Einzahlungsabwicklung basierend auf Guthaben
- Auszahlungsabwicklung
- Kleine Volumen
- Mittlere Volumen
- Hohe Volumen
- sendmany Repository
- Schlussfolgerung
- Lesen Sie Qsilvers „Inoffizielle“ Serie