Сервис BcAPI предоставляет возможность различным сервисам
взаимодействовать с блокчейн сетью c2g основанной на hyperledger fabric.
BcAPI может только вызывать методы смарт-контрактов.
BcAPI является авторизационным и трансферным шлюзом и никак не
валидирует данные, передаваемые в блокчейн.
Идентификация и авторизация пользователя происходит на основе данных
основной платформы С2G.
Общение с BcAPI происходит с помощью протокола websocket. BcAPI
использует строгий порядок обмена сообщениями, сопровождающимися
кодами состояний.
Список кодов:
auth – стадия авторизации и аутентификации
query — запрос на получение данных из блокчейна
invoke — запись данных в блокчейн
proposal — данные транзакции которые нужно подписать клиенту
signature — подписаны данные
payload – транзакция, требующая подпись
result – результат выполнения транзакции
error – ошибка
Для упрощения взаимодействия с BcAPI была написана специальная
библиотека.
Основные методы библиотеки:
NewBcAPI(serverHost string, certPem, privKeyPem []byte) *BcAPI – создает клиент,
который будет общаться с BcAPI.
(b *BcAPI) SendTx(TxCode, orgID string, contract *Contract, function string, args ...string)
– отправляет сообщение в BcAPI.
TxCode может принимать 2 значения: query или invoke. Query используется если
надо запросить данные, а invoke – если надо записать данные
Contract – это структура, хранящая айди организации, канала и самого приложения.
Ниже приведена структура этого типа.