MMS

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

В феврале у нас есть несколько значительных обновлений в процессе разработки, которые мы хотели бы выделить и поделиться с вами:

Главное новое обновление этого месяца — обновленный крейт gstd , который теперь позволяет отправлять сообщения из программ без явной установки лимита газа. Другими словами, при использовании msg::send() , msg::reply() и связанных с ними функций нет необходимости устанавливать лимит газа, необходимый для обработки этих сообщений. Газ будет автоматически заимствован из родительского сообщения. Обратите внимание, что это критическое изменение, так как сигнатуры текущих функций были изменены. Новые функции msg::send_with_gas() , msg::send_commit_with_gas() и msg::send_bytes_with_gas()были введены для отправки сообщений с явным лимитом газа, когда это требуется. Если вы хотите узнать больше подробностей, проверьте документы gstd::msg .

Мы выпустили патч 1 и патч 3 для реализации программы. Теперь программу может отправить не только пользователь, но и другая программа. Во-первых, пользователь должен сохранить код, вызвав внешний код submit_code и получив идентификатор кода. Затем программа может использовать функцию prog::create_program_with_gas() , предоставляя идентификатор кода, соль и сообщение инициализации для создания нового экземпляра программы в цепочке. Эта функция возвращает идентификатор только что созданной программы. Можно создать несколько экземпляров программы, изменив параметр соли.

Переработаны вызовы RPC для расчета платы за газ. Теперь стало возможным рассчитать количество газа, которое будет потрачено не только на обработку сообщения, но и на инициализацию программы и обработку ответа . Теперь узел принимает три вызова RPC:

  • gear_getInitGasSpent для расчета количества газа при отправке и инициализации новой программы;
  • gear_getHandleGasSpent для получения количества газа за обработку одного сообщения;
  • gear_getReplyGasSpent для расчета количества газа, которое будет потрачено за ответ на сообщение, находящееся в почтовом ящике пользователя.

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

Также был реализован другой новый выход системного вызова . Он упреждающе останавливает выполнение программы и удаляет программу из памяти. Весь доступный баланс программы теперь переводится на адрес, указанный в аргументе выхода . Также теперь управление стоимостью в программах позволяет управлять балансом счета из цепочки. Минимальное значение для отправки напрямую зависит от ExistentialDeposit узла.

Мы нормализовали случай отсутствия записи. Другими словами, если некоторые из точек входа ( init, handle или handle_reply ) не были предоставлены, это означает, что эта функция пуста.

Мы добавили крейт gear-wasm-builder . Gear-wasm-builder — это вспомогательный крейт, используемый в скриптах сборки (он же build.rs) . Он помогает создать смарт-контракт и получить двоичный файл WASM ( .wasm ), а также генерировать оптимизированные ( .opt.wasm ) и выходные данные метаданных ( .meta.wasm ), добавив почти одну строку кода в скрипт build.rs . Кроме того, это позволяет использовать более простые команды для запуска сборки (просто сборка груза без каких-либо дополнительных параметров) и гарантировать, что контракт был создан до тестирования ( тест груза ).

Еще одно существенное техническое обновление заключается в том, что теперь можно сохранять контекст сообщения поверх логики пробуждения. Раньше мы не могли хранить неполные полезные данные, переданные msg::send_push и msg::reply_push поверх ожидания-пробуждения , потому что мы не сохраняли некоторый контекст выполнения конкретного сообщения, теперь у нас есть эта возможность. Также исправлена ​​ошибка, когда программа могла отправить более одного ответа.

Для сообщества мы провели два обучающих онлайн-семинара, один для говорящих на китайском языке, а другой для говорящих на английском языке, в сотрудничестве с Forge . Позже мы проведем вторую часть мастер-класса с Forge. Это будет практично, когда все участники смогут развернуть свой первый смарт-контракт на Gear.

После серии образовательных семинаров по всему миру мы рады сообщить, что мы провели наш первый семинар в Мексике в сотрудничестве с @escomunidad ! Также в феврале нам удалось организовать наш первый Meetup в Мексике, который проходил в баре Bitcoin Embassy.

Хотим выразить благодарность всем участникам! Мы также невероятно рады объявить, что в будущем мы будем проводить больше интерактивных и захватывающих семинаров и встреч, поэтому следите за нашими обновлениями для получения дополнительной информации!

Мы также хотели бы поблагодарить наше сообщество за создание видео и статей, которые вы можете посмотреть в нашем Твиттере .

С наилучшими пожеланиями,

Команда Gear

Leave a Reply

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