Перейти к основному содержимому

Справочник API

Epic предоставляет семь программируемых поверхностей в трёх программных компонентах. Выбор зависит от того, нужны ли вам данные цепочки или операции с ключами.

Краткий обзор​

ПоверхностьГдеПротоколПорт по умолчаниюМожет тратить
Node /v1/*nodeREST, чтение цепочки и администрирование3413No
Node /v2/ownernodeJSON-RPC 2.0, администрирование узла3413No
Node /v2/foreignnodeJSON-RPC 2.0, чтение цепочки и отправка транзакций3413No
Wallet Owner /v3/ownerwalletJSON-RPC 2.0, зашифрованный3420Yes
Wallet Owner /v2/ownerwalletJSON-RPC 2.0, незашифрованный3420Yes
Wallet Foreign /v2/foreignwalletJSON-RPC 2.03415No
Epicbox relayrelayWebSocket over TLS443No

Документация актуальна для узла 4.1.0 и кошелька 4.1.0.

Узел обслуживает /v1 и /v2 через один слушатель на одном порту как два стиля интерфейса, а не два поколения. Оба активны, и на той странице каждый маршрут v1 сопоставлен с соответствующим методом JSON-RPC.

Кошелёк также обслуживает два owner-интерфейса через один слушатель, и незашифрованный /v2/owner является более старым из них.

Выбор поверхности​

Чтение данных цепочки. JSON-RPC на узле: /v2/foreign для блоков, ядер (kernels) и выходов (outputs), /v2/owner для статуса узла и пиров. Ключи не задействованы. Начните с запросов к узлу.

Всё, что связано с балансами, ключами или переводами. Wallet Owner API. Требует HTTP Basic с .owner_api_secret кошелька, ECDH-рукопожатия и токена кошелька — это описано пошагово в подключении и чтении.

Получение платежа. Запуск epic-wallet listen обрабатывает это автоматически через протокол epicbox или HTTP. Для программной обработки слейта (slate) используется метод Foreign API receive_tx.

Эксплуатация релей-инфраструктуры. Протокол epicbox.

Конверт ответа​

Каждый метод Epic JSON-RPC возвращает HTTP 200 с result JSON-RPC, а внутри этого результата находится второй конверт Ok или Err. Запрос может завершиться успешно на уровнях HTTP и JSON-RPC и при этом оказаться неудачным:

{"id": 1, "jsonrpc": "2.0", "result": {"Ok": {"...": "data"}}}
{"id": 1, "jsonrpc": "2.0", "result": {"Err": {"NotEnoughFunds": {"available": 0}}}}

Одна функция разворачивает оба уровня. _unwrap в examples/python/epic_wallet.py выбрасывает исключение при Err и возвращает значение при Ok, и каждый вызов в этом клиенте проходит через неё.

Суммы​

Каждая сумма является целым числом freeman, и 1 EPIC равен 100,000,000 таких единиц. Owner API кошелька сериализует поля u64 как JSON-строки, поэтому retrieve_summary_info возвращает total и каждое поле amount_ как строку, а node_height возвращает height как строку. Выполняйте разбор перед арифметическими операциями. JSON-RPC узла возвращает чистые целые числа, включая supply и max_supply в get_status.

Далее​