Beitrag
Teile dein Wissen.
Mastering Move on Sui Network: Der komplette Leitfaden für Anfänger und Erbauer
Wenn Sie sich mit der Blockchain-Entwicklung befasst haben, haben Sie wahrscheinlich bemerkt, dassSui Networkund seine einzigartige Programmiersprache —Move— immer beliebter werden. Dies ist nicht nur eine weitere „intelligente Vertragssprache“, die um die Aufmerksamkeit der Entwickler konkurriert. Move bietet eine völlig andere Denkweise über Blockchain-Programmierung — eine, die schnell, sicher und perfekt für Asset-basierte Anwendungen ist.
In diesem Beitrag erhalten Sie einenumfassenden Einblick in Move on Sui— wie es funktioniert, warum es anders ist und wie Sie damit beginnen können, darauf aufzubauen. Außerdem werden wir uns mit häufigen Fehlern, bewährten Methoden und Erfolgstipps aus der Praxis befassen.
#1. Was ist Move und warum benutzt Sui es?
Move ist eineBytecode-basierte Programmiersprache, die ursprünglich von Meta (ehemals Facebook) für die Libra/Diem-Blockchain entwickelt wurde. Sui hat Move übernommen, es jedoch erweitert und optimiert, um es an seinobjektzentriertes Datenmodellanzupassen.
Im Kern ist Move auf diesichere Verwaltung digitaler Assetsausgelegt. Traditionelle intelligente Vertragssprachen wie Solidity behandeln Vermögenswerte als Zahlen in Kontosalden — aber in Move sind Vermögenswerteerstklassige Bürger. Das bedeutet:
- Vermögenswertekönnen nicht versehentlich dupliziert werden.
- Vermögenswertekönnen nicht verloren gehen, ohne sie explizit zu zerstören.
- Vermögenswertemüssen eindeutig im Eigentum stehen.
Diese Philosophie macht es einfacher, über die Sicherheit von Vermögenswerten nachzudenken und verhindert häufige Bugs und Hacks.
Warum Sui Move gewählt hat:
*Sicherheit: Der Besitz von Vermögenswerten wird auf Sprachebene durchgesetzt. *Geschwindigkeit: Bewegungsprogramme laufen schnell und vermeiden unnötige Berechnungen. *Flexibilität: Sie können benutzerdefinierte Asset-Typen erstellen, die über einfache Token hinausgehen. *Parallele Ausführung: Die Architektur von Sui ermöglicht es Move-Code, Transaktionen parallel zu verarbeiten, wodurch der Durchsatz erhöht wird.
#2. So funktioniert Move auf Sui**
Während andere Blockchains Transaktionen sequentiell ausführen, organisiert Sui Daten inObjekten. Jedes Objekt:
- Hat einenBesitzer(könnte ein Benutzer, ein anderes Objekt oder das System sein).
- Kann nur vom Besitzer oder durch bestimmte Move-Funktionen geändert werden.
- Hat eine eindeutige ID.
Move on Sui hat drei Hauptkonzepte:
1.Objekte
- Alles, was in der Kette gespeichert ist, ist ein Objekt.
- Objekte werden von Move-Modulen gespeichert und geändert.
- Beispiel: eine Münze, ein NFT, ein Spielcharakter.
2.Module
- Container für Move-Code.
- Definieren Sie Typen, Funktionen und Regeln für das Verhalten von Objekten.
3.Transaktionen
- Aktionen, die Benutzer ergreifen.
- Rufen Sie Move-Funktionen auf und übergeben Sie Objekte, die ihnen gehören.
#3. Vergleich zwischen Move und Solidity
| Funktion | Move (Sui) | Solidity (Ethereum) | ------------------------------------------------------------------| | | -------------------------------------------| |Hauptschwerpunkt| Vermögenssicherheit, Eigentum | Allgemeine intelligente Vertragslogik | |Datenmodell| Objektbasiert | Kontobasiert | |Ausführung| Parallelisiert (wenn keine Objektkonflikte auftreten) | Sequentiell | |Typsicherheit| Stark typisiert, Ressourcen können nicht kopiert/gelöscht werden | Lockerer Typsystem | |Sicherheit| Verhindert doppelte Ausgaben und unbeabsichtigten Verlust von Vermögenswerten | Häufige Probleme: Wiedereinstieg, Ganzzahlüberlauf |
Wenn Sie von Solidity kommen, werden Sie feststellen, dass Move Sie**zwingt, explizit mit Ihren Vermögenswerten umzugehen. Das ist anfangs manchmal frustrierend, aber das ist auch der Grund, warum Move-Programme schwerer auszunutzen sind.
#4. Schreiben Sie Ihr First-Move-Modul auf Sui
Schauen wir uns ein einfaches Move-Beispiel an: ein Modul, das ein benutzerdefiniertes Token erstellt und überträgt.
###Ein Token erstellen
module my_project::my_coin {
use sui::coin;
use sui::transfer;
use sui::tx_context::{self, TxContext};
/// Create a new coin type
struct MyCoin has drop, store {}
/// Initialize a new coin and send it to the transaction sender
public entry fun mint(ctx: &mut TxContext) {
let coin = coin::mint<MyCoin>(1000, ctx);
transfer::transfer(coin, tx_context::sender(ctx));
}
}
Erklärung:
struct MyCoin
definiert einen neuen Münztyp.- Die
mint
Funktion erzeugt 1.000 Einheiten vonMyCoin
und überträgt sie an den Absender. TxContext
ermöglicht den Zugriff auf Transaktionsdetails (z. B. wer sie gesendet hat).
#5. Die Ressourcentypen von Move — Die geheime Sauce*
Move führtRessourcentypenein, bei denen es sich umnicht kopierbare, nicht duplizierbare Datenstrukturenhandelt. Im Alltag: Wenn Sie einen 10-Dollar-Schein haben, können Sie ihn nicht einfach „kopieren“ — Sie halten ihn entweder in der Hand oder geben ihn weg. Ressourcen funktionieren auf die gleiche Weise.
In Bewegung:
struct MyCoin has key, store {
value: u64
}
*** key
— Kann als Objekt der obersten Ebene gespeichert werden.
*** store
— Kann in einem anderen Objekt gespeichert werden.
Wenn Sie versuchen, eine Ressource zukopieren, weigert sich der Compiler, Ihren Code zu kompilieren. Dies verhindert Fehler, bei denen Assets versehentlich geklont werden.
#6. Die Sui-spezifischen Move-Erweiterungen*
Sui hat mehrere Änderungen an Vanilla Move vorgenommen, um es für dieobjektbasierte Ausführungzu optimieren:
*Dynamische Objektfelder: Sie können Objekten Felder hinzufügen, nachdem sie erstellt wurden. *Gemeinsam genutzte Objekte: Mehrere Benutzer können mit demselben Objekt interagieren. *Veränderbare Referenzen: Ermöglichen das kontrollierte Ändern von Objektdaten. *Event Emission: Move-Module können Ereignisse für Off-Chain-Listener ausgeben.
Zum Beispiel das Erstellen einer gemeinsamen Spiel-Bestenliste:
struct Leaderboard has key {
scores: vector<u64>
}
Dies könnte von mehreren Spielern aktualisiert werden, ohne dass es zu blockchainweiten Engpässen kommt.
#7. Arbeitsablauf der Entwicklung*
Hier ist der grundlegende Arbeitsablauf für die Entwicklung mit Move on Sui:
1.Installieren Sie Sui CLI
curl -fsSL https://sui.io/install.sh | bash
2.Neues Move-Paket erstellen
sui move new my_project
sources
Schreiben Sie Ihre Modulein den Ordner.
4.Erstelle dein Paket
sui move build
5.Auf Sui veröffentlichen
sui client publish --gas-budget 100000000
6.Funktionen aufrufenmit:
sui client call --package <PACKAGE_ID> --module my_module --function my_function
#8. Testen Sie Ihren Move-Code**
Sui Move unterstützt Komponententests direkt in der Sprache.
Beispiel:
#[test]
fun test_mint() {
let ctx = test::new_tx_context(@0x1);
my_project::my_coin::mint(&mut ctx);
// Add assertions here
}
Führen Sie Tests durch:
sui move test
#9. Häufige Fehler, die Anfänger machen*
&mut TxContext
*Vergessen, txContext zu übergeben— Viele Funktionen müssen Objekte erstellen oder übertragen.
*Missverständnis der Objekteigentümer— Wenn Sie es nicht besitzen, können Sie es nicht mutieren.
*Wir kümmern uns nicht um die Zerstörung von Asset— Sie müssen Ressourcen, die Sie nicht mehr benötigen, explizit „vernichten“.
*Veröffentlichung ohne Versionierung— Ein Modul zu aktualisieren bedeutet, eine neue Version zu veröffentlichen.
#10. Bewährte Methoden für Move on Sui*
*Verwenden Sie klare Namenskonventionen— Macht den Code lesbar. *Nutzung gemeinsam genutzter Objekte einschränken— Sie sind langsamer als eigene Objekte. *Ereignisse bei Zustandsänderungen ausgeben— Hilft bei der Indexierung außerhalb der Kette. *Schreiben Sie gründliche Tests— Der Compiler fängt eine Menge ab, aber es treten immer noch Logikfehler auf. *Dokumentiere deine Module— In Zukunft wirst du es dir danken.
#11. Anwendungsfälle aus der realen Welt*
*Spielvermögen— Jedes Schwert, jeder Skin oder jedes Haustier kann ein einzigartiges Objekt sein. *NFT-Marktplätze— Sichere Transfers und Auktionen mit integrierten Eigentumsüberprüfungen. *DeFi-Protokolle— Kreditvergabe, Staking und Swaps mit sicherem Umgang mit Vermögenswerten. *Supply-Chain-Tracking— Stellen Sie Waren als Objekte dar, die sich durch das System bewegen.
#12. Die Zukunft von Move on Sui*
Die Sprache Sui's Move entwickelt sich immer noch weiter. Die aktuelle Arbeit umfasst:
- BessereTools für Entwickler. *Standardbibliothekenfür gängige Muster. *Interoperabilitätmit anderen Blockchains.
Mit zunehmender Akzeptanz können wir eine umfassendere Dokumentation, größere Open-Source-Projekte und tiefere Integrationen mit der Web3-Infrastruktur erwarten.
##Letzte Gedanken
Wenn Sie es ernst meinen,sichere, leistungsstarke Blockchain-Appszu entwickeln, ist Move on Sui Ihre Aufmerksamkeit wert. Das strenge, aber logische Design hilft Ihnen dabei, ganze Kategorien von Fehlern zu vermeiden und gleichzeitig innovative Anwendungsfälle zu ermöglichen, die bei herkömmlichen, kontobasierten Ketten nicht möglich sind.
Egal, ob Sie ein DeFi-Protokoll, ein Spiel oder ein komplexes NFT-Ökosystem erstellen, Move bietet Ihnen dieBausteine für eine sicherere und schnellere Blockchain-Zukunft.
- Move CLI
- Move
- Smart Contract
Antworten
1Weißt du die Antwort?
Bitte melde dich an und teile sie.
Move is an executable bytecode language used to implement custom transactions and smart contracts.
Verdiene deinen Anteil an 1000 Sui
Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.
