Інженерні оновлення Oasis за другий квартал 2022 року
Незважаючи на ведмежий тренд на ринку криптовалют, останні три місяці для нашої команди інженерів видалися досить напруженими.
Ця публікація є перекладом від одного з амбасадорів Oasis.
Ми проводимо суворі перевірки для збереження точності перекладу, однак в текстах все ж можуть зустрічатися помилки та невідповідності. Oasis не несе відповідальності за точність або надійність перекладу. З оригінальною статтею можна ознайомитись за посиланням.
Не покладаючи рук ми продовжували працювати над удосконаленням наших Paratime та приклали ще більше зусиль до запуску Sapphire, нашого нового EVM-сумісного Paratime.
Також ми значно вдосконалили Oasis Wallet (веб-версія), адже в майбутньому плануємо для нього роль програмної основи для обох версій нашого гаманця: веб-версії та браузерного розширення.
Ми оновили core-платформу, а також платформу для розробників з метою покращити користувальницький досвід для всіх, хто займається розробкою на Oasis Network.
Нижче наведено список з технічними оновленнями, якими ми займалися упродовж другого кварталу цього року.
Оновлення гаманця
Особливо багато уваги в другому кварталі ми приділили оновленню та покращенню веб-версії Oasis Wallet. Це було зроблено, щоб надалі перетворити веб-версію гаманця на єдину програмну основу як для веб-версії, так і для браузерного розширення.
У другому кварталі ми провели 69 pull requests. А ось і найбільш значні з оновлень:
- Використання webext-redux для розширення (#787).
- Використання Parcel для створення розширення та адаптації, щоб його можна було побудувати в основній гілці (#805).
- Спрощено налаштування розширень, оточення та скриптів зборки (#830).
- Рефакторинг бічної панелі та можливість фокусування всіх кнопок (#821).
- Додана локалізація словенською та турецькою мовами (#277, #808).
- При виборі одного з топ-20 валідаторів для стейкінгу додано спеціальне повідомлення, яке закликає до більшої децентралізації.(#831).
- Змінено стиль поля пошуку адреси. Поле пошуку реорганізовано в окремий компонент (#844).
- Виправлено проблему доступності клавіатури після створення гаманця (#864).
- Тепер компоненти надсилання транзакції відображаються лише для власних облікових записів (#865).
- Додано латинський шрифт ext з метою виправити проблеми з відображенням шрифту з нелатинськими символами (#867).
- Процес публікації документа (#840).
Незважаючи на те, що веб-версія гаманця буде служити програмною основою для обох версій, ми продовжуємо покращувати UX, стабільність і стійкість до відмови нашого Oasis Wallet — Browser Extension.
У другому кварталі ми здійснили 15 pull requests і випустили версії 1.5.0 та 1.6.0. А ось і кілька найбільш значущих змін:
- Відкат до gRPC при збої запиту інформації про обліковий запис за допомогою Oasis Scan API (#257).
- Блокування підтвердження небезпечних дій (тобто здійснення переказа валідатору, внесення коштів у ParaTime на сторонній рахунок, виведення з ParaTime на сторонній рахунок, внесення коштів у ParaTime на Ledger-backed рахунок) (#271).
- Оновлено комісію за газ за промовчанням для ParaTime транзакцій, щоб вона була достатньою в рамках нещодавнього підвищення мінімальної ціни на газ в Emerald (#261, #262).
- Виправлено підписання транзакцій після імпорту із коротких закритих ключів (#273).
- Показ тільки Emerald та Cipher (#267).
- Виправлено відображення помилок фонової сторінки (#272).
- Поліпшено передбачувані типи обіцянок і TransactionWrapper (#264).
Оновлення ParaTime
- У другому кварталі рівень використання Emerald ParaTime був на хорошому рівні. Ми зменшили кількість транзакцій за рахунок успішнішого запобігання потраплянню помилкових транзакцій до блоків. Червень 2022 року показав неухильне зростання використання з піком 7 червня більш ніж у 300 тис. транзакцій на день. А вже наприкінці місяця показник вагався на рівні від 35 тис. до 100 тис. транзакцій щодня.
- 65 нод працюють під управлінням Emerald ParaTime в Mainnet станом на 30 червня.
- 30 нод працюють під управлінням Cipher ParaTime в Mainnet станом на 30 червня.
Розробка ParaTime
У другому кварталі розробка нового ParaTimes йшла повним ходом.
Вже досить давно ми старанно працюємо над новим конфіденційним EVM-сумісним ParaTime під назвою Sapphire ParaTime. Вихідний код даного ParaTime відкритий і його нещодавно було опубліковано в репозиторії sapphire-paratime на GitHub. А запуск у Testnet планується вже у липні 2022 року.
А ось і основні віхи розробки Runtime SDK:
- Додано підтримку підписаних запитів (#984, #980).
- У модуль evm додано підтримку конфіденційності (#855).
- У модуль evm додано підтримку шифрування конверта виклику (#926).
- Додано підтримку тегування дорогих запитів та налаштування максимального рівня газу, який буде використовуватися при оцінці газу при моделюванні txns (#865).
- Додано настроювану оцінку газу за допомогою підтримки бінарного пошуку (#981).
- Поліпшено EVM-сумісність та задокументовано ще більше відмінностей у нашому модулі evm(#983).
- Оновлення SputnikVM, реалізації Rust EVM, яку ми використовуємо, до версії 0.35.0 (#997).
- Додано параметр конфігурації, який дозволяє операторам нод вказувати максимальне значення газу, для якого вони все ще готові відповісти на запит evm.SimulateCall. (#885).
- Під час перевірки tx оновлення плати/одноразового номера відбувається лише після успішного виклику (#864).
- Щоб відповідати змінам Oasis Core, що вимагають управління розкладом ParaTime, завжди вмикайте управління розкладом у Runtime SDK (#888).
- Розповсюдження помилок у дзвінках бібліотеки WASM (#894).
- Додано необов’язкове поширення помилок у core. EstimateGas (#972).
- Додана можливість відключити емісію подій щодо використання газу (#944, #1021).
- Розшифровка даних конфіденційного виклику за допомогою ключа попередньої епохи для безперебійної роботи після переходу епохи (#1023).
- Додано підтримку підверсій ABI контракту WASM з метою забезпечити еволюцію ABI без порушення сумісності зі старими смарт-контрактами, що вже розгорнуті (#984).
Оновлення платформи для розробників
Наше середовище розробки смарт-контрактів на основі Solidity & EVM вже доступне в Emerald ParaTime в Mainnet.
Шлюз Emerald Web3 дозволяє застарілим програмам Ethereum взаємодіяти з Emerald, не вимагаючи при цьому спеціальних модифікацій. У другому кварталі ми зробили 35 pull requests, спрямованих на підвищення продуктивності, надійності та зручності використання нашого шлюзу, а також випустили версії 2.1.0 та 2.2.0. А ось і найбільш значущі зміни:
- Підвищення ефективності кеш-пам’яті (#260).
- Реалізація кешу відповідей (#242).
- Додано кеш транзакцій та квитанцій про транзакції (#244).
- Додано кеш-журналу (#244).
- Впровадження оракулу для цін на газ на основі індексованих блоків (#256).
- Додано підтримку налаштування шлюзу для початку індексації на певній висоті (#233).
- Додано підтримку Prometheus для кінцевих точок API (#241).
- Додано метрики для запитів PostgreSQL (#253).
- Правильне використання та розповсюдження контекстів по програмній базі (#240).
- Додано тайм-аут для індексації блоку (#238).
- Обробка випадків, коли більш раннє спостереження за транзакцією не вдалося, а пізніше спостереження було виконано успішно. (#207).
- Впровадження запиту максимального ліміту газу на блок (#191).
Наше середовище розробки смарт-контрактів на основі Rust & WebAssembly розгорнуто в Testnet на Cipher ParaTime. Ознайомтеся з нашим посібником зі смарт-контрактів і дізнайтеся, як підготувати ваше середовище для розробки до використання смарт-контрактів Cipher, і як розгорнути смарт-контракти за допомогою нового інтерфейсу командного рядка Oasis.
Ми також додали новий посібник під назвою Confidential Hello World, який допоможе вам написати та розгорнути ваш перший конфіденційний смарт-контракт на Cipher!
Ознайомитись з нашою open source документацією можна на docs.oasis.dev. А зробити свій внесок можна за посиланням https://github.com/oasisprotocol/docs, де можна зробити pull request!
Оновлення CORE-платформи
Ми розпочала другий квартал релізом Oasis Core 22.1, який відбувся 1 квітня. А вже 11 квітня пройшло успішне оновлення від назвою Damask Upgrade.
Наша core-платформа також продовжувала повним ходом розвиватись у другому кварталі.
Ми працювали над новим офіційним Oasis Indexer, який індексуватиме консенсус Oasis Network та транзакції ParaTime у базі даних PostgreSQL, забезпечуючи тим самим легкий доступ до історичних даних. Проект з відкритим вихідним кодом нещодавно був опублікований в репозиторії oasis-indexer на GitHub. Найближчим часом ми почнемо переводити на нього гаманці Oasis, щоб використовувати нову технологію як кращий бекенд для отримання даних.
Розробка Oasis Core продовжується стрімкими темпами.
У другому кварталі ми здійснили 132 pull request. Нижче наведено найбільш значущі зміни (деякі з них мають з’явитися в Oasis Core 22.2, а деякі були перенесені у 22.1.x):
- Переписано пул транзакцій середовища виконання та потік обробки з метою включити відстеження відправників транзакцій та обмеження кількості незавершених транзакцій для кожного дозволеного в пулі відправника (#4665).
- Поліпшена пріорітизація однорангових вузлів при отриманні фрагментів контрольної точки сховища (#4671).
- Різні виправлення у потоці конфіденційної реєстрації під час виконання (#4678, #4683).
- Додано здатність вузлів виконання обчислень обробляти зміни конфігурації диспетчера динамічних ключів (#4729, #4715).
- Поліпшено протокол EnclaveRPC, щоб середовища виконання могли повідомляти про відгуки однорангових вузлів на основі індикаторів протоколу вищого рівня. Це має зробити протокол надійнішим (#4757).
- Додано підтримку нового протоколу Architectural Enclave Service Manager (AESM) (#4711).
- Визначено формат пакету атестації Intel DCAP та впроваджено логіку синтаксичного аналізу та перевірки котирувань версії 3 як у Go, так і в Rust. Це буде використано для поступового впровадження повної підтримки атестації DCAP, що дозволить використовувати процесори Intel Xeon 3-го покоління (#4720, #4789).
- Впровадження клієнта Intel PCS, що дозволяє отримувати інформацію TCB та ідентифікаційні дані QE, необхідні в рамках процесу перевірки котирувань DCAP (#4752).
- Реалізовано підтримку режиму архіву (#4571).
- За допомогою легкої перевірки клієнта та реєстрації RAK забезпечено актуальність стану консенсусу, що надається конфіденційним середовищам виконання (#4741).
- Збір логів часу виконання та відправлення їх як частини звичайних логів oasis-node (#4709).
- Спрощення перегляду поточного вузла та статусу виконання (#4669).
Залишаймося на зв’язку!
Якщо ви вже працюєте на Oasis Network і хочете, щоб ми розповіли про ваш прогрес у наступному дайджесті оновлень, напишіть нам на електронну пошту— info@oasisprotocol.org.
Також запрошуємо вас приєднатися до нашої спільноти у Discord та стежити за новинами у Twitter!