Библиотеки для работы

Для разработки приложений зачастую используют уже готовые библиотеки. Наличие библиотеки для конкретного языка программирования зависит от наличия заготовок для работы с криптографией, большими числами и траспортными протоколами (http/ws). Так как GOLOS исторически эволюционировал из Graphene, то большинство библиотек для блокчейн основанных на кодовой базе Steem — подходят и для Golos. Отличительной особенностью является формат общения с нодой (структура json-rpc), порядок и наименование параметров при описании операции, формат сложных данных в бинарном виде.

Каждый разработчик может поднять свою ноду для взаимодействия с GOLOS, но для начинающих разбираться существуют публичные ноды.

Ниже перечислены основные библиотеки, которые поддерживают большинство API запросов к ноде и формирование транзакций.

JavaScript

Фаворит для разработки приложений библиотека golos-js. В нем есть поддержка всего что нужно как для серверного (nodejs), так и для пользовательского (js в браузерах) взаимодействия с Golos:

  • Создание и кодирование ключей;

  • API-запросы;

  • Формирование транзакций;

  • Упрощенный конструктор транзакций для операций;

  • Функции обратного вызова для запросов;

Документация golos-js на английском языке доступна на GitHub. Примеры для часто использумых операций смотрите в разделе Примеры кода.

Python

Библиотека golos-python от @someguy/@ksantoprotein поддерживает как API запросы, так и формирование транзакций. Документация к ней на английском языке.

Библиотека golos-python от @vvk также поддерживает большинство необходимого.

PHP

Сложность разработки поддержки на PHP в том, что нет стандартных библиотек для работы с криптографией. Поэтому необходим полный доступ к серверу, чтобы собрать secp256k1 для PHP и включить поддержку GMP. Это накладывает определенные ограничения на разработчиков (требует опыт в администрировании).

Несмотря на это, существует библиотека php-graphene-node-client с поддержкой GOLOS от @t3ran13, установка возможна через Docker.

GO

Библиотека golos-go от @asuleymanov также подходит для API запросов и изучения формирования транзакций.

Другое

Если вы не нашли требуемый язык программирования, то можно обратить внимание на существующие библиотеки для Steem и EOS. Чтобы модифицировать их и получить поддержку Golos достаточно проверить формат json-rpc запросов, поменять chain_id (в GOLOS он равен 782a3039b478c839e4cb0c941ff4eaeb7df40bdd68bd441afd444b9da763de12 — это префикс для подписи сырых транзакций) и настроить конструктор операций.

  • C# Ditch — быстрая и простая библиотека на C# использующая .NET стандарта 2.0;

  • Elixir API wrapper — библиотека на Elixir для API-запросов;

  • Swift Steem — библиотека на Swift.