German Translation:
Benutzerfreundliche Library für NEM in Node.js
Die NEM API kann etwas Anspruchsvoll sein wenn du keine Zeit hast die Dokumentation zu lesen. Nem-api ist die Lösung für dieses Problem. Finde das was du auf der Blockchain realisieren willst in der API Dokumentation und kopiere und füge es in dein Projekt ein, ganz einfach. Es ist grossartig für die Erstellung von Prototypen-Apps auf der Blockchain, und auch schon bereit für die Verwendung in einer produktiven Umgebung.
Zusätzlich zu diesem Projekt ist es auch noch eine gute Idee für Entwickler, in die kürzlich veröffentlichte NEM-sdk zu schauen, um alternative Optionen zu prüfen.
Features
- Signieren
- Transaktionen
- NIS Management
- Websockets
- Volle Unterstützung für Mosaic-Transaktionen
- Vollständig kommentierter Code für jeden zum lernen!
Installation
Wie auch alles andere auf NPM, tippe einfach npm install nem-api --save
in deinem Projektverzeichnis ein. Du kannst dann die nem-api mittels require()
in deinem node.js Projekt nutzen.
Beispiele für den Gebrauch
Viele Features werden laufend hinzugefügt. Wenn du etwas zur nem-api beitragen willst, füge bitte in der README ein Beispiel ein, damit man weiss wie es genutzt werden soll. Es sollte ein Kinderspiel sein, wenn du diese Beispiele und den Code liest.
Initialisierung
var nemapi = require('nem-api');
var san = new nemapi('http://san.nem.ninja:7890');
Die API URL kann null sein wenn du nur signieren möchtest. Tatsächlich können einige dinge den Wert “null” annehmen, keine sorge, alles wird sauber gehandhabt.
Signieren
var signature = san.sign(hexPrivateKey, thingToSign);
console.log(signature);
Dies signiert die Nachricht mittels konvertierung in reine bytes, perfekt um zu beweisen, dass du Besitzer des Kontos bist
NIS Requests
san.get('/account/get', {'address': 'YOUR_ADDRESS'}, function(response) {
console.log(response.body);
});
Für POST-requiests benutze san.post und die selben Parameter. Beachte dass response.body bereits ein Javascript-Objekt ist und daher nicht geparst werden muss, um auf die Objektinhalte zugreifen zu können.
Transaktionsobjekt erstellen
Ein Transaktionsobjekt sieht wie folgt aus:
var txobject = {
'isMultisig': false,
'recipient': "TXXX-XXXX-XXXX-XXX", // Dashes optional, all parsed later.
'amount': 1, // Amount of XEM to send.
'message': 'Hello receiver!', // Message to send.
'due': 60 // Not sure what this does but the default is probably fine.
}
Du kannst diese Transaktion auf verschiedene Wege versenden.
Du kannst sie erstellen, serialisieren und dann selbst versenden.
var transaction = this.makeTX(transactionobject, privatekey);
var transactionobject = this.signTX(transaction, privatekey);
this.post('/transaction/announce', transactionobject, callback);
Alternativ kannst du es der dotX()
Funktion übergeben, diese Funktion regelt dann den Rest für dich.
san.doTX(transactionobject, privatekey, callback);
Der Rückgabewert ist ein reguläres post()
callback, es übergibt ein Objekt mit Namen response zurück, welches den response.body enthält (geparstes JSON).
WebSockets nutzen
Mit dem folgenden Beispielen sollte es selbsterklärend sein.
- /errors - Immer auf diesem Kanal anmelden, Fehlermeldungen werden hier hin gesendet.
- /account/- Dies wird getriggert sobald ein Kontostatus sich geändert hat
- /recenttransactions/- Zeigt die kürzlich erfolgten Transaktionen eines Kontos an
- /transactions/ - Wird gesendet wenn eine Transaktion bestätigt wurde
- /unconfirmed/ - Wird gesendet wenn eine unbestätigte Transaktion erhalten wird.
- /account/namespace/owned/ - (einzelner) Namespace im Besitz eines spezifischen Kontos
- /account/mosaic/owned/ - (einzelner) Mosaic im Besitz eines spezifischen Kontos
- /account/mosaic/owned/definition/ - (einzelne) Mosaic-Defintion im Besitz eines spezifischen Kontos
- /unconfirmed - JEDE unbestätigte Transaktion die das NIS empfängt, Achtung, das sind viele Daten!
- /blocks/new - Jeder neue Block wird hier hin gesendet.
- /blocks - volle Blöcke
var nem = require('nem-api');
var bob = new nem("http://bob.nem.ninja:7890/")
function getNewBlocks() {
var thing = bob.subscribeWS("/blocks/new", function(message) {
console.log(message.body);
});
// Later you can thing.unsubscribe(); so keep this object safe.
}
bob.connectWS(function () {
getNewBlocks();
}, function() {
console.log("This runs in case of a failure.");
});
Fazit
Die nem-api Library für node.js ist der perfekte Weg um deine Applikationen auf der NEM-Plattform aufzubauen. Es bietet praktisch alles was du brauchst um leistungsstarke blockchain-gesicherte Applikationen mit NEM zu bauen. Wenn du dich an der Entwicklung beteiligen möchtest, erstelle einen pull request auf Github.
Du kannst dieses Projekt auch mit einer Spende in XEM auf NDLL32-E2LU3M-BOUFCO-ERHSLK-A3O62C-KABXYG-4JYE
oder mit Bitcoin via Bitcoin->XEM Bridge 1Csp78BhddGz9Qj6cF4yc3bnC9Kv49G82f
unterstützen.