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

Быстрый старт

Здесь мы соберём минимальную связку — chaincode с единой точкой входа и клиент, который шлёт ему команду. Пример намеренно скелетный: его задача показать, из каких частей складывается приложение на hlf-core, а не заменить полноценный туториал, который мы добавим отдельно.

Что потребуется​

Нужны Node.js 18 или новее, TypeScript 5+ и развёрнутая сеть Hyperledger Fabric 2.x или 3.x. О том, с какими версиями Fabric hlf-core работает сегодня и куда движется, стоит заранее заглянуть в раздел «Совместимость» — это тот случай, когда лучше свериться до начала, а не после.

Установка​

На стороне chaincode ставятся пакеты для работы с состоянием и приёма команд:

npm install @hlf-core/chaincode @hlf-core/transport-chaincode @hlf-core/common fabric-shim

На стороне клиента — пакеты для подключения к сети и отправки команд:

npm install @hlf-core/transport @hlf-core/api @hlf-core/common fabric-network

Минимальный chaincode​

Контракт наследуется от TransportFabricChaincode и получает приёмник команд. Забегая вперёд: регистрация обработчиков по именам команд живёт именно здесь, и добавление новой команды не меняет интерфейс контракта.

import {TransportFabricChaincode, TransportFabricChaincodeReceiver} from '@hlf-core/transport-chaincode';

export class MyChaincode extends TransportFabricChaincode<void> {
public get name(): string {
return 'MyChaincode';
}
}

Первый вызов с клиента​

На клиенте мы поднимаем транспорт, подключаемся к сети и отправляем команду тем же единым API, что и в любом сервисе:

import {TransportFabric} from '@hlf-core/transport';

const transport = new TransportFabric(logger, settings);
await transport.connect();

const result = await transport.sendListen(new MyGetCommand(uid));

Куда дальше​

Как устроены сущности и связи — в @hlf-core/chaincode. Как устроен сам транспорт и подпись — в @hlf-core/transport. А работу с токенами и балансами мы разбираем в @hlf-core/coin.