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

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

Несмотря на разный синтаксис — основа для взаимодействия с VIZ одна: криптография для ключей и подписи сообщений, проверка подписи по данным и публичному ключу, формирование транзакций, взаимодейстие с нодой.

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

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


# JavaScript

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

  • Создание и кодирование ключей;
  • API-запросы;
  • Формирование транзакций;
  • Упрощенный конструктор транзакций для операций;
  • Функции обратного вызова для запросов;

Документация viz-js-lib на английском языке (opens new window) доступна на GitHub. Примеры для часто использумых операций смотрите в разделе Примеры кода.

# Python

Библиотека thallid-viz (opens new window) от ksantoprotein поддерживает как API запросы, так и формирование транзакций. В наличии множество примеров (opens new window) с разными операциями.

Библиотека viz-python-lib (opens new window) поддерживает большинство необходимого, но отсутствуют примеры и документация (библиотека пока недоделана).

# PHP

После перехода на адаптированные библиотеки BigNumber и Elliptic Curve стало доступным использовать криптографию без сборки secp256k1 для PHP и включения поддержки GMP (opens new window).

Библиотека viz-php-lib (opens new window) поддерживает JsonRPC, работу с ключами, формирование транзакций, шифрование сообщение через shared key (совместимое с viz-js-lib), присутствуют примеры, поддержка PSR-4 и установка без дополнительных зависимостей (all-in-one).

Библиотека php-graphene-node-client с поддержкой VIZ (opens new window), установка которого возможна через Composer.

# GO

Библиотека viz-go-lib (opens new window) отлично подходит для API запросов и изучения формирования транзакций. К сожалению документации по библиотеке нет, как и примеров с отдельными операциями.

# Swift

Библиотека viz-swift-lib (opens new window) — библиотека на Swift, установка которой возможна через Swift Package Manager (opens new window).

# Dart

Криптографическая библиотека viz_dart_ecc (opens new window) — позволяет формировать публичный ключ из приватного, подписывать данные, верифицировать подпись.

Библиотека viz-transaction (opens new window) — позволяет формировать и подписывать транзакции для блокчейна VIZ (библиотека не содержит методов для трансляции транзакции блокчейн-ноде, для этого нужно использовать любые другие библиотеки для http/ws протокола).

# Другое

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