Інженерні оновлення Oasis за другий квартал 2022 року

Roman
Oasis Foundation Ukrainian
6 min readJul 10, 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!

--

--