Budowanie na blockchainach zawsze było trudne. Musisz nauczyć się sposobu myślenia z dziwactwami Solidity, radzić sobie z limitami gazu i dziwnymi błędami lub spędzić dużo czasu na ustalaniu dowodów zerowej wiedzy. Sieć Midnight chciała ułatwić programistom tworzenie produktywnych aplikacji. Dlatego stworzyli Compact, język, który wygląda i czuje się jak TypeScript.

Compact to język smart kontraktów dla blockchaina Midnight. Jego nazwa pochodzi od znaczenia "compact" jako wiążącej umowy. Smart kontrakt ma być egzekwowalnymi zasadami, którym wszyscy mogą ufać. Compact spotyka cię tam, gdzie już jesteś, z składnią, która wydaje się komfortowa, jeśli pisałeś TypeScript lub nowoczesny JavaScript.
Zmienne są silnie typowane
Kompilator wychwytuje błędy zanim wdrożysz cokolwiek
Komunikaty o błędach mają sens
Nie musisz być ekspertem w kryptografii, aby korzystać z Kompakt. Język ukrywa większość tej złożoności, abyś mógł skupić się na tym, co aplikacja powinna robić.
Kompaktowy kontrakt ma cztery części:
Deklaracje typów. Twoje niestandardowe kształty danych
Deklaracje księgi. Stan, który każdy może zobaczyć
Deklaracje świadków. Funkcje pomocnicze
Definicje obwodów. Prawdziwa logika, która jest przekształcana w dowody zerowej wiedzy

Publiczny stan wspiera praktyczne typy kolekcji, takie jak liczniki, zbiory, mapy i listy. Midnight daje ci skrót do inkrementacji licznika, jak `counter += 1`.
Obwody to miejsce, gdzie dzieje się magia. Kiedy piszesz eksportowany obwód, kompilator Kompakt przekształca go w obwód z zerową wiedzą. Każdy może zweryfikować, że zasady były przestrzegane bez widzenia wejść.
Midnight ma bibliotekę, która obejmuje wspólne elementy takie jak typy Maybe i Either, adresy użytkowników i podpisy krzywej eliptycznej. Kiedy kompilujesz kontrakt Kompakt, otrzymujesz:
Obwody zerowej wiedzy dla każdej eksportowanej funkcji
Implementacja JavaScript dla symulacji i testów jednostkowych
Pliki deklaracyjne TypeScript (.d.ts) dla kodu typowego
Klasyczny przykład kontraktu licznika to dobry punkt wyjścia. Deklarujesz licznik, piszesz obwód do jego inkrementacji, kompilujesz. Masz prywatny sposób na zwiększenie liczby, w łańcuchu.
To, co wyróżnia Kompakt, to jaką mentalną złożoność dodaje. Skupiasz się na zasadach biznesowych, doświadczeniu użytkownika i logice aplikacji. Silne typowanie wychwytuje błędy wcześnie. Znajoma składnia sprawia, że łatwo jest z niej korzystać.

Midnight zbudowało Kompakt, ponieważ wierzą, że prywatne inteligentne kontrakty nie powinny być skomplikowane. Powinny przypominać pisanie kodu. Czyste, bezpieczne i przewidywalne. Wciąż odblokowując potężne funkcje. Kompakt to prosty sposób na pisanie kodu, który naturalnie się czyta, kompiluje i pozwala blockchainowi zająć się zaufaniem i prywatnością.