Construirea pe blockchains a fost întotdeauna complicată. Trebuie să înveți o modalitate de gândire cu ciudățeniile Solidity care se ocupă de limitele de gaz și erori ciudate sau să petreci mult timp încercând să înțelegi dovezile cu cunoștințe zero. Midnight Network a dorit să facă mai ușor pentru dezvoltatori să construiască aplicații productive. De aceea au creat Compact, un limbaj care arată și se simte ca TypeScript.

Compact este limbajul de contracte inteligente pentru blockchain-ul Midnight. Numele său provine din semnificația cuvântului "compact" ca un acord obligatoriu. Un contract inteligent ar trebui să fie reguli aplicabile în care toată lumea poate avea încredere. Compact te întâlnește unde ești deja cu o sintaxă care se simte confortabil dacă ai scris TypeScript sau JavaScript modern.
Variabilele sunt tipizate puternic
Compilatorul prinde greșelile înainte să desfășori ceva
Mesajele de eroare au sens
Nu trebuie să fii expert în criptografie pentru a folosi Compact. Limbajul ascunde cea mai mare parte a acelei complexități astfel încât să te poți concentra pe ceea ce ar trebui să facă aplicația.
Un contract Compact are patru piese:
Declarații de tip. Formele tale de date personalizate
Declarații de carte de registre. Starea pe care o poate vedea toată lumea
Declarații de martori. Funcții de ajutor
Definiții de circuite. Logica reală care se transformă în dovezi cu zero cunoștințe

Starea publică susține tipuri de colecție practice, cum ar fi contoare, seturi, hărți și liste. Midnight îți oferă o notare pentru a incrementa un contor, cum ar fi `counter += 1`.
Circuitele sunt locul unde se întâmplă magia. Atunci când scrii un circuit exportat, compilatorul Compact îl transformă într-un circuit cu zero cunoștințe. Oricine poate verifica că regulile au fost respectate fără a vedea intrările.
Midnight are o bibliotecă care acoperă lucruri comune cum ar fi tipurile Maybe și Either, adresele utilizatorilor și semnăturile pe curbă eliptică. Când compilezi un contract Compact, obții:
Circuite cu zero cunoștințe pentru fiecare funcție exportată
O implementare JavaScript pentru simulare și teste unitare
Fișiere de declarație TypeScript (.d.ts) pentru cod de tip
Exemplul clasic de contract pentru contor este un punct de plecare bun. Declari un contor, scrii un circuit pentru a-l incrementa, compilezi. Ai o modalitate privată de a crește un număr, pe lanț.
Ceea ce iese în evidență la Compact este cât de multă muncă mentală adaugă. Te concentrezi pe regulile de afaceri, experiența utilizatorului și logica aplicației. Tipizarea puternică prinde erorile devreme. Sintaxa familiară o face ușor de folosit.

Midnight a construit Compact pentru că ei cred că contractele inteligente private nu ar trebui să fie complicate. Ar trebui să se simtă ca scrierea de cod. Curat, sigur și previzibil. În timp ce deblochează în continuare funcții puternice. Compact este o modalitate simplă de a scrie cod care se citește natural, compilează-l și lasă blockchain-ul să se ocupe de partea de încredere și confidențialitate.