Mina Testnet: Wie werde ich Node-Operator

From Mina Wiki
Jump to navigation Jump to search
Warnung
Die Befehle der Node-Operatoren können sich noch ändern. Ihr könnt sie gerne ausprobieren und eine Pull-Anfrage erstellen, um Probleme korrigieren zu lassen!


Nachdem unsere Mina-Node eingerichtet ist und wir unsere erste Transaktion gesendet haben, wollen wir uns nun den anderen Möglichkeiten zuwenden, wie wir mit dem Mina-Netzwerk interagieren können - nämlich an der Konsensfindung teilnehmen und durch die Erzeugung von zk-SNARKs bei der Komprimierung von Daten helfen. Durch den Betrieb einer Node, die zur Sicherung des Netzwerks beiträgt, könnt ihr Mina für eure Anstrengungen erhalten.


Beteiligung am Konsens

Das Mina-Netzwerk ist durch den Proof-of-Stake-Konsens gesichert. Mit diesem Modell des Konsens braucht es keine komplexe Mining-Hardware wie beim Bitcoin-Mining. Indem wir Mina in unserer Wallet haben, können wir wählen, ob wir es selbst staken oder an eine andere Node delegieren wollen. Zunächst schauen wir uns an, wie wir Mina selbst staken können:


Mina staken

Da wir aus dem vorherigen Schritt etwas Mina in unserer Wallet haben, können wir jetzt den Daemon mit dem Flag -propose-key starten, um mit dem Staken von Mina zu beginnen. Wir beenden unseren aktuellen Daemonprozess und starten ihn mit dem folgenden Befehl neu, wobei wir den Dateipfad für den zugehörigen privaten Schlüssel eingeben (wir haben das Schlüsselpaar zuvor in keys/my-wallet erstellt):


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 \
   -propose-key keys/my-wallet


Hinweis
Ihr könnt eine Liste von Schlüsseldateien bereitstellen, um das Staken für mehrere Wallets gleichzeitig zu aktivieren.


Wir können jederzeit überprüfen, mit welchen Wallets wir gerade arbeiten, indem wir den Befehl mina client status verwenden:


mina client status
Mina Daemon Status 
-----------------------------------
Global Number of Accounts:                     18
The Total Number of Blocks in the Blockchain:  1
Local Uptime:                                  36s
Ledger Merkle Root:                            ...
Staged-ledger Hash:                            ...
Staged Hash:                                   ...
GIT SHA1:                                      ...
Configuration Directory:                       ...
Peers:                                         ...
User_commands Sent:                            0
Snark Worker Running:                          false
Sync Status:                                   Offline
Proposers Running:                             Total: 1 (8QnLUNW7sUxnApau4SLShwr25koiSKrECxtveu89PPmQW5pEyy3xK8YgRpZQkZEanc)
Best Tip Consensus Time:                       0:0
Consensus Time Now:                            11542:461
Consensus Mechanism:                           proof_of_stake
...


Das Proposers Running Feld in der obigen Antwort gibt die Anzahl der derzeit gesetzten Konten mit dem zugehörigen Schlüssel zurück.


Warnung
Denkt daran, dass ihr permanent mit dem Netzwerk verbunden bleiben müsst, um als Blockproduzent gewählt zu werden. Wenn ihr häufig offline gehen müsst, ist es eventuell besser, deine 
Mina zu delegieren.


Mina delegieren

Die Delegierung der Mina ist eine Alternative zum direkten Staken, mit dem Vorteil, dass man nicht ständig mit dem Netzwerk verbunden bleiben muss. Bedenkt jedoch:

  • Ihr müsst eine geringe Transaktionsgebühr bezahlen, um einen Delegiertenwechsel vorzunehmen, da dieser Wechsel als eine auf der Blockchain aufgezeichnete Transaktion ausgegeben wird.
  • der Delegierte, der für dich staked, kann sich dafür entscheiden, euch eine Provision für die Bereitstellung des Staking-Dienstes in Rechnung zu stellen

Um eure Mina zu delegieren, führt diesen Befehl aus, anstatt eine eigene Staking-Node zu betreiben:

mina client delegate-stake \
   -delegate <delegate-public-key> \
   -privkey-path <file> \
   -fee <fee>


Die Felder in diesem Befehl:

  • Das -delegate <delegate-public-key Feld erfordert den öffentlichen Schlüssel des von dir gewählten Delegierten.
  • -privkey-path ist der Dateipfad zu deinem privaten Schlüssel mit den Mitteln, die du delegieren möchtest
  • -fee <fee> ist die Transaktionsgebühr für die Aufzeichnung deiner Transaktion auf der Blockchain


Das Delegieren eines Teils deiner Mina kann sinnvoll sein, wenn du daran interessiert bist:


  • eine eigene Staking-Node zu betreiben, die Mina aus einer "cold Wallet" verwendet
  • an einen "Staking-Pool" zu delegieren, der in regelmäßigen Abständen symbolische Auszahlungen vornimmt


Anmerkung
Es gibt eine Wartezeit von einem Tag, bevor Änderungen in Kraft treten, um den Missbrauch des Netzes zu verhindern.


Komprimieren von Daten im Mina-Netzwerk

Das Mina-Protokoll ist insofern einzigartig, da es nicht wie andere Kryptowährungsprotokolle verlangt, dass die Nodes die vollständige Historie der Blockchain speichern. Durch die rekursive Verwendung kryptographischer Beweise komprimiert das Mina-Protokoll die Blockchain effektiv auf eine konstante Größe. Wir nennen dies Komprimierung, weil Terabytes von Daten auf einige Kilobytes reduziert werden.


Dabei handelt es sich jedoch nicht um Datenkodierung oder -komprimierung im herkömmlichen Sinne - vielmehr "komprimieren" die Nodes die Daten im Netzwerk, indem sie kryptografische Beweise erzeugen. Node-Operatoren spielen in diesem Prozess eine entscheidende Rolle, indem sie sich selbst als "Snark-Worker" bezeichnen, die zk-SNARKs für Transaktionen generieren, welche zu Blöcken hinzugefügt wurden.


Wenn ihr den Daemon startet, gebt ihr diese zusätzlichen Argumente ein, um auch einen Snark-Worker zu starten

mina daemon \
   -discovery-port 8303 \
   -peer /dns4/peer1-rising-phoenix.o1test.net/tcp/8303/ipfs/12D3KooWHMmfuS9DmmK9eH4GC31arDhbtHEBQzX6PwPtQftxzwJs \
   -peer /dns4/peer2-rising-phoenix.o1test.net/tcp/8303/ipfs/12D3KooWAux9MAW1yAdD8gsDbYHmgVjRvdfYkpkfX7AnyGvQaRPF \
   -peer /dns4/peer3-rising-phoenix.o1test.net/tcp/8303/ipfs/12D3KooWCZA4pPWmDAkQf6riDQ3XMRN5k99tCsiRhBAPZCkA8re7 \
   -run-snark-worker $MINA_PK \
   -snark-worker-fee <fee>


Als Snark-Worker könnt ihr einen Teil der Blockbelohnung für jeden Block, in den eure komprimierten Transaktionen gelangen, erhalten. Der Blockproduzent ist dafür verantwortlich, komprimierte Transaktionen zu sammeln, bevor sie in einen Block aufgenommen werden, und wird durch das Protokoll dazu angeregt, Snark-Worker zu belohnen.


Dies umfasst in etwa die Rollen und Verantwortlichkeiten als Betreiber einer Mina-Node. Da Mina ein erlaubnisloses Peer-to-Peer-Netzwerk ist, wird alles dezentral von Nodes auf der ganzen Welt verwaltet und betrieben. In ähnlicher Weise wird auch das Mina-Projekt verteilt und ist keine Erlaubnis zum Teilnehmen notwendig. Der gesamte Code ist quelloffen, und es gibt viel,´sowohl technische als auch nicht-technische Arbeit, zu erledigen. Um mehr darüber zu erfahren, wie du dich an Mina beteiligen kannst, lies bitte den Abschnitt zu Mina beitragen.