Могут ли 2 одноранговых узла из разных ORG создать экземпляр одного и того же ChainCode и отправлять транзакции?

Я использовал BYFN для создания фабричной сети с конфигурацией

2 ORG с каждой ORG, имеющей 2 одноранговых узла (каждый из которых имеет свой couch-db в качестве db состояния), 1 заказчик и 2 fabric-ca.

Теперь я установил цепной код (названный ordering-network) на peer0.org1 и peer0.org2 и запустил цепной код на peer0.org1.

Сценарий:

  1. Я могу отправлять транзакции в цепном коде, используя org1 учетные данные администратора или создавая идентификационные данные участника, все связанные с org1.
  2. # P5 #
    # P6 #
  3. # P7 #
    # P8 #

Вопросы:

  1. Если один чейнкод установлен на нескольких узлах, требуется ли его запуск (создание экземпляра) только одним из партнеров (через организации)?
  2. Если я хочу, чтобы оба партнера могли изменять чейнкод, что это будет за процесс? Под процессом я имею в виду, что каждому партнеру организации необходимо будет изменить и обновить код на своем конце, или любой член организации может обновить цепной код, и он будет создан на всех партнерах?
  3. Отвечает ли политика одобрения за то, чтобы в цепном коде участвовали несколько пиров из разных организаций?

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

Источник для ChainCode: https://github.com/monarch0111/ordering-network/


person Abhishek    schedule 04.08.2018    source источник


Ответы (2)


  1. Цепной код необходимо создать на канале только один раз. Другими словами, вам нужно выполнить команду peer chaincode instantiate ...... только на одном из партнеров в канале. Если вы снова введете команду после того, как цепной код будет создан на канале, вы, вероятно, получите ошибку, подобную той, которую вы упомянули в Сценарии 2.

  2. Если вы хотите изменить существующий цепной код, мы также называем это обновлением цепного кода (сохраняя то же имя цепного кода при изменении номера версии). Вам нужно будет установить его на тех партнерах, которых вы хотите, чтобы они поддерживали, чтобы они могли имитировать транзакцию на этапе выполнения. Однако вам нужно вызвать peer chaincode upgrade ...... только один раз, как и в случае создания чейнкода. Это похоже на трансляцию и сообщение каждому участнику канала о том, что чейнкод обновлен до более новой версии.

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

  3. Политика подтверждения определяет, какие одноранговые узлы / сколько одноранговых узлов должны выполнять транзакцию (моделирование транзакции) и согласовывать одинаковый результат выполнения транзакции. Допустим, у вас есть три организации в канале, вы можете указать политику поддержки как AND ('Org1.member', 'Org2.member') или AND ('Org1.member', 'Org2.member', 'Org3.member' '), что зависит от ваших потребностей. Но, скажем так, определение нескольких одноранговых узлов из разных организаций в политике одобрения помогает гарантировать, что результаты выполнения будут детерминированными.

    Вы можете ссылаться на документы здесь для получения дополнительной информации. https://hyperledger-fabric.readthedocs.io/en/release-1.2/endorsement-policies.html

    Кроме того, я предлагаю вам взглянуть на ответ отсюда, чтобы понять интуицию, стоящую за этим. Рекомендации / рекомендации политики поддержки блокчейна Hyperledger

person Isaac Wong    schedule 05.08.2018

1 - Нет, не требуется. После того, как чейнкод был установлен на каждом одноранговом узле, создание сети должно выполняться только один раз.

2 - Здесь общий обзор рабочего процесса:

  • a - клиентское приложение отправляет запрос к цепным кодам, установленным на одноранговых узлах.
  • b - цепной код каждого однорангового узла подтверждает транзакцию в соответствии с политикой подтверждения.
  • c - Если транзакция собирает достаточно подтверждения, может быть зафиксировано, и цепной код изменяет состояние базы данных (изменение стоимости актива) и бухгалтерской книги.

Здесь официальная документация.

3 - Да, политика подтверждения определяет, какие одноранговые узлы должны подтвердить транзакцию, чтобы она считалась действительной.

person Leonardo Carraro    schedule 04.08.2018