Costruire su blockchain è sempre stato complicato. Devi imparare un modo di pensare con le eccentricità di Solidity, gestire i limiti di gas e strani errori oppure trascorrere molto tempo a capire le prove a conoscenza zero. Midnight Network voleva rendere più facile per gli sviluppatori costruire applicazioni produttive. Ecco perché hanno creato Compact, un linguaggio che sembra e si sente come TypeScript.

Compact è il linguaggio dei contratti smart per la blockchain Midnight. Il suo nome deriva dal significato di "compatto" come un accordo vincolante. Un contratto smart dovrebbe essere regole applicabili di cui tutti possono fidarsi. Compact ti incontra dove sei già con una sintassi che sembra comoda se hai scritto TypeScript o JavaScript moderno.
Le variabili sono fortemente tipizzate
Il compilatore cattura errori prima di distribuire qualsiasi cosa
I messaggi di errore hanno senso
Non devi essere un esperto di crittografia per usare Compatto. Il linguaggio nasconde gran parte di quella complessità così puoi concentrarti su ciò che l'applicazione dovrebbe fare.
Un contratto Compatto ha quattro parti:
Dichiarazioni di tipo. Le tue forme di dati personalizzate
Dichiarazioni di libro mastro. Lo stato che tutti possono vedere
Dichiarazioni di testimoni. Funzioni di aiuto
Definizioni di circuito. La vera logica che viene trasformata in prove a conoscenza zero

Lo stato pubblico supporta tipi di raccolta pratici, come contatori, insiemi, mappe e liste. Midnight ti offre una scorciatoia per incrementare un contatore, come `counter += 1`.
I circuiti sono dove avviene la magia. Quando scrivi un circuito esportato, il compilatore Compatto lo trasforma in un circuito a conoscenza zero. Chiunque può verificare che le regole siano state seguite senza vedere gli input.
Midnight ha una libreria che copre cose comuni come tipi Maybe e Either, indirizzi utente e firme a curva ellittica. Quando compili un contratto Compatto ottieni:
Circuiti a conoscenza zero per ogni funzione esportata
Un'implementazione JavaScript per simulazioni e test unitari
File di dichiarazione TypeScript (.d.ts) per codice di tipo
L'esempio classico del contratto contatore è un buon punto di partenza. Dichiari un contatore, scrivi un circuito per incrementarlo e compilarlo. Hai un modo privato per aumentare un numero, on-chain.
Ciò che spicca nel Compatto è il carico mentale che aggiunge. Ti concentri sulle regole aziendali, sull'esperienza dell'utente e sulla logica dell'applicazione. Il forte typing cattura i bug in anticipo. La sintassi familiare rende facile l'uso.

Midnight ha costruito Compatto perché crede che i contratti intelligenti privati non debbano essere complicati. Dovrebbero sembrare scrivere codice. Pulito, sicuro e prevedibile. Mentre sbloccano comunque funzionalità potenti. Compatto è un modo semplice per scrivere codice che si legge naturalmente, compilarlo e lasciare che la blockchain gestisca la parte di fiducia e privacy.