MOVE IL LINGUAGGIO DI FACEBOOK
Nota per i lettori: il 1 ° dicembre 2020, l’Associazione Libra è stata rinominata in Associazione Diem. Questo rapporto è stato pubblicato prima che l’Associazione pubblicasse il White Paper v2.0 nell’aprile 2020, che includeva una serie di aggiornamenti chiave al sistema di pagamento Libra. Icollegamenti obsoleti sono stati rimossi, ma per il resto questo rapporto non è stato modificato per incorporare gli aggiornamenti e dovrebbe essere letto in tale contesto. Le caratteristiche del progetto implementato possono differire in base alle approvazioni normative o ad altre considerazioni e possono evolversi nel tempo.
https://developers.diem.com/main/docs/move-paper
Vi presentiamo Move, un linguaggio di programmazione sicuro e flessibile per la Diem Blockchain. Move è un linguaggio bytecode eseguibile utilizzato per implementare transazioni personalizzate e contratti intelligenti. La caratteristica chiave di Move è la possibilità di definire tipi di risorse personalizzati con semantica ispirata alla logica lineare: una risorsa non può mai essere copiata o implicitamente scartata, ma solo spostata tra le posizioni di archiviazione del programma. Queste garanzie di sicurezza sono applicate staticamente nelsistema di tipo move. Nonostante queste protezioni speciali, le risorse sono valori di programma ordinari: possono essere archiviate in strutture di dati, passate come argomenti alle procedure e così via. Le risorse di prima classe sono un concetto molto generale che i programmatori possono utilizzare non solo per implementare risorse digitali sicure, ma anche per scrivere una logica di business corretta per il wrapping delle risorse e l’applicazione delle politiche di controllo degli accessi. La sicurezza e l’espressività di Move ci hanno permesso di implementare parti significative del protocollo Diem in Move,tra cui La moneta Diem, l’elaborazione delle transazioni e la gestione del validatore.
Il move book
Attenzione: il contenuto di questa pagina è obsoleto e richiede una rielaborazione. Una versione più recente di Move IDE sarà pubblicata a breve. Per ora ti consiglio di usare move-cli.
Come con qualsiasilinguaggio comp iled, è necessario un set adeguato di strumenti per compilare, eseguire ed eseguire il debug delle applicazioni Move. Poiché questo linguaggio è creato per le blockchain e utilizzato solo al loro interno, l’esecuzione di script off-chain è un compito non banale: ogni modulo richiederà unambiente, una gestione degli account e un sistema di compilazione-pubblicazione.
Per semplificare lo sviluppo dei moduli Move, ho creato l’estensione Move IDE per Visual Studio Code. Questa estensione ti aiuterà a far fronte ai requisiti ambientali. L’uso di questa estensione è altamente raccomandatoin quanto gestirà l’ambiente di compilazione / esecuzione per te, quindi ti consentirà di concentrarti sull’apprendimento del linguaggio Move invece di lottare con l’interfaccia della riga di comando. Questa estensione include anche l’evidenziazione della sintassi Move e l’esecutore per facilitare il debug delle applicazioni prima di going public.
Installa Move IDE
Per installarlo avrai bisogno di:
1. VSCode (versione 1.43.0 e successive) – puoi ottenerlo qui; se ne hai già uno – procedi al passaggio successivo;
2. Sposta IDE: una volta installato VSCode , segui questo link per installare la versione più recente di IDE.
Ambiente di installazione
Move IDE propone un unico modo di organizzare la struttura delle directory. Creare una nuova directory per il progetto e aprirla in VSCode. Quindi impostare questa struttura di directory:
modules/ – directory per i nostri moduli
scripts/ – directory per gli script delle transazioni
out/ – questa directory conterrà i sorgenti compilati
Inoltre dovrai creare un file chiamato . mvconfig.json che configurerà il tuo ambiente di lavoro. Questo è un esempio per libra:
{
“rete”: “libra”,
“mittente”: “0x1”
}
In alternativa èpossibile utilizzare dfinance come rete:
{
“rete”: “dfinance”,
“mittente”: “0x1”
}
dfinance utilizza bech32 ‘wallet1…’ indirizzi, libra utilizza 16 byte ‘0x…’ indirizzi. Per le esecuzioni locali e gli esperimenti 0x1 indirizzo è sufficiente: è semplice e breve. Tuttavia, quando si lavora con blockchain reali in testnet o ambiente di produzione, sarà necessario utilizzare l’indirizzo corretto della reteche si è scelta.
La tua prima applicazione con Move
Move IDE consente di eseguire script in un ambiente di test. Vediamo come funziona implementando la funzione gimme_five() ed eseguendola all’interno di VSCode.
Crea modulo
Crea un nuovo file chiamato hello_world.move all’interno della directory modules/ del tuo progetto.
modules/hello_world.move
indirizzo 0x1 {
modulo HelloWorld {
divertimento pubblico gimme_five(): u8 {
5
}
}
}
Se hai deciso di utilizzare il tuo indirizzo (non 0x1), assicurati di aver modificato 0x1 in questo file e in quello qui sotto
Scrivi script
Quindi crea uno script, chiamiamolo me.move all’interno della directory scripts/:
scripts/run_hello.move
script {
usa 0x1::HelloWorld;
utilizzare 0x1::Debug;
divertimento principale() {
let five = HelloWorld::gimme_five();
Debug::print(&five);
}
}
Quindi, mantenendo aperto lo script, attenersi alla seguente procedura:
1. Attiva o disattiva la tavolozza dei comandi di VSCode premendo ⌘+ Maiusc + P (su Mac) o Ctrl + Maiusc + P (su Linux / Windows)
2. Digitare: >Move: Esegui script e premi Invio o fai clic quando vedi l’opzione giusta.
Voilà! Dovresti vedere il risultato dell’esecuzione – messaggio di registro con ‘5’ printed nel debug. Se non vedi questa finestra, passa di nuovo attraverso questa parte.
La struttura della directory dovrebbe essere simile alla seguente:
moduli/
hello_world.move
sceneggiature/
run_hello.move
fuori/
. mvconfig.json
Puoi avere tutti i moduli che vuoi nella tua directory dei moduli; tutti saranno accessibili nei tuoi script sotto l’indirizzo che hai specificato in . mvconfig.json