MMS

На первых двух сеансах проверки кода участник Mars @larry0x рассмотрел контракты Airdrop и Vesting. В этих руководствах основное внимание уделялось разработке смарт-контрактов CosmWasm. Третья и четвертая сессии будут посвящены Cosmos SDK и самой цепочке приложений. В частности, эти сессии охватывают модули «Фонд безопасности» и «Управление».

Эта статья послужит кратким введением в оба модуля. Для более подробного анализа кода ознакомьтесь с записями:

Введение в модуль Фонда безопасности

Cosmos SDK состоит из компонуемых модулей, которые вместе можно использовать для создания блокчейнов для конкретных приложений. Например, модуль аутентификации хранит учетные записи, модуль банка хранит балансы, а модуль CosmWasm позволяет разрабатывать смарт-контракты. Любой может создавать и добавлять новые модули в SDK, а интегрировать существующий модуль в вашу цепочку блоков так же просто, как импортировать его.

Под репозиторием github Mars Hub есть папка «x». Здесь размещаются пользовательские модули для Mars Hub. На данный момент вы должны увидеть: «gov», «incentives» и «safetyfund».

Модуль фонда безопасности — это самый простой модуль в приложении Mars Hub, что делает его отличным местом для начала. В настоящее время фонд безопасности представляет собой просто модульный счет, на котором хранятся средства, которые можно потратить после успешного предложения по управлению. Вот и все. Вот идея, стоящая за этим:

Когда пользователь «одалживает» активы у Mars Outpost, он платит «процентную» комиссию. 80% этих сборов идут вкладчикам. Остальные 20% распределяются между казначейством, Фондом безопасности и участниками MARS. Для Фонда безопасности сборы конвертируются в стейблкоин.

В случае дефицита, который происходит всякий раз, когда стоимость долга заемщика превышает стоимость его залога (что приводит к дефициту для кредиторов, известному как «безнадежный долг»), руководство может использовать страховой фонд для защиты кредиторов. Это отличается от события неликвидности, когда уровень использования составляет 100%, и кредиторы не могут снять средства. В последнем случае LP неликвидны, но платежеспособны, тогда как в случае дефицита LP фактически неплатежеспособны.

События дефицита могут быть вызваны различными рисками, такими как использование смарт-контрактов, несвоевременная ликвидация и/или атаки оракулов. Чтобы было ясно, они никогда не должны происходить в нормальных условиях и могут быть смягчены с помощью хорошего управления рисками. На сегодняшний день события дефицита в кредитных протоколах были ограничены, а когда они происходили, они были результатом эксплойтов/экономических атак. Однако, когда события нехватки ресурсов действительно происходят и связаны с провалом управления Марсианским советом, Марсианский совет должен быть в состоянии отреагировать, используя имеющиеся средства для компенсации пострадавшим пользователям. В конечном счете, компенсация не может быть гарантирована и зависит от усмотрения Марсианского Совета.

В долгосрочной перспективе модуль может быть обновлен (после одобрения руководством), чтобы автоматически обнаруживать безнадежные долги, возникшие в аванпосте, и распределять соответствующие суммы средств для покрытия дефицита без необходимости проходить через управление.

Если вы готовы погрузиться в код, посмотрите запись .

Введение в модуль управления

Модуль «customgov» представляет собой оболочку ванильного модуля управления Cosmos SDK, наследуя большую часть его функций, но заменяя логику подсчета голосов пользовательской реализацией. А именно, токены, заблокированные в контракте блокировки / наделения правами , учитываются при определении права голоса в управлении.

Эти токены либо «заблокированы» (не подлежат передаче), либо «не переданы» (еще не полностью заработаны), либо и то, и другое.

ПРИМЕЧАНИЕ. Строители Mars «зарабатывают» на MARS, когда они вносят свой вклад в протокол Mars в течение определенного периода времени. MARS может «разблокироваться» (стать подлежащим передаче) позже, чем они станут закрепленными, в зависимости от того, когда конкретный человек начал работать на Марсе. График разблокировки MARS еще не утвержден и будет объявлен перед запуском.

На первом сеансе проверки кода @larry0x рассказал о контракте блокировки/присвоения, который выполняет передачу и разблокировку токенов для сборщиков Mars. Токены, заблокированные в контракте о наделении правами, не должны иметь право на получение вознаграждения за стекинг (фактические пользователи должны размещать MARS и получать эти вознаграждения), но разработчики должны иметь возможность голосовать. Вопрос в том, как это реализовать в кастомном модуле для блокчейна Mars Hub?

По большей части для этих целей подходит модуль vanilla gov, входящий в состав Cosmos SDK. Но логика подсчета голосов, используемая модулем, должна быть изменена, чтобы подсчитывались токены, заблокированные в контракте блокировки/распределения. В исходном модуле право голоса исходит только из одного источника: количества размещенных токенов в модуле стейкинга. Для пользовательского модуля теперь есть два источника: застейканные токены (как и раньше) плюс количество токенов в контракте блокировки/вестинга.

Для токенов, размещенных в контракте, вот как работает право голоса: если я делаю стейкинг с валидатором, я делегирую свое право голоса на управление этому валидатору. При отсутствии моего голоса по конкретному предложению валидатор, которому я делегирую, может голосовать от моего имени. То есть, если валидатор голосует за предложение, которого нет у меня, и я делегировал свои токены валидатору, моя сила голоса будет учитываться в отношении варианта, за который проголосовал валидатор. В случае, если я решу не только голосовать, но и мой голос отличается от голоса моего валидатора, мой голос переопределит голос валидатора. Это исходная реализация в Cosmos SDK, которая остается неизменной для сети Mars Hub.

Для токенов в контракте блокировки/присвоения логика делегирования является новой. Когда типичный пользователь размещает свои (разблокированные, полностью закрепленные) токены у валидатора, он делегирует свое право голоса валидатору. В случае токенов в контракте блокировки/вестинга делегирование не происходит. Это означает, что если строитель не проголосует за предложение, его голосование, соответствующее токенам, заблокированным в контракте блокировки/вестинга, просто не будет зарегистрировано вообще. Вот пример:

Рассмотрим блокчейн только с одним валидатором, а также с двумя пользователями, Алисой и Бобом, у которых есть следующие количества токенов:

Предположим, что валидатор голосует ЗА предложение, в то время как ни Алиса, ни Боб не голосуют. В этом случае валидатор будет голосовать от имени застейканных токенов Алисы и Боба. Голосование пройдет, если 30 + 49 = 79 токенов проголосуют ЗА, а остальные 21 токен не проголосуют.

Если Алиса голосует НЕТ, это отменяет голосование валидатора. И стейкинговые, и вестинговые токены Алисы будут учитываться при выборе НЕТ. Предложение будет отклонено 49 токенами, проголосовавшими ЗА, против 51 токена, проголосовавшим НЕТ.

Вот как модуль должен работать. Последней вводной темой, которую следует рассмотреть, является компонент-оболочка модуля. Репозиторий Cosmos SDK можно разветвить, чтобы включить измененный контракт управления, но это приведет к необходимости изменения различных зависимостей для выполнения (и особенно тестирования) нового модуля. Вместо этого модуль-оболочка позволяет новому модулю наследовать все от исходного модуля, сохраняя при этом возможность переопределять определенные методы. Это работает аналогично наследованию в объектно-ориентированном программировании. Модуль «обертки» просто изменяет логику подсчета, чтобы учесть передачу токенов с использованием описанной выше логики делегирования.

Если вы готовы погрузиться в код, посмотрите запись .

Что дальше

Следующая и пятая сессия будет посвящена модулю стимулирования ставок. Слушайте, задавайте вопросы и помогайте выявлять ошибки в этой прямой видеотрансляции. Детали события:

  • 06 августа 2022 г.
  • 11:00 по восточному поясному времени | 15:00 по всемирному координированному времени
  • http://Discord.gg/марспротокол

Имейте в виду, что все вышеперечисленное отражает текущее мышление Центра управления полетами, но не гарантируется и не обещается. Настоящим не подразумевается никаких договоров или обязательств. Не принимайте никаких финансовых решений на основании этого объявления.

- Управление полетами

🔴

Следите за новостями Mars в Твиттере и подписывайтесь на электронную рассылку новостей Mars, чтобы быть в курсе последних обновлений от Центра управления полетами.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Эта статья не является рекомендацией по инвестициям и полностью регулируется приведенными здесь заявлениями об отказе от ответственности Mars .

Leave a Reply

Your email address will not be published. Required fields are marked *