Допис
Діліться своїми знаннями.
Sui gRPC проти JSON-RPC для розробників
Назва: Перехід на gRPC - варто того для Sui DApps?
Оскільки gRPC приходить до Sui, мені цікаво, як розробники планують його прийняти.
Ви перевірили відмінності затримок порівняно з JSON-RPC?
Чи ідентичний набір функцій або є прогалини?
Чи вважаєте ви gRPC кращим для виробничих програм або переважно для внутрішнього інструментарію?
Будь-які поради щодо міграції, зразок клієнтського коду або показники ефективності допоможуть іншим вирішити, коли і як перемикатися.
- Move CLI
- Move Module
- Move Bug
- Feature Request
Відповіді
1Прийняття Sui gRPC у повній бета-версії, замінивши JSON-RPC як API повного вузла за замовчуванням, пропонує розробникам швидший та ефективніший спосіб взаємодії з даними блокчейну, і багато хто дивиться на його переваги продуктивності та можливості в режимі реального часу. Тести затримки показують, що gRPC значно швидший, ніж JSON-RPC, зі швидкістю серіалізації до шести разів швидшою завдяки використанню буферів протоколів (Protobuf) над текстовим форматом JSON, а мультиплексування HTTP/2 зменшує витрати на мережу, скорочуючи час відгуку до 50% у сценаріях з високим трафіком, таких як DeFi або ігрові DApps. Набір функцій не ідентичний - GRPC додає потужні можливості потокового передавання через SubscriptionService для оновлення в режимі реального часу (наприклад, контрольні точки, транзакції), яких не вистачає JSON-RPC через підхід на основі опитування, але простіша настройка JSON-RPC все ще може відповідати базовим запитам, де переважає читабельний JSON. gRPC чудово підходить для виробничих додатків, що потребують низької затримки та масштабованості, як-от біржі або аналітика в режимі реального часу, тоді як JSON-RPC може залишатися зручним для використання JSON-RPC внутрішні інструменти або простіші скрипти завдяки більш широкій мовній підтримці та простоті використання. Для міграції почніть з перегляду протофайлів gRPC Sui на GitHub (сховище sui-apis), щоб створити клієнтські бібліотеки такими мовами, як Rust або TypeScript, і протестуйте на тест-мережі Sui, щоб порівняти продуктивність з кінцевими точками JSON-RPC. Зразок клієнта в TypeScript може виглядати так:
const { SuiClient } = require('@mysten/sui.js/client');
const client = new SuiClient({ url: 'grpc://fullnode.sui.io:443' });
async function getBalance(address) { const response = await client.getBalance({ owner: address });
console.log(response); }
—переконайтеся, що ви встановили @mysten /sui.js і налаштували залежності gRPC. Показники продуктивності з бета-версії Sui показують, що gRPC обробляє тисячі одночасних запитів із затримкою менше секунди, порівняно з багатосекундними затримками JSON-RPC при подібних навантаженнях. Щоб переключитися, поступово інтегруйте gRPC для високопродуктивних компонентів, зберігайте JSON-RPC для сумісності із застарілою системою (поки що підтримується) та використовуйте такі інструменти, як grpcurl, щоб експериментувати з кінцевими точками. Слідкуйте за крутішою кривою навчання gRPC за допомогою схем Protobuf і завжди моделюйте за допомогою SuicLient.dryRunTransactionBlock, щоб виявити проблеми інтеграції.
Ви знаєте відповідь?
Будь ласка, увійдіть та поділіться нею.
Move is an executable bytecode language used to implement custom transactions and smart contracts.
Зароби свою частку з 1000 Sui
Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.
