Как сопоставить ответы пакетного Ethereum RPC с запросами
Пакет сокращает число сетевых обращений, но сервер может вернуть ответы в другом порядке. Сопоставление по позиции способно приписать значение другому запросу.
Назначьте разные идентификаторы
Отправьте пакет ниже на Ethereum HTTP RPC с поддержкой таких запросов. До отправки сохраните соответствие каждого ID и метода.
[{"jsonrpc":"2.0","id":"chain","method":"eth_chainId","params":[]},{"jsonrpc":"2.0","id":"height","method":"eth_blockNumber","params":[]}]
Если первым пришёл ответ height, декодируйте его как высоту блока. Обработайте ошибки по ID и обнаруживайте пропущенные или повторные ответы для запросов, которые ждут результат. Сбой одного элемента не отменяет успешный ответ соседнего.
Разделите зависимые чтения на этапы
Пакет не обеспечивает атомарный снимок состояния. Если для одного запроса нужен хеш блока из другого, сначала получите хеш, затем сформируйте зависимый пакет с явной привязкой к блоку там, где методы это поддерживают. jsonrpc.org JSON-RPC 2.0