Ein Bündel (Bundle) von Transaktionen senden

Transaktionen müssen in einem Bundle zusammengefasst werden, bevor sie an einen IRI-Node gesendet werden. Die IOTA-Clientbibliotheken verfügen über integrierte Funktionen, die Bundles aus Übertragungsobjekten erstellen.

Jeder Code, der einen Seed verwendet, wird auf der Clientseite ausgeführt. Dein Seed wird niemals irgendwohin geschickt.

Um diese Anleitung abzuschließen, muss auf Ihrem Computer Node JS (8+) installiert sein.

1. Erstellen Sie ein neues Verzeichnis mit dem Namen iota-basics

2. Wechseln Sie in der Befehlszeile in das Verzeichnis iota-basics und installieren Sie die IOTA Core-Bibliothek

$ cd iota-basics
$ npm install --save @iota/core

3. Erstellen Sie im Verzeichnis iota-basics eine neue Datei namens send-bundle.js

4. Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei ein:

// Require the IOTA libraries
const Iota = require('@iota/core');
const Converter = require('@iota/converter');

// Create a new instance of the IOTA object
// Use the `provider` field to specify which IRI node to connect to
const iota = Iota.composeAPI({
provider: 'https://nodes.thetangle.org:443'
});

const seed =
'PUETTSEITFEVEWCWBTSIZM9NKRGJEIMXTULBACGFRQK9IMGICLBKW9TTEVSDQMGWKBXPVCBMMCXWMNPDX';

var recipientAddress1 = "CXDUYK9XGHC9DTSPDMKGGGXAIARSRVAFGHJOCDDHWADLVBBOEHLICHTMGKVDOGRU9TBESJNHAXYPVJ9R9";

var recipientAddress2 = "CYJV9DRIE9NCQJYLOYOJOGKQGOOELTWXVWUYGQSWCNODHJAHACADUAAHQ9ODUICCESOIVZABA9LTMM9RW";

// Store the trytes that are returned from prepareTransfers function
var storedTrytes;

// preparing transactions
var transfer1 = {
'address': recipientAddress1, //81 trytes long address
'value': 0,
'message': Converter.asciiToTrytes('Hello, this is my first message'),
'tag': 'SENDABUNDLEOFTRANSACTIONS' //Up to 27 trytes
};

var transfer2 = {
'address': recipientAddress2, //81 trytes long address
'value': 0,
'message': Converter.asciiToTrytes('Hello, this is my second message'),
'tag': 'SENDABUNDLEOFTRANSACTIONS' //Up to 27 trytes
};

// Create bundle and return the trytes of the prepared TXs
iota.prepareTransfers(seed, [transfer1, transfer2])
.then(function(trytes){
    storedTrytes = trytes;
    console.log(storedTrytes);
    // Finalize and broadcast the bundle to the IRI node
    return iota.sendTrytes(storedTrytes, 3 /*depth*/, 14 /*minimum weight magnitude*/);
})

.then(results => console.log(JSON.stringify(results, null, 1)));

Anmerkung: Die Methode asciiToTrytes unterstützt nur grundlegende ASCII-Zeichen. Die diakritischen Zeichen wie Akzente und Umlaute werden daher nicht unterstützt und führen zu einem INVALID_ASCII_CHARS Fehler.

In der Ausgabe sollte Folgendes angezeigt werden. Da diese Transaktionen keine Token übertragen, ist keine Signatur erforderlich. Anstelle einer Signatur enthalten die Felder signatureMessageFragment daher Ihre Nachrichten.

[{"hash":"OTMXFMZEE9J9NSJDDJQMCXMZNFKATWSCJHFOLQEEBZIMC9BMKCYYJETOIVV9YLPB9GWCHJVJEGKZ99999","signatureMessageFragment":"RBTC9D9DCDQAEASBEARCFDTCPCHDTCSCEAHDWCXCGDEAUCXCFDGDHDEAADTCGDGDPCVCTCEAPCHDDBEAWBCDBDEATBPCBDEAWAVAEAWAUAVACBEAUACBDBZAABDBXAVAEAQBWBCCPAUAUAUAUAEAMAQBFDTCTCBDKDXCRCWCEAWBTCPCBDEACCXCADTCNA99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999","address":"CXDUYK9XGHC9DTSPDMKGGGXAIARSRVAFGHJOCDDHWADLVBBOEHLICHTMGKVDOGRU9TBESJNHAXYPVJ9R9",
"value":0,
"obsoleteTag":"GMNDABUNDLEOFTRANSACTIONS99",
"timestamp":1548064651,
"currentIndex":0,
"lastIndex":1,"bundle":"9KZIXYCFFNZWFYKUNTWCHDHWUVAQYLYGUJ9NEUEJYHHF9FHA9DGNDSYFDETIQGARBZJOUAHVNFACAZKEB","trunkTransaction":"RYDEZRHWGRCALNBUN9IXMPFYVLRLFVMYGVHNLUVBR9GOXWIJJCXNJZSBMXBKEYEQDFXOVDFBIWIGZ9999","branchTransaction":"SE9ZOTYSXWSEYLCNUE9ZUPBMGDGUHLJQDCBBIAOJWMTFXGVMEBQWVPVBZF9MYEDMOVTZYOEJAISIZ9999",
"tag":"SENDABUNDLEOFTRANSACTIONS99",
"attachmentTimestamp":1548064653746,]
"attachmentTimestampLowerBound":0,
"attachmentTimestampUpperBound":3812798742493,
"nonce":"POWSRVIO9KD99999LPMKPEKMMMM"
},{"hash":"RYDEZRHWGRCALNBUN9IXMPFYVLRLFVMYGVHNLUVBR9GOXWIJJCXNJZSBMXBKEYEQDFXOVDFBIWIGZ9999","signatureMessageFragment":"RBTC9D9DCDQAEASBEARCFDTCPCHDTCSCEAHDWCXCGDEAGDTCRCCDBDSCEAADTCGDGDPCVCTCEAPCHDDBEAWBCDBDEATBPCBDEAWAVAEAWAUAVACBEAUACBDBZAABDBXAVAEAQBWBCCPAUAUAUAUAEAMAQBFDTCTCBDKDXCRCWCEAWBTCPCBDEACCXCADTCNA999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999","address":"CYJV9DRIE9NCQJYLOYOJOGKQGOOELTWXVWUYGQSWCNODHJAHACADUAAHQ9ODUICCESOIVZABA9LTMM9RW",
"value":0,
"obsoleteTag":"SENDABUNDLEOFTRANSACTIONS99",
"timestamp":1548064651,
"currentIndex":1,
"lastIndex":1,"bundle":"9KZIXYCFFNZWFYKUNTWCHDHWUVAQYLYGUJ9NEUEJYHHF9FHA9DGNDSYFDETIQGARBZJOUAHVNFACAZKEB","trunkTransaction":"SE9ZOTYSXWSEYLCNUE9ZUPBMGDGUHLJQDCBBIAOJWMTFXGVMEBQWVPVBZF9MYEDMOVTZYOEJAISIZ9999","branchTransaction":"BHLBPKKZDUYPAKFEDS9IXBDQJXMSGYBHHRFLDVVLZTCBKGVPLBIYIXRIJRUFMICYXCQIYMCXMULBA9999",
"tag":"SENDABUNDLEOFTRANSACTIONS99","attachmentTimestamp":1548064653591,
"attachmentTimestampLowerBound":0,
"attachmentTimestampUpperBound":3812798742493,
"nonce":"POWSRVIO9ND99999FVPEGPKMMMM"
}]

5. Kopieren Sie den Hash der ersten Transaktion und fügen Sie ihn in thetangle.org ein. Dort sollten sie Details zu Ihrer Transaktion sehen. Diese Angaben stammen vom IRI-Node, mit denen die Website verbunden ist.

6. Scrollen Sie nach unten zu 'Übergeordnete Transaktionen' und klicken Sie auf den Trunk-Hash.

Trunk- und Branch-Transaktionen werden als übergeordnete Transaktionen bezeichnet. Alle Transaktionen in einem Bundle sind durch den Wert ihrer trunkTransaction Felder verbunden.


Anmerkung:

Der Inhalt kann durch die Übersetzung verfälscht sein. Im Zweifel gilt das englische Original der IOTA Foundation.

Quelle: https://docs.iota.org/docs/iota-basics/0.1/how-to-guides/send-bundle

  • Zuletzt geändert: 2019/02/12 09:31
  • von vrom