Третий квартал выдался достаточно продуктивным для команды Oasis Engineering, и сегодня мы хотели бы поделиться с вами рядом новостей и обновлений.
Эта публикация является переводом, сделанным одним из послов Oasis. Мы проводим строгие проверки для точности переводов, но в них всё же могут попадаться ошибки или несоответствия. Oasis не несет ответственности за точность или надежность перевода. Оригинальную статью вы можете прочитать по ссылке.
Мы добились значительных успехов в переносе Sapphire на уровень ParaTime, запустив его в тестовой сети в конце июля. Теперь можно создавать и развертывать EVM-совместимые конфиденциальные смарт-контракты на Sapphire ParaTime в Testnet. Детальнее об этом мы поговорим позже!
Кроме того, наша инженерная команда работала над поддержанием Cipher и Emerald, чтобы они справлялись с постоянно растущей нагрузкой.
Веб-версия Oasis Wallet, которую мы планируем использовать в качестве общей базы кода для всех кошельков Oasis в будущем, также претерпела значительные обновления в плане поддержки локального хранилища браузера и транзакций ParaTime. Эти обновления приближают нас к выпуску Oasis Wallet — Browser Extension 2.0, которое мы выпустим уже на основе общей кодовой базы.
В течение квартала команда разработки выпустила ряд текущих обновлений и улучшений, а также три сервисных обновления для Oasis Core, базового движка, обеспечивающего работу нод в Oasis.
Мы с нетерпением ждем четвертого квартала, на который запланирован выход ряда других, ещё более масштабных обновлений. В частности, в следующем квартале мы уже планируем запуск Sapphire в Mainnet.
Ниже вы сможете найти полную информацию об инженерных обновлениях за третий квартал года.
Обновления кошелька
В третьем квартале для Oasis Wallet — Web произошло сразу несколько обновлений в сторону развития поддержки локального хранилища браузера, а также транзакций ParaTime. Мы планируем выпустить поддержку ParaTime-ов позже в этом году, после чего запланирован и релиз следующего поколения Oasis Wallet — Browser Extension на основе этой общей базы кода. За квартал мы сделали 112 pull requests. А вот и некоторые из наиболее заметных дополнений и исправлений (включая работу над веткой ParaTime-ов):
- Отображение списка транзакций ParaTime (#849)
- Исправления расширения браузера (#904)
- Добавлены правила lint, чтобы обеспечить type-safe замены. (#911, #914)
- По умолчанию null баланс вместо 0 (отображает ‘-’ когда баланс неизвестен) (#916)
- Отображение только AddEscrowForm на ваших аккаунтах (#918)
- Неудачные транзакции отмечаются специальным образом (#925)
- Прекратили использовать вводящие в заблуждение поля баланса из RPC (#927)
- Добавлена кнопка “Reclaim All” (#931, #932)
- UI изменён в сторону большей схожести с интерфейсом Oasis Wallet — Browser extension (#933, #935, #936, #937)
- Улучшена числовую точность с помощью BigNumber.js (#952)
- ParaTime депозиты и снятие средств (#962, #969)
- Отображение предполагаемого времени разъединения в списке разъединения (#963)
- Ускорение загрузки конфигурации сети на 40% (#976)
- Исправлен импорт нескольких учетных записей из Ledger (#980)
- Добавлена поддержка получения нескольких учетных записей из мнемоники. (#983)
- Использование правильного тикера в сводке аккаунта (#1026)
- Уменьшен размер пакета(7.2MB -> 5.4MB) с постоянным импортом люверсов (#1038)
- Небольшие исправления пользовательского интерфейса (#868, #879, #903, #919, #921, #922, #928, #946, #947, #949, #953, #958, #999, #979, #1019, #1049)
В преддверии того как кодовая база Oasis Wallet — Web станет базой для обоих кошельков, мы продолжаем улучшать Oasis Wallet — Browser Extension. В третьем квартале мы совершили 9 pull requests и выпустили версию 1.8.0. А вот и список значимых изменений:
- Добавление Sapphire в Testnet (#279)
- Улучшение числовой точности при возврате условного депонирования (#281)
- Опрос статуса транзакции Sapphire (сейчас транзакции уже индексируются) (#285)
- Исправлен бег “invalid nonce” (#282)
- Небольшие исправления пользовательского интерфейса (#280, #282, #286)
Oasis CLI, унифицированный CLI для управления вашей учетной записью, также получил ряд улучшений:
- Добавлена поддержка дампа развернутых контрактов WASM (#1007)
- Добавлена поддержка дампа состояния контрактов (#1034)
- Поиск адреса по имени учетной записи, добавление поддержки тестовых учетных записей (#1038)
- Поддержка изменения политики обновления контракта (#1052)
- Добавлена поддержка адресной книги (#1087)
Для подписания ParaTime транзакций с использованием аппаратных кошельков, таких как Ledger, была предложена новая спецификация ADR 14. Реализация начнется в четвертом квартале.
Обновления PARATIME
- Emerald и Cipher ParaTimes стабильно работали в Mainnet без простоев или других инцидентов на протяжении всего третьего квартала.
- Влияние медвежьего рынка на использование DeFi можно увидеть по объемам транзакций на Emerald. Дневной пик в третьем квартале пришелся на начало июля с примерно 60 тысячами транзакций в день, затем он неуклонно снижался и завершил квартал с 16–18 тысячами транзакций в день.
- По состоянию на 30 сентября 52 ноды используют Emerald ParaTime в Mainnet.
- По состоянию на 30 сентября 29 нод используют Cipher ParaTime в Mainnet.
Разработка PARATIME
В третьем квартале состоялся ряд важных изменений для ParaTime-ов Oasis.
В конце июля мы успешно развернули в Testnet новый конфиденциальный EVM-совместимый Sapphire ParaTime, код которого доступен на sapphire-paratime и oasis-sdk GitHub репозиториях.
Для удобства мы добавили поддержку дампа развернутого кода смарт-контракта на Cipher ParaTime и дампа (опционально зашифрованного) состояния смарт-контракта. Это прокладывает путь для проверки контрактов в чейне и должно улучшить процесс отладки.
Сводка изменений Runtime SDK:
- Добавлена транспортная библиотека шифрования в web-ts; derive_symmetric_key tests for go, rust and typescript (#962)
- ORC tool: Добавлена поддержка подписи двоичных файлов SGXS. (#1056)
- EVM: Не требуется шифрование пустой строки (#1064)
- Исправление расчета газа: исправлена отправка подвызова (#1066)
- EVM: Предоставление открытых данных в подписанных запросах (#1069)
- EVM: Добавлена прекомпиляции шифрования (#1102)
- EVM: Не кодировать контракт, создать вывод (#1138)
- Улучшенные тесты и документация (#991, #1041, #1046, #1047, #1081, #1101)
Обновления платформы разработчиков
Теперь есть возможность создавать и развертывать EVM-совместимые конфиденциальные смарт-контракты в Sapphire ParaTime в Testnet. Ознакомьтесь с обучающими материалами. Будем благодарны за обратную связь.
Emerald Web3 Gateway теперь поддерживает как Emerald, так и Sapphire ParaTime. Остальные исправления в основном включают в себя проблемы с версиями зависимостей. В третьем квартале мы сделали 9 pull requests. Также состоялся релиз новой версии v3.0.0 с исправлениями функций оценки газа, а в выпуск v3.1.0-rc1 добавил поддержку Sapphire.
Наша документация состоит из файлов, находящихся в нескольких репозиториях. В третьем квартале она претерпела значительные изменения как с внутренней, так и с внешней стороны. Категории фронтенда теперь ориентированы на аудиторию, а не на компоненты:
- Пользователи Oasis Network (общая информация о сети Oasis, фонде, руководства по кошелькам)
- Информация, связанная с сообществом
- Операторы узла (параметры сети Mainnet и Testnet, настройка различных видов узлов и сервисов)
- Разработчики dApp (написание приложений для Emerald, Sapphire, и Cipher)
- Разработчики ParaTime
- Основные участники
Улучшения серверной части:
- Поддержка редактирования любого Markdown файла независимо от исходного местоположения репозитория.
- Бесшовное связывание файлов .md и карточек документов из других репозиториев
- Поддержка импорта фрагментов кода из файлов
- Для обратной совместимости настроены редиректы для всех предыдущих документов
Документация была перенесена с домена docs.oasis.dev на новый домен docs.oasis.io. Надеемся, что вам понравятся новые изменения. Вы можете смело вносить собственніе обучающие материалы, руководства и исправления по адресу https://github.com/oasisprotocol/docs просто отправив pull request!
ADR 17 вводит стандартный формат для стандартов совместимости приложений ParaTime. Это соответствует нашему первому запросу RFP, в котором запрашивается конфиденциальный стандарт взаимозаменяемых токенов для Sapphire ParaTime.
Обновления CORE PLATFORM
В третьем квартале мы выкатили три отладочных релиза Oasis Core 22.1.x (v22.1.9, v22.1.10, v22.1.11). Параллельно мы начали разработку Oasis Core 22.2.x с такими ключевыми функциями, как Intel SGX2, аттестация на основе DCAP, улучшения управления в цепочке и безопасность среды выполнения на основе TEE. Стабильная версия запланирована на начало четвертого квартала. По итогу в третьем квартале мы сделали 64 pull request-а. А вот и некоторые из наиболее значимых новых функций и критические изменения (большинство из них запланировано на Oasis Core 22.2.x, а некоторые были перенесены на 22.1.x):
- go/staking/grpc: Переименован ошибочно названный метод GovernanceDeposits (#4652)
- go/runtime: Предоставление мандата на использование управления расписанием выполнения (#4665)
- Добавлена поддержка PCS аттестации (#4806, #4789, #4720, #4752)
- go/governance: Добавлено предложение по изменению параметров (#4938)
- Добавлена поддержка режима архива (#4539)
- go/control: Показываются статусы параметров отладки в управляющем выводе (#4634)
- runtime: Постоянное состояние проверки транзакций сделано настраиваемым (#4640)
- go/runtime/txpool: Ограничение на количество незавершенных транзакций на отправителя (#4665)
- go/control/status: Добавлены поля для быстрого обзора состояния узла (#4669)
- go/worker/storage: Выбор одноранговых узлов синхронизации контрольной точки стал более умным (#4671)
- runtime: проверка эпохи в диспетчере, используя верификатор консенсуса (#4677)
- go/worker/compute: Убедитесь, что trust root проверен перед регистрацией (#4678)
- go/worker/compute: Раннее начало пакетного разрешения для резервного рабочего (#4679)
- go/runtime/txpool: Добавить данные входящих сообщений roothash в качестве транзакций (#4681)
- go/worker/registration: добавлены метрики состояния ноды (#4686)
- runtime: Включить диспетчер для проверки целостности состояния для запросов (#4694, #4830, #4904)
- go/worker/common/p2p: Добавить поддержку постоянных и заблокированных пиров (#4713)
- go/worker/common: Правильно обрабатывать конфигурации диспетчера динамических ключей (#4715)
- go/runtime/txpool: Добавить метрику txpool для отклоненных транзакций во время выполнения (#4724)
- runtime: Проверять, находится ли RAK в состоянии консенсуса при обслуживании запросов (#4741)
- runtime: Добавлена поддержка создания отчетов об отзывах одноранговых узлов EnclaveRPC. (#4757)
- archive-mode: отключить P2P во время выполнения, если используется режим архива (#4775)
- go/consensus/tendermint: Добавлено consensus.tendermint.halt_height (#4793)
- net-runner: Добавлен флаг fixture.default.runtime.version (#4813)
- go/oasis-node: разрешить km иметь частные пиры (#4821)
- go/runtime/registry: разрешить клиентским узлам запускать среды выполнения sgx (#4832)
- go/worker/keymanager: Добавлены основные рабочие показатели менеджера (#4877)
- go/control/status: Добавлен статус рабочего менеджера ключей в статус узла (#4883)
- keymanager: Добавлена поддержка эфемерных ключей (#4888)
- oasis-net-runner: Установлен max_allowances по умолчанию, увеличьте баланс тестового аккаунта (#4902)
- runtime/consensus/verifier: Поддержка обновлений доверительного корневого уровня консенсуса (#4903)
- runtime: Поддержка согласованных запросов событий (#4904)
- keymanager: Проверять последнюю высоту trust root в запросах диспетчера ключей (#4910)
- registry: Добавить транзакцию консенсусного уровня ProveFreshness (#4916)
- runtime: Добавить проверку свежести клиентского узла TEE (#4922)
- keymanager: Убедитесь, что политика была опубликована на уровне консенсуса. (#4925)
- Привяжите аттестации TEE к узлам и обеспечивайте актуальность (#4926)
- go/genesis: Кэшировать вычисленный хэш исходного документа (#4919)
- go/oasis-node/cmd: unsafe-reset сохранить локальное хранилище по умолчанию (#4700)
- go/oasis-node/cmd: unsafe-reset проверить валидность datadir (#4702)
- runtime: Выдавать логи выполнения как логи oasis-node (#4709, #4924)
Новый Oasis Indexer имеет открытый исходный код и поддерживает индексирование как транзакций уровня консенсуса, так и транзакций уровня ParaTime. В третьем квартале основное внимание уделялось созданию базовых функций, добавлению кэширования, исправлению ошибок и совершенствованию инструментов развертывания. Были объединены 25 PR. Также в будущем мы планируем внедрить Oasis Indexer в кошельки Oasis.
ADR 15 имеет целью устранить недостатки в процессе выбора поставщиков блоков ParaTime. В настоящее выбор предлагающего блок выбирается с помощью алгоритма циклического перебора, что упрощает его заблаговременное определение для данного блока. ADR 15 предлагает механизм рандомизации порядка предложения блоков в Paratime.
ADR 16 предлагает более эффективный процесс обновления параметров консенсуса в сети Oasis. В настоящее время для изменения параметров консенсуса необходимо обновить двоичные файлы oasis-nod-ы, перезапустить их и выполнить повторную синхронизацию с новой версией сети консенсуса. ADR 16 добавляет новое предложение по управлению ChangeParametersProposal, которое может предотвратить простои и повысить отказоустойчивость сети.