Мне кажется, я нашел ответ на свой вопрос и надеюсь, что это поможет любому, кто находится в аналогичной ситуации (переход от Hyperledger Composer к Fabric 1.4)
ctx.stub.putState(key, data);
Мы просто используем приведенный выше коддобавить актив.Очень упрощенная версия найдена в примере с fabcar.
async createCar(ctx, carNumber, make, model, color, owner) {
console.info('============= START : Create Car ===========');
const car = {
color,
docType: 'car',
make,
model,
owner,
};
await ctx.stub.putState(carNumber, Buffer.from(JSON.stringify(car)));
console.info('============= END : Create Car ===========');
}
Здесь мы добавляем автомобиль, который является активом.
В примере с коммерческими документами они сделали это, используяОбъектно-ориентированный подход.С помощью paper.js они просто создают объект «paper» (класс paper расширяет класс состояний. Класс состояний имеет методы для создания и разделения ключей, которые будут использоваться позже), а затем передает его в «paperlist», который затем использует методы, определенныев statelist.js (класс paperlist расширяет класс statelist, в котором есть все методы для записи состояния в книгу) для создания этого актива с помощью следующего кода
async addState(state) {
let key = this.ctx.stub.createCompositeKey(this.name, state.getSplitKey());
let data = State.serialize(state);
await this.ctx.stub.putState(key, data);
}
Здесь вы можете заметить, что ключ сгенерированиспользуя методы из класса состояний, который был унаследован классом бумаги.
И, возвращаясь к последнему вопросу о взаимоотношениях, я пока не нашел конкретного ответа, но я полагаю, что вы можете достичь этого, передавидентификатор участника или идентификатор ресурса (например, пользователь идентифицируется по userId, поэтому мы просто передаем userId) в объекте данных.
Оглядываясь назад, этот вопрос выглядит действительно глупым, но я надеюсь, что он поможет некоторымлюдей вне.
Пожалуйста, не стесняйтесь исправить мое понимание примеров Гиперледжера.Я здесь, чтобы учиться:)