все значения big endian
- Len 4 байта длина тела сообщения
- Seq 4 байта номер в последовательности. Произвольное монотонно увеличивающееся значение. У клиента и сервера своё. Младший бит указывает на ответ. Т.е. все запросы четные, ответы нечетные.
- Body N байт тело сообщения, MsgPack упакованный map. Ключи - строки или Nil. Значения - строки, бинари и инты.
- Ключ Nil, значение - код комманды.
- Ключ 'e', значение - код ошибки, если ошибка.
Запрос отправляет клиент:
{Nil: "hello", "lang": "wasm", "ver": 1}
Ответ отправляет сервер. Если все ок, ответ повторяет запрос, но Seq больше на 1.
Запрос отправляет сервер.
{Nil: "exec", "ledger": b"\x00…", "tx": b"\x00…", "gas": 100}
- addr - 8 byte binary address
- ledger — msgpacked ledger
- tx - msgpacked tx
- gas - int
Ответ отправляет клиент.
{Nil: "exec", "state": b"\x00…", "txs": [b'\x00…',]}
- state - бинарь, новое состояние, msgpacked
- txs - опциональный список транзакций