Parachain Runtime oraz podział SDK w KILT
Podczas gdy ekosystemy Kusama i Polkadot z niecierpliwością czekają na aukcje parachain, my w KILT Protocol przygotowujemy się do zabezpieczenia jednego z pierwszych slotów parachain Kusama, a następnie do uruchomienia naszej sieci mainnet. Dziś z radością ogłaszamy wydanie mashnet-node KILT 0.24.0 i SDK 0.20.0 jako kolejną fazę naszego rozwoju.
Mashnet-node otrzymał drugie środowisko uruchomieniowe dla parachain i wiele aktualizacji do uruchomienia w Rococo przy użyciu najnowszej wersji Substrate (3.0.0). SDK został wielostronnie ulepszony i zrestrukturyzowany poprzez podzielenie go na kilka oddzielnych pakietów.
Mashnet-node: Czas na parachain
Kolejne aktualizacje naszego blockchain Substrate były wymagane do synchronizacji z oficjalną siecią testową Parachain Rococo . Rococo było wielokrotnie restartowane i zawsze wymagało od nas bycia na “krwawiącej krawędzi” Substratu i Cumulusa.
Oprócz tego dokonaliśmy znacznych ulepszeń w czytelności i strukturze trzech naszych palet KILT: Atestacje, Delegacje i DIDs. Z jednej strony restrukturyzowaliśmy typy danych w łańcuchu, aby były odrębnymi Strukturami zamiast uporządkowanym zestawem danych stanowiący rekord. Z drugiej strony zastąpiliśmy naszą niestandardową paletę błędów, błędami Substratu i poprawiliśmy kolejność ich sprawdzania.
Teraz musisz określić, do jakiego limitu pozwolisz na transakcję do rekurencyjnego sprawdzania delegacji nadrzędnej, dopóki nie będzie ona zgodna z właścicielem delegacji, którą chcesz odwołać. Ponieważ odwołanie delegacji automatycznie odwołuje rekurencyjnie wszystkie jej elementy podrzędne, należy również podać taki limit liczby elementów podrzędnych. Wymagamy obu tych ograniczeń, aby móc poprawnie obliczyć opłaty transakcyjne i wagi..
SDK: Podział!
Po przejściu na Yarn v2 berry zdecydowaliśmy się skorzystać z obsługiwanych obszarów roboczych i podzielić SDK na wiele pakietów, z których przynajmniej niektóre są od siebie niezależne. Umożliwia to konstruktorom wybranie dokładnie tych pakietów, których potrzebują z naszego SDK, gdy chcą na nim zbudować, i zmniejsza narzut (rozmiar pakietu, wymagane zależności itp.) wymagań całego zestawu SDK. Ponadto możemy każdy pakiet osobno.
SDK: Ulepszenia Transakcji
Udostępniliśmy multi-transakcje, które pozwalają na uruchamianie transakcji blockchain sukcesywnie za jednym razem, np. nie musisz czekać na zakończenie jednej transakcji, zanim zlecisz uruchomienie następnej. Odbywa się to poprzez zliczanie następnej wartości jednorazowej po stronie klienta, jeśli to możliwe, i rezygnację z transakcji, jeśli zwrócony błąd z łańcucha jest możliwy do odzyskania.
Ponadto stworzyliśmy wszystkie nasze transakcje w ten sposób aby były jednoznaczne. Podczas gdy przed niejawnym przesłaniem podpisanej transakcji podczas przechowywania zaświadczenia lub CType, cofania zaświadczenia lub dokonywania jakiegokolwiek przelewu, teraz generujesz raczej SubmittableExtrinsic. Po podpisaniu i przesłaniu tego, transakcja jest następnie wykonywana na blockchain.
SDK: Dodaj usługę konfigurowania & popraw połączenie łańcuchowe
W chwili obecnej wprowadziliśmy nową usługę konfiguracyjną, której można użyć do skonfigurowania adresu noda, z którym chcesz się połączyć, i ustawić poziom logowania. W przyszłości będzie to rozszerzane za każdym razem, gdy wprowadzimy nowe konfiguracje.
W rezultacie nie musisz już (a także nie możesz) podawać parametru adresu do funkcji połączenia Kilt.connect (). Zamiast tego skonfigurowany adres zostanie użyty automatycznie.
SDK: Użyj sr25519 jako domyślny typ pary kluczy identyfikacji
Podczas gdy w naszej ostatniej wersji dodaliśmy obsługę podpisów sr25519 i ECDSA, teraz zmieniliśmy domyślny typ pary kluczy tożsamości z ed25519 na sr25519. Podążamy głównie za kierunkiem Polkadot. Inną motywacją było to, że znacznie łatwiej jest utworzyć konto oparte na sr25519 w aplikacjach polkadot.js lub rozszerzeniu przeglądarki polkadot.js. Oczywiście ed25519 jest nadal obsługiwany przez dodanie go jako opcji do kreatora tożsamości.
Ponieważ sr25519 opiera się na funkcjach krypto polkadot.js, które same opierają się na dołączonej bibliotece WASM, musisz poczekać, aż biblioteka krypto będzie gotowa. Dlatego dodaliśmy to oczekiwanie do naszej funkcji inicjalizacyjnej KILT.init ({…}), która łączy funkcjonalność konfiguracyjną KILT.config z asynchronicznym oczekiwaniem, aż biblioteka krypto będzie gotowa.
SDK: Dodaj (de-) kompresję wiadomości
Kolejną dodaną przez nas funkcją, jest możliwość kompresji i dekompresji wiadomości. Można ich używać do komunikacji między zgłaszającymi, atestującymi i weryfikatorami, ważne jest, aby było można je zmniejszyć.
SDK: Switch to JSON-LD based hashing algorithm
Podczas przygotowywania pakietu VC-Export znaleźliśmy potencjalny błąd mogący prowadzić do nadużyć. Błąd polegał na tym, że etykiety k można było ponownie zamówić i nadal prowadziły do tego samego root hash. Zostało to naprawione przez przełączenie się na algorytm JSON-LD oparty na własnościach algorytmu haszującego.
SDK: Usunięcie portablegabi
Na koniec zdecydowaliśmy się usunąć naszą eksperymentalną funkcję anonimowych danych logowania „portablegabi”, którą wprowadziliśmy w naszym ostatnim wydaniu. Głównym powodem jest to, że biblioteka portablegabi obsługuje kryptografię w pliku binarnym Go-Wasm, który może być wywoływany tylko asynchronicznie przez wywołania zwrotne. W rezultacie tworzenie instancji tożsamości i innych funkcji protokołu również musiało być asynchroniczne. Co więcej, plik binarny Go-Wasm powodował problemy podczas używania SDK w aplikacjach takich jak React Native.
To było rozczarowanie nie tylko dla nas, ale także dla innych zespołów, które opierają się na KILT. Już badamy alternatywne rozwiązania i będziemy Cię informować o naszych staraniach, aby wprowadzić anonimowe rozwiązanie dotyczące poświadczeń (które nie będzie portablegabi. Ale nie jest to krytyczna funkcja i dlatego nie będzie częścią uruchomienia candidate . Na razie skupiamy się na uruchomieniu łańcucha KILT z bezpiecznym kodem i łatwym w użyciu SDK.
Perspektywy
- Znacząco poprawiona dokumentacja, zgromadzona w jednym miejscu: https://dev.kilt.io
- Przygotować uwolnienia Candidates do uruchomienia łańcucha
- Wykonać audyty bezpieczeństwa dla mashnet-nod i SDK
- Nodł Mashnet: Dodaj governance i staking
- SDK: poprawić wykorzystanie i zgodność KILT z DIDs i VCs
Podsumowanie w skrócie
- Zaktualizowano Mashnet nod z Substrate 2.0.0-rc5 do 3.0.0 (informacje o wersji):
- Dodano osobny runtime parachain
- Dodano odpowiednie testy porównawcze
- Ulepszone sprawdzanie rekursji dla Delegacji
- Uproszczono sposób uruchamiania noda
- Uporządkowana, zaktualizowana i ulepszona dokumentacja
SDK został podzielony na wiele oddzielnych pakietów (informacje o wersji):
- Przejście na yarn v2 berry
- Ulepszona obsługa transakcji, połączenie blockchain i logowanie
- Zmieniono domyślny typ klucza konta na sr25519 z ed25519
- Naprawiono potencjalny exploit haszowania przy użyciu algorytmu JSON-LD opartego na własnościach algorytmu haszującego.
- Usunięto eksperymentalną funkcję anonimowego przenoszenia danych uwierzytelniających
- Dodano kompresję i dekompresję wiadomości
Artykuł w oryginalnej wersji dostepny pod tym linkiem:
https://kilt-protocol.medium.com/parachain-runtime-and-sdk-split-up-in-kilt-c0cd1336d486
Tłumaczenie wykonane przez członka Elevate Community Ventures — BartVan
Kilt Protocol — linki
- Website (https://www.kilt.io/
- KILT Announcements Channel (https://t.me/KiltProtocol)
- KILT Community Chat (https://t.me/kiltprotocolchat)
- KILT Twitter (https://twitter.com/Kiltprotocol)
- KILT Linkedin (https://www.linkedin.com/company/kilt-protocol/)
- KILT Medium (https://kilt-protocol.medium.com/)
- KILT Youtube (https://www.youtube.com/channel/UC5ihHD8UyGGx0oLZt78429w)
- KILT Riot.IM (https://riot.im/app/#/group/+kilt-community:matrix.org)
- White Paper (https://www.kilt.io/wp-content/uploads/2020/01/KILT-White-Paper-v2020-Jan-15.pdf)
- Github (https://github.com/KILTprotocol)