Celestia
December 19, 2023

Покращення клієнта Rust RPC і вузлів для мережі Celestia

Вступ

Celestia — це мережа доступності даних, яка пропонує модульний підхід до архітектури блокчейну. У цьому прикладі ми заглиблюємося в проект, спрямований на підвищення функціональності клієнта Rust RPC і вузлів Rust у мережі Celestia. Нашою метою було спростити взаємодію між розробниками та мережею Celestia, зробивши її більш доступною та ефективною.

Аналоги типу та взаємодія RPC

Щоб розпочати цей проект, наша команда зосередилася на створенні аналогів типів, натхненних Celestia-node. Ці аналоги були розроблені, щоб виступати в якості основних будівельних блоків, спрощуючи процес налаштування необхідних типів для операцій RPC (Remote Procedure Call) і служити основою для функціонального клієнта та вузла Rust RPC.

Це значно спростило процес розробки та сприяло плавній взаємодії між розробниками та мережею Celestia.

Розширення можливостей доказів включення через взаємодію NMT

Одним із ключових аспектів проекту було покращення взаємодії з деревом Merkle з простором імен (NMT). У мережі Celestia докази включення відіграють вирішальну роль у забезпеченні цілісності даних. Щоб зробити цей процес ефективним, нам потрібен був надійний механізм перевірки цих доказів.

Хоча вже був доступний ящик Rust NMT, він потребував удосконалення, щоб відповідати динамічним вимогам мережі Celestia. Ми взялися за завдання розширення можливостей існуючого ящика NMT для обробки просторів імен різного розміру. Це вдосконалення кардинально змінило правила гри, ідеально вирівнявши коробку з різноманітними потребами Селестії.

Основні напрямки:

  1. Реалізація типу blob і логіка зобов’язань: значна частина наших зусиль була спрямована на впровадження типу blob та інтеграцію логіки, необхідної для створення зобов’язань. Це досягнення оптимізувало керування блоками даних, завдяки чому їх було легко отримати за допомогою модуля блоків RPC.
  2. Модифікація ящика nmt-rs: ми розширили можливості ящика nmt-rs, додавши підтримку для просторів імен різних розмірів із постійними загальними кодами. Ця модифікація була важливою для адаптивності та універсальності мережі Celestia.
  3. Розгалуження tendermint-rs: Celestia використовує модифіковану версію консенсусного протоколу Tendermint, і ми допомогли застосувати зміни до його реалізації Rust.

Висновок

Підсумовуючи, наш проект був зосереджений на вдосконаленні клієнта Rust RPC і вузлів для мережі Celestia, зробивши його більш зручним для розробників і ефективнішим. Створивши основні аналоги типів, адаптувавши логіку створення зобов’язань і покращивши взаємодію NMT, ми дозволили розробникам ефективно взаємодіяти з мережею Celestia через Rust.

Ці вдосконалення не тільки спрощують розробку, але й підвищують цілісність даних завдяки ефективним доказам включення. Наш внесок у мережу Celestia відіграв важливу роль у покращенні її функціональності, зміцненні її можливостей і забезпеченні того, щоб вона залишалася новаторською силою в ландшафті блокчейну.

Спілкуйтеся з нами

Цікаво дізнатися більше? Ви можете ознайомитися з нашим репозиторієм GitHub, щоб бути в курсі нашого прогресу та активно брати участь у нашому шляху просування.

Скринька фактів про проект

Використані технології: Rust, Tendermint, JsonRPC, protobuf, nmt

Основні проблеми: форк Tendermint, що відповідає як jsonrpc, так і protobuf представленням типів Celestia, не відстаючи від швидкого розвитку Celestia

Проблеми, які ми вирішили: підтримка довільного розміру простору імен у nmt-rs, повторне застосування модифікацій celestia до протоколу tendermint, досягнення повної сумісності з типами celestia як для json, так і для протопредставлень, тестування інтеграції з реальною мережею celestia

Українська спільнота Celestia

Приєднуйтесь до нашаго Telegram каналу, щоб читати всі новини та апдейти про Celestia українською. Також, підписуйтесь на наш Twitter. Ми будемо раді Вас бачити