Быстрый старт
Здесь мы соберём минимальную связку — 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.