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.