Web Assembly Smart Contract (WASM)
WebAssembly è utilizzato in Substrate come target di compilazione per il runtime.
Perché WebAssembly?
WASM è utilizzato come formato di istruzioni binarie per una macchina virtuale basata su stack. È progettato come target per la compilazione di linguaggi ad alto livello come C/C++/Rust. Ciò consente la distribuzione sul web per applicazioni server e client.
Dal punto di vista tecnico, WASM viene utilizzato come formato binario agnostico dalla piattaforma. Ciò significa che eseguirebbe istruzioni simili su qualsiasi macchina su cui opera. Le blockchain hanno bisogno di determinismo per avere aggiornamenti altamente affidabili dello stato di transizione in tutti i nodi all'interno della rete peer-to-peer (P2P) senza costringere ogni peer a eseguire l'hardware esatto. WASM è molto veloce ed efficiente. L'efficienza illustra che potrebbe essere caricato sulla blockchain come un blocco di codice. Ciò comporta che non causa ingrossamento pur mantenendo la sua capacità di eseguire a velocità quasi native.