Hyperledger Fabric - реализация типов транзакций и настройка политик одобрения для каждого типа транзакций - PullRequest
0 голосов
/ 03 июня 2019

В Hyperledger Fabric один актив имеет несколько транзакций.Эти транзакции обновляют состояние актива и также поддерживают трассировку.

В настоящее время, если я хочу иметь разные типы транзакций для одного актива, то я написал разные функции в коде цепочки, которые соответствуют типам транзакций.

Например: если моими активами являются автомобили, то каждый актив может иметь операции типа продажа, покупка, обслуживание, ремонт и т. Д. Для каждой из этих покупок, ремонта, обслуживания и т. Д.написал функцию в коде цепочки, которая вызывается в зависимости от типа транзакции, отправляемой в качестве ввода (тип транзакции отправляется в качестве аргумента в команде вызова равноправной цепочки).

Как вы думаете, это хороший подход?Что вы следуете?Что рекомендуется для достижения разных типов транзакций?Кроме того, как я могу применить разные политики подтверждения для разных типов транзакций?

Примечание. Мне известны политики подтверждения на основе активов (или ключей) (Fabric v1.4), которые можно записать в виде цепочки кодов.Но это не позволяет мне настраивать политики одобрения на основе типов транзакций.

1 Ответ

3 голосов
/ 04 июня 2019

Шаблон, который вы используете, довольно типичен ... в конце концов, цепной код - это просто конечный автомат. Довольно часто иметь разные цепочки кодов, представляющих различные типы активов или классов активов. Обычно у вас будет несколько функций, управляющих жизненным циклом актива (что, как вам кажется). Типичный шаблон заключается в том, что первый аргумент при вызове chaincode представляет функцию, которую вы хотите вызвать, но только вам, если вы хотите изменить этот шаблон.

С точки зрения наличия разных политик одобрения для разных действий, предпринимаемых в одном и том же состоянии, это не поддерживается, поскольку обычно не требуется. Вы должны позаботиться о том, чтобы не перепутать политику одобрения (соглашение о выдаче вызова) с протоколом соглашения (например, я согласен продать вам мою машину). Этот тип логики, как правило, обрабатывается в функции (функциях) с цепным кодом (например, вы должны убедиться, что создатель вызова действительно является владельцем автомобиля).

Надеюсь, это поможет.

P.S. Если вы хотите иметь разные политики одобрения для разных типов транзакций, вы, вероятно, можете использовать одобрение на основе состояния ... политики в любом случае задаются с помощью цепного кода ... так что вы можете попытаться установить политику одобрения для каждого состояния на основе тип транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...