Mina Testnet: Meine erste Transaktion

From Mina Wiki
Jump to navigation Jump to search

In diesem Abschnitt werden wir unsere erste Transaktion im Mina-Netzwerk durchführen. Nachdem wir die Software installiert haben, müssen wir ein neues Konto erstellen, bevor wir Mina senden oder empfangen können. Lasst uns zuerst die Node starten, damit wir mit der Eingabe von Befehlen beginnen können.


Starten einer Node

Führe den folgenden Befehl aus, um eine Mina-Node zu starten und dich mit dem Netzwerk zu verbinden:


mina daemon \
   -discovery-port 8303 \
   -peer /dns4/seed-one.genesis.o1test.net/tcp/10002/ipfs/12D3KooWP7fTKbyiUcYJGajQDpCFo2rDexgTHFJTxCH8jvcL1eAH \
   -peer /dns4/seed-two.genesis.o1test.net/tcp/10002/ipfs/12D3KooWL9ywbiXNfMBqnUKHSB1Q1BaHFNUzppu6JLMVn9TTPFSA


Der oben angegebene Host und Port bezieht sich auf die Seed-Peer-Adresse - dies ist der erste Peer, mit dem wir uns im Netzwerk verbinden werden. Da Mina ein Peer-to-Peer-Protokoll ist, gibt es nicht einen einzigen zentralen Server, auf den wir uns verlassen. Wenn ihr benutzerdefinierte Ports (anders als 8303 für TCP) verwenden möchtet, müsst ihr ein zusätzliches Flag an den obigen Befehl übergeben: -externer-Port <custom-TCP-Port>.


Hinweis
Der Daemon-Prozess muss immer laufen, wenn ihr Befehle vom Mina-Client aus erteilt, also stellt sicher, dass ihr ihn nicht versehentlich aus- oder abschaltet.


Hier findet ihr häufige Probleme, die bei der ersten Ausführung einer Node auftreten.


Überprüfung der Konnektivität

Jetzt, da wir eine Node gestartet haben und den Mina-Daemon laufen lassen, öffne eine weitere Shell und führe den folgenden Befehl aus:

mina client status


Hinweis
Im Moment kann es bis zu einer Minute dauern, bis sich der Mina-Client-Status beim ersten Start mit dem Daemon verbindet. Wenn also der Fehler: “Error: daemon not running. See mina 
daemon” rückgemeldet wird, warte ein wenig und versuche es noch einmal.


Höchstwahrscheinlich werdet ihr eine Antwort erhalten, die die untenstehenden Felder enthält:


...
Peers:                                         Total: 4 (...)
...
Sync Status:                                   Bootstrap


Wenn du Sync Status: Bootstrap siehst, bedeutet dies, dass die Mina-Node bootet und sich mit dem Rest des Netzwerks synchronisieren muss. Hier müsst ihr möglicherweise Geduld haben, da dieser Schritt einige Zeit dauern kann, bis die Node alle benötigten Daten erhalten hat. Wenn der Sync-Status Synced erreicht hat und die Node mit einem oder mehreren Peers verbunden ist, haben wir erfolgreich eine Verbindung mit dem Netzwerk hergestellt.


Ein neues Konto anlegen

Sobald unsere Node synchronisiert ist, werden wir ein öffentlich/privates Schlüsselpaar erstellen, damit wir Transaktionen signieren und eine Adresse für den Empfang von Zahlungen generieren können. Aus Sicherheitsgründen werden wir die Schlüssel in ein Verzeichnis legen, dass für Angreifer schwieriger zugänglich ist.

Führt einen der folgenden Befehle aus, um einen öffentlichen und privaten Schlüssel my-wallet und my-wallet.pub unter dem Schlüsselverzeichnis zu erstellen:


mina client-old generate-keypair -privkey-path keys/my-wallet 
mina accounts create


Warnung
Der öffentliche Schlüssel kann frei mit jedem geteilt werden, aber sei sehr vorsichtig mit deiner privaten Schlüsseldatei. Teile diesen privaten Schlüssel niemals mit irgendjemandem, da 
er einem Passwort für deine Mina-Wallet entspricht.


Die Antwort auf diesen Befehl wird folgendermaßen aussehen


Keypair generated
Public key:  4vsRCVbLm6LvUyzYWT95WaCzyi4D4UHxRpLBhMn7q2mRPgNCgRG3Jr3tDuhgQdmzbvCcBxhUwB3REpY2Dyf1NAxSSs8Q2vdJX93pT7eyqcyRU2S9UpDddDgovj46BSknNjzydKoopebp5Kva


Da der öffentliche Schlüssel ziemlich lang und schwer zu merken ist, solltet ihr ihn als Umgebungsvariable speichern:

export MINA_PK=<public-key>


Jetzt könnt ihr diese überall als $MINA_PK abrufen. Beachtet, dass dies nur für die aktuelle Shell-Sitzung gespeichert wird. Wenn ihr ihn also für die zukünftige Verwendung speichern möchtet, könnt ihr ihn zu eurem /.profile oder ~/.bash_profile hinzufügen.


Mina anfordern

Um unsere erste Transaktion zu senden, müssen wir zunächst einige Mina zum Testen bekommen. Gehe zum Mina-Discord-Server und suche den Kanal #faucet. Dort angekommen, bittet tiny, den Hund, um einige Mina (du erhältst 100). Hier ist ein Beispiel:

$request <public-key>


Sobald ein Faucet-Mod deine Anfrage aufnimmt, behalte den Discord-Kanal im Auge, um zu sehen, wann die Transaktion auf dieser Seite durchgeführt wurde. Es kann einige Minuten dauern, bis sich dein Kontostand aktualisiert..

Ihr könnt euren Kontostand überprüfen, um sicherzustellen, dass ihr die Mina erhalten habt, indem ihr den folgenden Befehl ausführt und euren öffentlichen Schlüssel einfügt:


mina client get-balance -public-key $MINA_PUBLIC_KEY


Möglicherweise seht ihr “Balance: 0 mina” Habt Geduld! Je nach Netzwerkauslastung kann es einige Blöcke dauern, bis deine Transaktion durchgeführt wird.

Während ihr wartet, werft einen Blick auf die Daemon-Protokolle, um zu sehen, ob neue Blöcke generiert werden. Führt den folgenden Befehl aus, um die aktuelle Blockhöhe zu sehen:


mina client status


Eine Zahlung tätigen

Endlich können wir unsere erste Transaktion senden! Zu Testzwecken ist bereits ein Echodienst eingerichtet, der Ihre Zahlung abzüglich der Transaktionsgebühren sofort zurückerstattet.


Warnung
Derzeit gibt es ein bekanntes Problem mit dem Echodienst, das verhindert, dass er deine Zahlung ordnungsgemäß zurücksendet! Keine Sorge, wir geben euch trotzdem Testnet-Punkte* für das 
Abschließen der Challenge.


Wir schicken einige unserer neu erhaltenen Mina an diesen Dienst, um zu sehen, wie eine Zahlung aussieht:


mina client send-payment \
 -amount 20 \
 -receiver 4vsRCVNep7JaFhtySu6vZCjnArvoAhkRscTy5TQsGTsKM4tJcYVc3uNUMRxQZAwVzSvkHDGWBmvhFpmCeiPASGnByXqvKzmHt4aR5uAWAQf3kqhwDJ2ZY3Hw4Dzo6awnJkxY338GEp12LE4x \
 -fee 5 \
 -sender $YOUR_PUBLIC_KEY


Falls ihr euch fragt, was wir durch den obigen Befehl ausgeführt haben:


  • Für den amount senden wir einen Testwert von 20 Mina
  • Der receiver ist der öffentliche Schlüssel des Echodienstes
  • Für die fee verwenden wir den aktuellen Wert von 5 Mina
  • Der sender ist der vollständige öffentliche Schlüssel, der sich in *.pub ex. befindet


4vsRCVNep7JaFhtySu6vZCjnArvoAhkRscTy5TQsGTsKM4tJcYVc3uNUMRxQZAwVzSvkHDGWBmvhFpmCeiPASGnByXqvKzmHt4aR5uAWAQf3kqhwDJ2ZY3Hw4Dzo6awnJkxY338GEp12LE4x


Wenn dieser Befehl richtig formatiert ist, sollten wir eine Antwort erhalten, die wie folgt aussieht:


Dispatched payment with ID 

3XCgvAHLAqz9VVbU7an7f2L5ffJtZoFega7jZpVJrPCYA4j5HEmUAx51BCeMc232eBWVz6q9t62Kp2cNvQZoNCSGqJ1rrJpXFqMN6NQe7x987sAC2Sd6wu9Vbs9xSr8g1AkjJoB65v3suPsaCcvvCjyUvUs8c3eVRucH4doa2onGj41pjxT53y5Zkm
GaPmPnpWzdJt4YJBnDRW1GcJeyqj61GKWcvvrV6KcGD25VEeHQBfhGppZc7ewVwi3vcUQR7QFFs15bMwA4oZDEfzSbnr1ECoiZGy61m5LX7afwFaviyUwjphtrzoPbQ2QAZ2w2ypnVUrcJ9oUT4y4dvDJ5vkUDazRdGxjAA6Cz86bJqqgfMHdMFqpk 
mLxCdLbj2Nq3Ar2VpPVvfn2kdKoxwmAGqWCiVhqYbTvHkyZSc4n3siGTEpTGAK9usPnBnqLi53Z2bPPaJ3PuZTMgmdZYrRv4UPxztRtmyBz2HdQSnH8vbxurLkyxK6yEwS23JSZWToccM83sx2hAAABNynBVuxagL8aNZF99k3LKX6E581uSVSw5D
AJ2S198DvZHXD53QvjcDGpvB9jYUpofkk1aPvtW7QZkcofBYruePM7kCHjKvbDXSw2CV5brHVv5ZBV9DuUcuFHfcYAA2TVuDtFeNLBjxDumiBASgaLvcdzGiFvSqqnzmS9MBXxYybQcmmz1WuKZHjgqph99XVEapwTsYfZGi1T8ApahcWc5EX9
Receipt chain hash is now A3gpLyBJGvcpMXny2DsHjvE5GaNFn2bbpLLQqTCHuY3Nd7sqy8vDbM6qHTwHt8tcfqqBkd36LuV4CC6hVH6YsmRqRp4Lzx77WnN9gnRX7ceeXdCQUVB7B2uMo3oCYxfdpU5Q2f2KzJQ46


Kontostand überprüfen

Jetzt, da wir Transaktionen versenden können, könnte es hilfreich sein, unseren Kontostand zu kennen, damit wir unsere Testnetz-Mina nicht zu leichtsinnig ausgeben! Lasst uns unseren aktuellen Kontostand überprüfen, indem wir den folgenden Befehl ausführen und den öffentlichen Schlüssel des von uns generierten Kontos eingeben:


mina client get-balance -public-key $MINA_PK


Danach bekommen wir eine Antwort, die so aussieht:

Balance: 50 mina


Sobald ihr euch mit den Grundlagen der Adresserstellung, des Sendens und Empfangens von Mina vertraut gemacht habt, können wir zu den wirklich einzigartigen Teilen des Mina-Netzwerks übergehen - wir beteiligen uns am Konsens und helfen, die Blockchain zu komprimieren.


\*_Testnet-Punkte sind ausschließlich dazu bestimmt, Beiträge zum Testnet zu verfolgen. Testnet-Punkte haben keinen Geld- oder sonstigen monetären Wert. Testnet-Punkte sind nicht 
übertragbar und können nicht gegen Krypto-Währung oder digitale Vermögenswerte eingelöst oder ausgetauscht werden. Wir können Testnet-Puntke jederzeit ändern oder eliminieren._