X12Coin annehmen

Anleitung für das Command-Line Wallet

Die Grundlagen

X12 funktioniert ein wenig anders, als andere Kryptowährungen. Im Falle einer digitalen Währung wie Bitcoin und seine vielen Derivate schaffen Händler-Zahlungssysteme in der Regel eine neue Empfängeradresse für jede Zahlung oder jeden Benutzer.

Da X12 aber Stealth-Adressen verwendet, gibt es keine Notwendigkeit für separate Empfängeradressen bei jeder Zahlung oder für jeden Benutzer, und eine einzelne Kontoadresse kann veröffentlicht werden. Stattdessen wird beim Empfangen von Zahlungen der Käufer dem Bezahlenden eine “Zahlungskennung” bieten.

Eine Zahlungs-ID ist eine hexadezimale Zeichenfolge, die 64 Zeichen lang ist, und wird normalerweise durch den Händler nach dem Zufallsprinzip erstellt. Eine Zahlungs-ID als Beispiel wäre: 666c75666679706f6e7920697320746865206265737420706f6e792065766572

Nach einer Zahlung im x12-wallet-cli schauen

Falls Sie eine Zahlung mit Hilfe von x12-wallet-cli überprüfen möchten, können Sie den „Zahlungs“-Befehl und im Anschluss die Zahlungs-ID oder die Zahlungs-IDs verwenden, die Sie überprüfen wollen. Zum Beispiel:


[wallet 49VNLa]: payments 666c75666679706f6e7920697320746865206265737420706f6e792065766572
payment transaction height amount unlock time
666c75666679706f6e79206973207 7ba4cd810c9b4096869849458181e98e 441942 30.00000 0
[wallet 49VNLa]: █

Falls Sie Zahlungen programmatisch überprüfen möchten, finden Sie Details in der nächsten Sektion.

Eine Bezahlung erhalten (Schritt-für-Schritt)

  • Eine zufällige 64 Zeichen lange hexadezimale Reihenfolge für die Zahlung generieren
  • Die Zahlungs-ID und die x12-Adresse an das Individuum weiterleiten, die die Zahlung tätigt
  • Nach der Zahlung sehen, indem Sie den „Zahlungen“-Befehl im x12-wallet-cli verwenden

Programmatische Prüfung einer Bezahlung

Um Zahlungen programmatisch überprüfen zu können, können Sie die get_payments oder get_bulk_payment JSON RPC API Calls verwenden.

get_payments: hier ist ein Zahlungs-ID-Parameter mit einer einzigen Zahlungs-ID nötig.

get_bulk_payments: dies ist die bevorzugte Methode und erfordert zwei Parameter, payment_ids – eine JSON Reihe an Zahlungs-IDS – und eine optionale min_block_height – die Blockhöhe, von der aus gescannt werden soll.

Ein Beispiel zurückgegebener Daten sieht wie folgt aus:


[ x12->~ ]$ curl -X POST http://127.0.0.1:18500/json_rpc -d '{"jsonrpc":"2.0","method":"get_bulk_payments","id":"test", "params":{"payment_ids": ["666c75666679706f6e7920697320746865206265737420706f6e792065766572"]}}' -H "Content-Type: application/json"
{
"id": "test",
"jsonrpc": "2.0",
"result": {
"payments": [{
"amount": 30000000000000,
"block_height": 441942,
"payment_id": "666c75666679706f6e7920697320746865206265737420706f6e792065766572",
"tx_hash": "7ba4cd810c9b4096869849458181e98e18b6474ab66415de0f4ccf7ab1162fdf",
"unlock_time": 0
}]
}
}

Es ist wichtig zu beachten, dass die Beträge, die zurückgegeben werden, in Basis-X12-Einheiten erscheinen und nicht in den Display-Einheiten, die normalerweise bei Endbenutzer-Anwendungen verwendet werden. Da Transaktionen normalerweise mehrere Outputs haben, die zum erforderlichen Gesamtbetrag zur Zahlung hinzugefügt werden, sollten die Mengen nach dem tx_hash oder payment_id gruppiert und miteinander addiert werden. Darüber hinaus, ist es unerlässlich, nicht zu versuchen, die zurückgegebenen Daten aus einer einzigen get_bulk_payments herauszufiltern, da mehrere Ausgänge den gleichen Betrag haben können.

Vor dem Scannen nach Zahlungen ist es sinnvoll, die Daemon RPC-API zu prüfen, (der get_info RPC Call) um festzustellen, ob zusätzliche Blöcke empfangen wurden. In der Regel würden Sie dann nur von diesem empfangenen Block aus scannen wollen, indem Sie es als min_block_height angeben, um get_bulk_payments zu erhalten.

Programmatisches Scannen nach Zahlungen

  • Erhalten Sie die aktuelle Blockhöhe von der Daemon, und fahren Sie nur dann fort, wenn es vom letzten Scan angestiegen ist.
  • Rufen Sie den get_bulk_payments RPC-API Call mit unserer letzten gescannten Höhe und die Liste aller Zahlungs-IDs in unserem System auf.
  • Speichern Sie die aktuelle Blockhöhe als unsere letzte gescannten Höhe
  • Entfernen Sie Duplikate basierend auf Transaktions-Hashes, die wir bereits erhalten und bearbeitet haben.