Move ist eine ressourcenorientierte Programmiersprache fuer Smart Contracts, die ursprünglich bei Facebook/Meta fuer das Diem-Projekt (ehemals Libra) entwickelt wurde. Nach dem Aus von Diem 2022 lebt Move in den beiden Layer-1-Blockchains Aptos und Sui weiter, die beide auf der Sprache aufbauen.

Kernkonzept: Ressourcen

Anders als Solidity behandelt Move digitale Vermögenswerte als Ressourcen (resources) mit erstklassigem Status. Ein Ressourcen-Wert kann nicht dupliziert, nicht versteckt und nicht versehentlich gelöscht werden — eine Eigenschaft, die aus linearen Typsystemen stammt. Dadurch lassen sich Token und Coins sicher abbilden, ohne dass der Compiler Angriffe wie Double-Spending zulässt.

Sprachstruktur

module 0x1::mein_modul {
    struct Coin has key, store { value: u64 }

    public entry fun mint(account: &signer, amount: u64) {
        let coin = Coin { value: amount };
        move_to(account, coin);
    }
}

Module sind die Einheiten wie Smart Contracts, Skripte beschreiben Transaktionen. Typische Bausteine: module, struct ... has key, store, public entry fun, use, friend, der signer-Typ für Autorisierung sowie move_to/move_from/borrow_global für den globalen Speicher. Der Move Prover erlaubt formale Verifikation von Eigenschaften.

Werkzeuge und Kommandos

Die Aptos-CLI verwaltet Projekte und Deployments:

aptos init
aptos move compile
aptos move publish
aptos move test
aptos account fund-with-faucet

Die Sui-CLI arbeitet objektzentrisch:

sui client
sui move build
sui move publish
sui move test
sui client call --function transfer --args ...

Daneben existiert die eigenständige move-CLI mit move new, move build, move test und move package. Die Doku liegt im Move Book (move-book.com) sowie bei Aptos (aptos.dev) und Sui (docs.sui.io).

Verwandte Grundlagen: Solidity-Befehle, Vyper-Befehle, Cairo-Befehle, Python-Befehle.