Обновления Hyperledger Fabric CouchDB через Fauxton считаются действительными обновлениями, но в блокчейне нет записей - PullRequest
0 голосов
/ 28 января 2019

У меня есть сетевая настройка Hyperledger Fabric с 3-мя одноранговыми узлами, каждый из которых содержит контейнер персистентности CouchDB.

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

Однако записи оизменение состояния в блокчейне.Для него не создается транзакция.

  • Если это не транзакция блокчейна, вызывающая распространение состояния на все узлы, какой механизм вызывает его?

  • Как, черт возьми, изменение состояния через Fauxton считается действительным без какой-либо транзакции, лежащей в основе этого?

  • Какое ожидание для Fauxton всреда разработки?

1 Ответ

0 голосов
/ 11 февраля 2019

Если вы измените данные непосредственно в одноранговых CouchDB, они не будут распространены на другие одноранговые узлы.Вы не должны открывать порт CouchDB за пределами одноранговой сети, чтобы избежать несанкционированного доступа к данным.Только администратор однорангового узла должен иметь доступ к CouchDB, и у администратора нет стимула подделывать свои собственные данные.Позвольте мне объяснить подробнее ...

База данных состояний Hyperledger Fabric аналогична базе данных неизрасходованных транзакций в биткойнах, поскольку если администратор однорангового узла вмешивается в базу данных своего собственного однорангового узла, одноранговый узел не сможет убедить других одноранговых узлов.что транзакции, исходящие от него, действительны.В обоих случаях базу данных можно рассматривать как кэш текущего состояния блокчейна.И в обоих случаях, если база данных повреждена или повреждена, ее можно восстановить на одноранговом узле из блокчейна.В случае биткойнов это делается с помощью флага -reindex.В случае Fabric это делается путем удаления базы данных состояний и перезапуска однорангового узла.

В Fabric одноранговые узлы из разных организаций, как указано в политике одобрения, должны возвращать одинаковые результаты выполнения цепочечного кода для транзакций, подлежащих проверке.,Если данные состояния бухгалтерской книги были изменены или повреждены (в файловой системе CouchDB или LevelDB) на одноранговом узле, то результаты выполнения цепного кода будут несовместимы между подтверждающими одноранговыми узлами, будет обнаружен «плохой» одноранговый узел / организация, и клиент приложения долженвыкинуть результаты из плохого партнера / организации перед отправкой транзакции для заказа / фиксации.Если клиентское приложение пытается передать транзакцию с несогласованными результатами одобрения, независимо от этого, это будет обнаружено на всех одноранговых узлах во время проверки и транзакция будет признана недействительной.

...