Hyperledger Fabric: мировые состояния, каналы и «исследователь гиперледжеров» против «историк композиторов гиперледжеров» - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть несколько вопросов, касающихся Hyperledger-Fabric, на которые я не нашел внятного ответа в документации.

1.) Состояние (я) мира

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

enter image description here

Так правильно ли я понимаю, что бухгалтерская книга сохраняет не только все транзакции, но ТАКЖЕ все мировые состояния, которые когда-либо существовали?Если это так, зачем сохранять все состояния из состояния 0 в текущее состояние?Почему бы просто не сохранить а) все транзакции и б) только текущее состояние мира?Разве этого не достаточно?

                    ****************************

2.) Каналы и состояние мира

Предположим, у меня есть приложение Hyperledger-Fabric, в котором разные участники могут комментировать фотографии профиля друг друга.

Предположим, что есть еще три члена ("организации"): Адам, Боб и Сара.

Кроме того, между Адамом и Бобом есть канал.И есть второй канал между Адамом и Сарой.

Очевидно, это означает, что транзакции

  • между Адамом и Бобом не видны транзакциям Сары
  • между Адамоми Сара не видны Бобу

Предположим, существует транзакция с именем "addCommentToProfile", которую можно использовать для добавления комментариев в другие профили.

Предположим, Сара отправляет транзакцию "addCommentToProfile", добавив комментарий "ваши волосы выглядят очень хорошо!"в профиль Адама.

Очевидно, что транзакция не видна Бобу (потому что она является лишь частью канала между Адамом и Сарой.)

Но является результатом транзакции (новаякомментарий "ваши волосы выглядят очень хорошо!" в профиле Адама) также невидим?

Другими словами, учитывая, что Адам участвует в двух разных каналах - существуют ли два разных состояния мира для Адама - одно, которое видно Бобу, и одно, которое видно Саре?

                 ****************************

3.) «Hyperledger Composer Historian» против «Hyperledger Composer Historian»

Есть «Hyperledger Composer Historian» (https://hyperledger.github.io/composer/v0.16/business-network/historian) и «Hyperledger Explorer» (https://www.hyperledger.org/projects/explorer)

Являются ли они одним и тем же (то есть, если кто-то использует платформу Hyperledger Composer Framework, то «Проводник Hyperledger» просто называется «Историк Hyperledger Composer»)? Или это две разные вещи?это разные вещи: как я могу запретить участникам бизнес-сети доступ к записям "Hyperledger Explorer"?

1 Ответ

0 голосов
/ 12 сентября 2018

1.) World State - База данных состояний не содержит истории, хотя существует номер версии, в базе данных состояний хранится только текущая версия.

2.) Каналы - каналы полностью разделены, поэтому в вашем примере Адам имеет 2 профиля, по одному на каждый канал.Ваш цепной код (Smart Contract) будет отдельно установлен и создан на каждом канале.

3.) Composer и Explorer - совершенно разные.Composer построен на основе Fabric для создания уровня абстракции на основе Fabric и для создания упрощенной модели программирования .Затем Composer включил функцию Historian для упрощения аудита.

Вы должны знать, что основной поставщик кода в Composer (IBM) решил значительно сократить усилия по разработке на Composer и сосредоточиться на улучшении опыта разработчика с помощью FabricУзел SDK.Больше деталей решения здесь .Так что, если вы планируете быстрое POC или Demo в краткосрочной перспективе, Composer очень полезен, но если вы смотрите на значительный проект непрерывного развития, вы можете подумать внимательно.

Если вы решите не использоватьComposer, History - это ключевая функция Blockchains, а собственная модель программирования Fabric позволяет получить доступ к истории объекта, но это не так просто, как функция Historian в Composer.

Hyperledger Explorer - это дружественный просмотрщик для Hyperledger Fabric (теперь возможно вызывать транзакции через REST API).

...