/wanode

Primary LanguageC

Общий формат

все значения big endian

  • Len 4 байта длина тела сообщения
  • Seq 4 байта номер в последовательности. Произвольное монотонно увеличивающееся значение. У клиента и сервера своё. Младший бит указывает на ответ. Т.е. все запросы четные, ответы нечетные.
  • Body N байт тело сообщения, MsgPack упакованный map. Ключи - строки или Nil. Значения - строки, бинари и инты.
    • Ключ Nil, значение - код комманды.
    • Ключ 'e', значение - код ошибки, если ошибка.

Hello

Запрос отправляет клиент:

{Nil: "hello", "lang": "wasm", "ver": 1}

Ответ отправляет сервер. Если все ок, ответ повторяет запрос, но Seq больше на 1.

Exec

Запрос отправляет сервер.

{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 - опциональный список транзакций