Пост
Поделитесь своими знаниями.
Что такое 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 предоставляет мощные возможности потоковой передачи обновлений в реальном времени (например, контрольные точки, транзакции), чего нет в JSON-RPC из-за подхода, основанного на опросах, но более простая настройка JSON-RPC все же может подойти для базовых запросов, где предпочтение отдается понятному человеку JSON. gRPC отлично подходит для производственных приложений, требующих низких задержек и масштабируемости, таких как биржи или аналитика в реальном времени, а JSON-RPC может оставаться удобным для внутренних инструментов упрощение или упрощение скриптов благодаря более широкой языковой поддержке и простоте использования. Для миграции начните с просмотра протофайлов Sui gRPC на 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.
