NEU: Helius übernimmt Light Protocol
So erstellst du eine Solana-Transaktion
Blog/Entwicklung

Solana Dev 101 – So erstellst du eine Solana-Transaktion

Developer Experience EngineerOwen Venter auf XOwen Venter auf LinkedIn
5 Min. Lesezeit
Inhaltsverzeichnis

Einführung

GM! In diesem Blog erfährst du im Rahmen der Solana Dev 101-Serie, wie du mit JavaScript eine Transaktion auf Solana erstellst und sendest. Dieser Leitfaden ist für Einsteiger geeignet. Mach dir also keine Sorgen, wenn Solana oder Blockchain-Technologie für dich neu sind.

Wenn du Fragen hast, tritt dem Helius Discord bei oder markiere Helius auf X, um Hilfe zu erhalten.‍

Voraussetzungen

Bevor wir beginnen, müssen Node.js und npm auf deinem Rechner installiert sein. Falls nötig, kannst du sie hier herunterladen.

Außerdem müssen wir die Solana-Bibliothek web3.js installieren. Sie umfasst JavaScript-Tools und -Bibliotheken für die Interaktion mit der Solana-Blockchain.

Du kannst sie mit npm installieren, indem du den folgenden Code in deinem Terminal ausführst:

Code
npm install @solana/web3.js

‍Schritt 1: Verbindung einrichten

Zuerst stellen wir eine Verbindung zum Solana-Cluster her. Wir verwenden Helius, um uns mit einem Devnet-Cluster zu verbinden. Du musst ein Helius-Konto erstellen und einen API-Schlüssel anlegen. Beides ist kostenlos über dein Dashboard möglich.

Code
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);

Schritt 2: Neue Wallet erstellen

Jetzt brauchen wir eine Wallet, von der wir Transaktionen senden können. Eine Wallet besteht lediglich aus einem öffentlichen und einem privaten Schlüssel und lässt sich leicht erstellen. Der öffentliche Schlüssel ist deine Wallet-Adresse. Mit deinem privaten Schlüssel signierst du Transaktionen. Hier erfährst du mehr über Kryptografie mit öffentlichen Schlüsseln.

Wir können eine neue Wallet im Dateisystem erstellen. Das Schlüsselpaar dieser Wallet wird auf deinem lokalen Rechner gespeichert. Wenn du die Solana CLI-Tools bereits installiert hast, kannst du den folgenden Befehl im Terminal ausführen, um eine neue Wallet zu erstellen.

Code
solana-keygen new

Falls nicht, musst du die Solana CLI-Tool-Suite installieren. Weitere Informationen dazu findest du hier in der Solana-Dokumentation: https://docs.solana.com/cli/install-solana-cli-tools

Anschließend können wir diese Wallet in unseren Code laden:

Code
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));

Kopiere deinen geheimen Schlüssel aus der JSON-Datei der im vorherigen Schritt erstellten Wallet und verwende ihn hier.

Schritt 3: Guthaben auf die Wallet laden

Um Transaktionen zu senden, benötigen wir etwas SOL in unserer Wallet. Für die Verarbeitung jeder Transaktion auf Solana fällt eine geringe Gebühr an.

Zu Testzwecken laden wir mit unserer Devnet-Faucet Guthaben auf die Wallet. Verwende die Helius-Faucet in deinem Dashboard oder folge dieser Anleitung, um Devnet SOL über die CLI anzufordern. Gib den öffentlichen Schlüssel der gerade erstellten Wallet ein und fordere etwas SOL an.

Schritt 4: Transaktion erstellen

Nachdem unsere Wallet nun über Guthaben verfügt, können wir eine Transaktion erstellen. In diesem Beispiel erstellen wir die Transaktion und fügen ihr eine Transfer-Anweisung hinzu. Damit übertragen wir 0,1 SOL an eine Wallet unserer Wahl.

Eine Transaktion kann je nach Anweisung viele verschiedene Aktionen ausführen. In diesem Beispiel senden wir SOL mit einer Transfer-Anweisung.

Code
// Set up the address to send to
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");

// Create a transaction    
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);

‍Im obigen Code erstellen wir ein neues PublicKey-Objekt mit einer Wallet unserer Wahl. Zum Erstellen einer Transaktion benötigen wir das PublicKey-Objekt und nicht nur die Adresse. Die Transfer-Anweisung akzeptiert außerdem drei Parameter:

  1. fromPubkey: der öffentliche Schlüssel des Absenderkontos.
  2. toPubkey: der öffentliche Schlüssel des Empfängerkontos.
  3. lamports: die zu übertragende Anzahl an Lamports, der kleinsten Währungseinheit auf Solana. solanaWeb3.LAMPORTS_PER_SOL entspricht 1 SOL.

Schritt 5: Transaktion signieren und senden

Nachdem wir die Transaktion erstellt haben, müssen wir sie signieren und an das Netzwerk senden.

Die Solana-Web3-Bibliothek bietet dafür die Funktion sendAndConfirmTransaction(), mit der wir all diese Schritte einfach ausführen können.

Die Methode sendAndConfirmTransaction sendet die Transaktion an das Netzwerk, wartet auf die Bestätigung und gibt eine Signatur für die Transaktion zurück.

Code
// Sign and confirm the transaction      
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);      
console.log('Transaction: ', signature);

Die Methode sendAndConfrimTransaction akzeptiert drei Parameter:

  1. connection: Dies ist das Solana-Netzwerkverbindungsobjekt, das wir über eine Helius RPC-Verbindung erstellt haben. Dieser Parameter gibt die Verbindung an, über die die Transaktion gesendet und bestätigt wird.
  2. transaction: Dies ist das gerade erstellte Transaktionsobjekt mit der Transfer-Anweisung.
  3. [sender]: Dies ist ein Array mit allen Signaturkonten für die Transaktion. In diesem Fall enthält es ein einzelnes Element, sender. Es repräsentiert das Konto, das die Transaktion signiert und autorisiert.

Und das war's!

Wir haben gerade mit JavaScript eine Transaktion auf Solana erstellt und gesendet.

Du kannst das Skript mit node sendTransaction.js ausführen.

Fazit

Dank der umfassenden JavaScript-Bibliothek von Solana kannst du mit JavaScript ganz einfach eine Transaktion auf Solana erstellen und senden. Mit nur wenigen Codezeilen können wir mit der Solana-Blockchain interagieren. Das eröffnet zahlreiche Möglichkeiten.

Dieses einfache Beispiel zeigt den Aufbau und Ablauf beim Erstellen und Senden einer Transaktion. Anwendungen in der Praxis können komplexere Transaktionen und zusätzliche Sicherheitsmaßnahmen erfordern.

Ich hoffe, dieser Leitfaden war hilfreich. Viel Spaß beim Programmieren!

Den vollständigen Code findest du hier.

Ressourcen

‍

Helius abonnieren

Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen