Wydano Wasmd 0.30
Wydanie na koniec roku!
To był pełen wydarzeń rok 2022 pod wieloma względami, zarówno dobry, jak i zły, więc dlaczego nie zakończyć go wspaniałym wydaniem Wasmd?
Otrzymaliśmy dużą liczbę próśb społeczności o funkcje do przejrzenia i ustalenia priorytetów, i z przyjemnością ogłaszamy, że dzięki Wasmd v0.30 udało nam się uzyskać wiele z nich w tej wersji na koniec roku.
Jak zwykle wielkie podziękowania dla wszystkich współpracowników, dzięki którym to wydanie było możliwe!
Przegląd (TLDR)
Wersja 0.30 Wasmd zawierała sporo zmian, o które prosiła społeczność, poza zwykłymi poprawkami błędów i ulepszeniami, wysłaliśmy również:
- Integracja modułu uwierzytelniania
- Aktualizacja IBC do wersji 4.2.0 z kontami międzyłańcuchowymi w wersji 0.2.4
- Dodaj przewodnik dla programistów i najlepsze praktyki
- Podbij Go minimum do 1,19
- Przechowuj i twórz instancje rządowej propozycji
- Zezwól głosom rządowym na przesyłanie większego kodu bajtowego wasm
- Przedstaw AcceptListStargateQuerier
- Uzyskaj kontrakty według adresu twórcy
- Wsparcie tworzenia instancji > zezwolenie na łańcuch dla sklepu gov
Integracja modułu uwierzytelniania
Moduł authz to moduł Cosmos-SDK służący do nadawania autoryzacji do innego konta (odbiorcy) i wykonywania działań w łańcuchu w imieniu pierwotnego konta (nadawcy).
Jest to szczególnie przydatne do ochrony klucza konta prywatnego, ponieważ jest on potrzebny tylko do operacji przyznania, ale wtedy można użyć klucza odbiorcy. Może to być również pomocne przy dopasowywaniu struktur organizacyjnych lub procesowych, w których dostęp do klucza prywatnego podmiotu przyznającego jest ograniczony.
Udzielone upoważnienie ma dużą moc, ponieważ jest wykonywane na rachunek udzielającego. Dlatego w innych modułach istnieją pewne rozszerzenia authz, które ograniczają zakres działań. Na przykład w banku. Autoryzacja, czyli całkowita ilość tokenów, jest zdefiniowana, jaka może zostać przekazana.
Moduł authz jest dostarczany z ogólną autoryzacją, która akceptuje typ komunikatu. Działa to z dowolnym modułem Cosmos, w tym wasmd. Problem polega na tym, że kontrakty wasm zwykle obsługują wiele operacji, a precyzyjna kontrola dostępu nie byłaby możliwa.
Rozszerzenie autoryzacji wasmd zostało zbudowane w celu obsługi dokładniejszego poziomu kontroli dostępu. Filtry można zdefiniować tak, aby pasowały do komunikatu kontraktu dotyczącego wykonania i migracji. Wasmd pojawia się w pierwszej iteracji z następującymi filtrami:
AllowAllMessagesFilter — symbol wieloznaczny pasujący do dowolnej wiadomości kontraktowej
AcceptedMessageKeysFilter — komunikaty umowy są interpretowane jako obiekt json z dokładnie jednym kluczem. Ten klucz można ustawić na liście akceptacji, aby został zaakceptowany. Na przykład, przy ustawionym ` wycofaj, deleguj` wiadomości `{„wycofaj”: {}}` i `{„deleguj”:{}}` są dozwolone, ale `{„wysłane”:{}}` nie jest tak klucza nie ma na liście.
AcceptedMessagesFilter — ten filtr nie przyjmuje założeń dotyczących komunikatu kontraktu. Są one interpretowane jako czyste dane binarne i porównywane. Małe zmiany w formatowaniu już mają znaczenie. Np. przy {"withdraw":{}}ustawionej umowie wiadomość musi być {"withdraw":{}}while {"withdraw":{} }zostałaby odrzucona (zwróć uwagę na spacje).
Zaletą tego filtra jest jednak to, że zawiera on również dane po kluczu obiektu. Na przykład {"vote":"yes"}nie można zmienić na{"vote":"no"}
Kolejnym elementem rozszerzenia wasmd Authorization są limity. Ponieważ operacja jest wykonywana w ramach rachunku grantodawcy, ma on pełny dostęp do jego sald bankowych. Przyznający ma pewien interes w ograniczeniu tego i utrzymaniu kontroli. Na przykład operacja {„wycofanie”:{}} może nie wymagać dostępu do salda, podczas gdy operacja {„delegate”:{}} tak. Aby obsłużyć różne przypadki użycia, mamy następujące limity, które można ustawić za pomocą filtrów:
MaxCallsLimit — określ, ile razy można wykorzystać grant kontraktowy, nie jest dozwolony transfer tokenów z konta grantodawcy.
MaxFundsLimit — ustawia budżet tokena do wydania, bez limitu liczby połączeń.
CombinedLimit — ustawia budżet tokena i liczbę egzekucji, które można wykonać
Limity są aktualizowane po każdym wykonaniu grantu. Po wygaśnięciu limitu autoryzacja wygasa i zostaje usunięta.
Dalsza lektura:
https://github.com/cosmos/cosmos-sdk/tree/main/x/authz
Aktualizacja IBC do wersji 4.2.0 z kontami międzyłańcuchowymi w wersji 0.2.4
Ta aktualizacja obejmuje uzgadnianie protokołu IBC i moduł oprogramowania pośredniczącego opłaty, konta międzyłańcuchowe v0.2.4, a także aktualizuje pakiet ibctesting.
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/960
https://github.com/cosmos/ibc-go/blob/v4.2.0/CHANGELOG.md
Dodaj przewodnik dla programistów i najlepsze praktyki.
Wytyczne dotyczące kodowania zostały zaktualizowane, aby ułatwić zarówno nowicjuszom, jak i bardziej doświadczonym programistom znalezienie i zorientowanie się. Dodano również najlepsze praktyki, a nowy i zaktualizowany przewodnik można znaleźć tutaj:
Podbij Go minimum do 1,19
Aby podążać za cosmos-SDK, minimalna wersja Go została podniesiona do 1.19, co również zapobiega problemom z konsensusem w mieszanym łańcuchu Go 1.18/19.
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/1041
Przechowuj i twórz instancje rządowej propozycji
We wcześniejszych wersjach przesyłanie wasm (przechowywanie) i tworzenie instancji kontraktu wymagało 2 oddzielnych propozycji rządowych.
Teraz dostępny jest nowy typ wniosku rządowego, który umożliwia wykonanie obu kroków jako jednego.
Więc teraz mamy mniej kosztów organizacyjnych i zależność od tworzenia propozycji. (Ponieważ sklep musiał zostać zaplanowany i wykonany przed utworzeniem instancji)
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/785
Zezwól głosom rządowym na przesyłanie większego kodu bajtowego wasm.
Kiedyś ograniczaliśmy rozmiar wasma do 800 KB, co było rozsądne w przypadku większości umów, ponieważ zwiększenie globalnego limitu łańcucha mogłoby być niepożądane; zaproponowano, aby kontrakty rządowe mogły pełnić tę funkcję i zezwalać na rozmiar wasm do 4 MB w tym samym czasie, gdy normalny Tx pozostaje na poziomie 800 KB.
Dalsza lektura:
Przedstaw listę akceptacji Stargate Querier
Zapytania Gwiezdnych Wrót są potężnym ogólnym punktem rozszerzenia zapytań o stan systemu za pośrednictwem ogólnego formatu protobuf „Gwiezdne wrota”. Dzięki temu łańcuchowi dane agnostyczne mogą być wyszukiwane na podstawie umowy, podobnie jak pula płynności.
Ta funkcja powodowała wiele problemów w przeszłości, gdy zwracany stan nie był deterministyczny, a zatem łamał konsensus. Dodaliśmy tę listę akceptacji, aby umożliwić każdej sieci łatwe skonfigurowanie własnej białej listy bez utrzymywania wielu rozwidleń i potencjalnego wprowadzania błędów. Osmosis rozwidlił się, aby umożliwić to swoim niestandardowym modułom, a inne sieci chciały podobnej funkcjonalności.
Lista akceptacji jest jednak sposobem, w jaki architekci sieci mogą dodać wsparcie dla poszczególnych zapytań Gwiezdnych Wrót, które chcą utrzymywać i wspierać (na własne ryzyko). Teraz domyślna lista akceptacji jest pusta i musisz ustawić zmienną w kodzie Go łańcucha, aby dodać dowolne typy zapytań, które chcesz włączyć.
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/904
Uzyskaj kontrakty według adresu twórcy
We wcześniejszych wersjach mieliśmy zapytanie, aby uzyskać wszystkie wystąpienia kontraktu dla identyfikatora kodu. Popularnym przypadkiem użycia jest przekazanie mi wszystkich instancji kontraktów, które zostały utworzone przez adres x.
Od tej wersji jest to obsługiwane i zapewnia lepszy interfejs użytkownika
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/998
Wsparcie tworzenia instancji > zezwolenie na łańcuch dla sklepu gov
Dotyczy to również tworzenia instancji w łańcuchach z uprawnieniami.
We wcześniejszych wersjach potrzebny był kod sklepu i aktualizacja konfiguracji w ustawieniach tworzenia instancji kodu; teraz, dzięki tej wersji, propozycja rządu sklepu może już ustawić odpowiednie uprawnienia do tworzenia instancji.
Poprawia to przepływ pracy administracji rządowej i oszczędza jedną propozycję
Dalsza lektura:
https://github.com/CosmWasm/wasmd/issues/1020
Zaangażować się
Lubisz co widzisz? Daj znać światu na Twitterze lub dołącz do dyskusji na Discordzie. I pamiętaj, aby śledzić nas na medium, aby otrzymywać informacje o nadchodzących kohortach Akademii CosmWasm lub odwiedzićhttp://academy.cosmwasm.com, gdzie możesz podnieść swoje umiejętności.
Sprawdź też naszą ostatnią rozmowę społeczności w roku, podczas której we wtorek, 20 grudnia o godzinie 18:00 czasu środkowoeuropejskiego, zostanie ogłoszonych wiele ekscytujących ogłoszeń, aby uzyskać więcej informacji i możliwość zadawania pytań.
Porządek obrad: https://github.com/CosmWasm/cosmwasm/issues/1548

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































