1. TypeScript-basierte Syntax
• Vertrautheit: Compact verwendet eine Syntax, die TypeScript ähnlich ist, was Millionen von Web2-Entwicklern ermöglicht, ohne die Notwendigkeit, eine völlig neue Sprache zu lernen, in die Web3-Entwicklung zu wechseln.
• Statisch typisiertes System: Jeder Ausdruck in Compact wird zur Compile-Zeit typüberprüft. Dies hilft bei der frühzeitigen Fehlersuche und stellt die sichere Wartung von großangelegten Verträgen sicher.
2. Zero-Knowledge-Compiler
• ZK-Automatisierung: Der Compact-Compiler generiert nicht nur ausführbaren Code, sondern gibt auch Zero-Knowledge-Schaltungen aus. Diese Schaltungen werden verwendet, um die Gültigkeit von Ledger-Interaktionen zu beweisen, ohne Rohdaten offenzulegen.
• Trennung von Zuständen: Die Sprache unterstützt eine Dual-Ledger-Architektur, die es Entwicklern ermöglicht, klar zu definieren, welche Daten privat bleiben und welche öffentlich aufgezeichnet werden.
3. Kernkomponenten eines Compact-Vertrags
Ein in Compact geschriebener Smart Contract besteht typischerweise aus drei strukturellen Teilen:
• Schaltungen: Funktionen, die Berechnungen durchführen und Beweise für die On-Chain-Verifizierung generieren.
• Zeugen: JavaScript/TypeScript-Funktionen, die auf der Seite des Benutzers mit Zugriff auf private Daten ausgeführt werden. Ihre Ergebnisse werden nur dann in die Kette übernommen, wenn der Entwickler ausdrücklich die Offenlegung anfordert.
• Ledger-Zustand: Der öffentliche Datenanteil, der direkt auf der Midnight-Blockchain gespeichert ist.
4. Funktionen der funktionalen Programmierung
• Compact unterstützt Konzepte wie reine Funktionen und unveränderliche Datenstrukturen. Dieser Ansatz macht den Quellcode modular, leicht testbar und minimiert logische Fehler, die durch unbeabsichtigte Zustandsänderungen entstehen.
5. Entwicklungstoolchain
Das Compact-Ökosystem bietet eine umfassende Suite von Werkzeugen zur Unterstützung professioneller Entwicklungsabläufe:
• Compact Compiler: Übersetzt Quellcode in ZK-Schaltungen und JavaScript-Ausführungscode.
• Compact.js & Midnight.js: Bibliotheken, die die Integration von Compact-Smart Contracts in standardmäßige Webanwendungen erleichtern.
• Compact Devtools: Eine Befehlszeilenoberfläche zur Versionsverwaltung, Codeformatierung und Installation von Compiler-Toolsets.
@MidnightNetwork #MidnightNetwork #night $NIGHT #DUST #CompactLang #Cardano
