Вышел Wasmd 0.30
Выпуск в конце года!
2022 год был полон событий во многих отношениях, как хороших, так и плохих, так почему бы не закончить его отличным релизом Wasmd?
У нас было большое количество запросов от сообщества на рассмотрение и расстановку приоритетов, и мы рады сообщить, что с Wasmd v0.30 нам удалось получить многие из них в этом выпуске на конец года.
Как обычно, большое спасибо всем участникам, которые сделали этот релиз возможным!
Обзор (TLDR)
Wasmd v0.30 содержал довольно много изменений, запрошенных сообществом, помимо обычных исправлений ошибок и улучшений, мы также добавили следующее:
- Интеграция модуля аутентификации
- Обновление IBC до версии 4.2.0 с межсетевыми счетами версии 0.2.4
- Добавить руководство разработчика и рекомендации
- Увеличить минимум Go до 1,19
- Сохранение и создание экземпляра предложения правительства
- Разрешить голосование правительству за загрузку большего байт-кода wasm
- Представляем AcceptListStargateQuerier
- Получить контракты по адресу создателя
- Разрешение на создание экземпляра поддержки> разрешение цепочки для магазина gov
Интеграция модуля аутентификации
Модуль authz — это модуль Cosmos-SDK для предоставления авторизации другой учетной записи (получателя) и выполнения действий в цепочке от имени исходной учетной записи (предоставителя).
Это особенно полезно для защиты ключа личной учетной записи, поскольку он необходим только для операции предоставления, но затем можно использовать ключ получателя. Это также может быть полезно для согласования организационной или процессной структуры, где доступ к закрытому ключу лица, предоставляющего право, ограничен.
Предоставленное разрешение имеет большую силу, поскольку оно выполняется с учетной записью лица, предоставляющего. Поэтому в других модулях существуют определенные расширения авторизации, которые ограничивают объем действий. Например, в банке. Авторизация, общее количество токенов, которое может быть передано.
Модуль authz поставляется с универсальной авторизацией, которая принимает тип сообщения. Это работает с любым модулем Cosmos, включая wasmd. Проблема заключается в том, что контракты wasm обычно поддерживают ряд операций, и детальное управление доступом невозможно.
Расширение авторизации wasmd было создано для поддержки более тонкого контроля доступа. Фильтры могут быть определены для соответствия сообщению контракта при выполнении и переносе. Wasmd входит в первую итерацию со следующими фильтрами:
AllowAllMessagesFilter — подстановочный знак для соответствия любому сообщению контракта .
AcceptedMessageKeysFilter — контрактные сообщения интерпретируются как объект json с ровно одним ключом. Этот ключ может быть установлен в списке принятия, чтобы быть принятым. Например, если задано значение `снять, делегировать`, сообщения `{“изъять”: {}}` и `{“делегат”:{}}` разрешены, а `{“отправлено”:{}}` – нет. ключа нет в списке.
AcceptedMessagesFilter — этот фильтр не делает предположений о сообщении контракта. Они интерпретируются как чистые двоичные данные и сравниваются. Небольшие изменения в форматировании уже имеют значение. Например, при {"withdraw":{}}установленном контракте сообщение должно быть в {"withdraw":{}}то время как {"withdraw":{} }будет отклонено (обратите внимание на пробелы).
Однако преимущество этого фильтра в том, что он также содержит данные после ключа объекта. Например, {"vote":"yes"}нельзя изменить на{"vote":"no"}
Еще одним элементом расширения авторизации wasmd являются лимиты. Поскольку операция выполняется в рамках учетной записи грантодателя, он имеет полный доступ к своим банковским балансам. Грантер имеет некоторый интерес в ограничении этого и сохранении контроля. Например, операции {"снятие":{}} может не требоваться доступ к балансу, в то время как {"делегату":{}} он нужен. Для поддержки различных вариантов использования у нас есть следующие ограничения, которые можно установить с помощью фильтров:
MaxCallsLimit — определяет, сколько раз можно использовать грант контракта, передача токена из учетной записи грантодателя запрещена.
MaxFundsLimit — задает бюджет токена, который будет потрачен, без ограничений по количеству вызовов.
CombinedLimit — устанавливает бюджет токена и количество выполнений, которые можно выполнить.
Ограничения обновляются после каждого выполнения гранта. Когда лимит истекает, авторизация заканчивается и удаляется.
Дальнейшее чтение:
https://github.com/cosmos/cosmos-sdk/tree/main/x/authz
Обновление IBC до версии 4.2.0 с межсетевыми счетами версии 0.2.4
Это обновление включает рукопожатие протокола IBC и модуль промежуточного программного обеспечения платы, interchain-accounts v0.2.4, а также обновляет пакет ibctesting.
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/960
https://github.com/cosmos/ibc-go/blob/v4.2.0/CHANGELOG.md
Добавьте руководство разработчика и рекомендации.
Руководство по кодированию было обновлено, чтобы новичкам, а также более опытным разработчикам было легче найти и сориентироваться. Также были добавлены лучшие практики, а новое и обновленное руководство можно найти здесь:
Увеличить минимум Go до 1,19
Чтобы следовать Cosmos-SDK, минимальная версия Go была увеличена до 1.19, что также предотвращает проблемы с консенсусом в смешанной цепочке Go 1.18/19.
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/1041
Сохранение и создание экземпляра предложения правительства
В более ранних версиях для загрузки wasm (магазина) и создания экземпляра контракта требовалось 2 отдельных предложения правительства.
Теперь есть новый тип предложения правительства, который позволяет выполнять оба шага как один.
Так что теперь у нас меньше организационных накладных расходов и зависимости от создания предложений. (Поскольку хранилище должно было быть запланировано и выполнено до создания экземпляра)
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/785
Разрешить голосование правительствам за загрузку большего байт-кода wasm.
Раньше мы ограничивали размер wasm до 800 КБ, что было разумно для большинства контрактов, так как было бы нежелательно повышать глобальный лимит цепочки; было предложено, чтобы правительственные контракты могли выполнять эту функцию и разрешать размер wasm до 4 МБ, в то время как обычный Tx остается на уровне 800 КБ.
Дальнейшее чтение:
Внедрение списка принятия Звездных врат
Запросы Stargate — это мощная общая точка расширения для запроса состояния системы через общий формат protobuf «Stargate». С помощью этой цепочки независимые данные могут быть запрошены контрактом, как пул ликвидности.
Эта функция вызывала много проблем в прошлом, когда возвращаемое состояние не было детерминированным и, следовательно, нарушало консенсус. Мы добавили этот список принятия, чтобы позволить каждой цепочке легко настроить свой собственный белый список без поддержки множества форков и потенциального появления ошибок. Osmosis разветвился, чтобы включить это для своих пользовательских модулей, и другие сети хотели иметь аналогичную функциональность.
Тем не менее, список принятия — это способ для архитекторов цепей добавить обратную поддержку для отдельных запросов Звездных врат, которые они хотят поддерживать и поддерживать (на свой страх и риск). Теперь список принятия по умолчанию пуст, и вам нужно установить переменную в коде Go цепочки, чтобы добавить любые типы запросов, которые вы хотите включить.
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/904
Получить контракты по адресу создателя
В более ранних версиях у нас был запрос на получение всех экземпляров контракта для идентификатора кода. Популярным вариантом использования является предоставление мне всех экземпляров контракта, которые были созданы по адресу x.
В этом выпуске это теперь поддерживается и обеспечивает лучший UX.
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/998
Разрешение на создание экземпляра поддержки> разрешение цепочки для магазина gov
Это также касается создания экземпляра в разрешенных цепочках.
В более ранних версиях требовался код store wasm и обновление конфигурации для параметров инстанцирования кода; теперь, с этим выпуском, предложение store gov уже может установить правильное разрешение на создание экземпляра.
Это улучшает рабочий процесс правительства и экономит одно предложение
Дальнейшее чтение:
https://github.com/CosmWasm/wasmd/issues/1020
Втягиваться
Как то, что вы видите? Сообщите миру об этом в Твиттере или присоединитесь к обсуждению в Discord. И не забудьте подписаться на нас в среде, чтобы быть в курсе предстоящих когорт CosmWasm Academy, или посетитьhttp://academy.cosmwasm.com, где вы можете повысить уровень своих навыков.
И, пожалуйста, ознакомьтесь с нашей последней телеконференцией сообщества в этом году, где во вторник, 20 декабря, в 18:00 по центральноевропейскому времени будет сделано много интересных объявлений, чтобы получить более раннюю информацию и задать вопросы.
Повестка дня: https://github.com/CosmWasm/cosmwasm/issues/1548

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































