1. Sintassi basata su TypeScript
• Familiarità: Compact utilizza una sintassi simile a TypeScript, consentendo a milioni di sviluppatori Web2 di passare allo sviluppo Web3 senza la necessità di imparare un linguaggio completamente nuovo.
• Sistema Tipizzato Statically: Ogni espressione in Compact viene controllata per tipo al momento della compilazione. Questo aiuta nella rilevazione precoce degli errori e garantisce la manutenzione sicura di contratti su larga scala.
2. Compilatore Zero-Knowledge
• Automazione ZK: Il compilatore Compact non solo genera codice eseguibile ma produce anche circuiti Zero-Knowledge. Questi circuiti vengono utilizzati per dimostrare la validità delle interazioni con il libro mastro senza rivelare dati grezzi.
• Separazione dello stato: Il linguaggio supporta un'architettura a libro mastro duale, consentendo agli sviluppatori di definire chiaramente quali dati rimangono privati e quali vengono registrati pubblicamente.
3. Componenti principali di un contratto Compact
Un contratto intelligente scritto in Compact consiste tipicamente di tre parti strutturali:
• Circuiti: Funzioni che eseguono calcoli e generano prove per la verifica on-chain.
• Testimoni: Funzioni JavaScript/TypeScript che vengono eseguite sul lato dell'utente con accesso ai dati privati. I loro risultati vengono registrati nella catena solo quando lo sviluppatore richiede esplicitamente la divulgazione.
• Stato del libro mastro: La porzione di dati pubblici memorizzata direttamente sulla blockchain Midnight.
4. Caratteristiche della programmazione funzionale
• Compact supporta concetti come funzioni pure e strutture dati immutabili. Questo approccio rende il codice sorgente modulare, facile da testare e minimizza gli errori logici derivanti da cambiamenti di stato non intenzionali.
5. Strumenti di sviluppo
L'ecosistema Compact offre una suite completa di strumenti per supportare i flussi di lavoro di sviluppo professionale:
• Compilatore Compact: Traduce il codice sorgente in circuiti ZK e codice di esecuzione JavaScript.
• Compact.js & Midnight.js: Librerie che facilitano l'integrazione di contratti intelligenti Compact nelle applicazioni web standard.
• Compact Devtools: Un'interfaccia della riga di comando per la gestione delle versioni, la formattazione del codice e l'installazione del set di strumenti del compilatore.
@MidnightNetwork #MidnightNetwork #night $NIGHT #DUST #CompactLang #Cardano
