Hyperledger Fabric: невозможно вызвать с помощью Node SDK

У меня возникла проблема с пакетом SDK Node для структуры Hyperledger.

Сведения о сети:

  1. Сеть состоит из 4 организаций, каждая из которых развернута в разных кластерах Kubernetes.
  2. У каждой организации есть 2 одноранговых узла, которые присоединились к одному каналу, скажем, mychannel.
  3. В каждой организации работает 1 ЦС.
  4. Служба заказа Рафт.
  5. CouchDB используется, как указаноb.
  6. Вызовы из CLI также работают нормально, и данные синхронизируются между всеми 8 одноранговыми узлами.
  7. Проводник Hypelredger запущен и работает с данными об одной организации и может перечислить все остальные 6 одноранговых узлов на панели инструментов.

Теперь вернемся к проблеме. Я попытался развернуть Node.js SDK для Org1. Я создал профиль подключения, в котором есть информация о узлах Org1 Peers, Orderer и CA.

Пользователи зарегистрированы (Admin и user1).

Теперь, когда я пытаюсь вызвать транзакцию, есть два случая:

  1. Обнаружение службы включено: в этом случае SDK пытается связаться с другими одноранговыми узлами в сети и одноранговыми узлами организации-создателя, но все возвращают ошибку превышения крайнего срока контекста.

  2. Обнаружение службы отключено: вызывается успешно.

Я понятия не имею, почему транзакции вызова терпят неудачу, когда включено обнаружение службы.

Можете ли вы добавить свой файл компоновки core.yaml/docker? Помогли бы решить вашу проблему.

Risabh Sharma 31.07.2019 00:15

На самом деле он развернут на 4 кластерах Kubernetes.

Sahil 07.08.2019 09:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
114
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, ваши одноранговые узлы настроены неправильно, так как обнаружение сообщает об этом, и некоторые клиенты будут их использовать.

Да, якорные одноранговые узлы определены правильно, потому что данные синхронизируются между одноранговыми узлами.

Sahil 30.07.2019 08:15

И обозреватель Hyperledger работает и может обнаруживать других одноранговых узлов в сети.

Sahil 30.07.2019 08:15

Это означает только то, что пиры внутри k8 могут видеть других пиров. Якоря должны разрешаться правильно, когда их пытаются разрешить извне k8s. Здесь очень сложно заставить корректно работать k8s, так как в нем в корне сломан дизайн DNS.

nyet 30.07.2019 08:16

Может ли проводник видеть одноранговые узлы в кластерах или за пределами кластера?

nyet 30.07.2019 08:17

Да, он может обнаруживать каждого пира в сети.

Sahil 30.07.2019 08:18

вы настроили CORE_PEER_GOSSIP_EXTERNALENDPOINT, потому что для обнаружения службы требуется эта переменная env

mohammed 30.07.2019 14:13

да он настроен

Sahil 31.07.2019 05:58
Ответ принят как подходящий

Вышеупомянутая проблема решена, когда я добавил псевдонимы хостов в файл /etc/hosts.

Мне нужно добавить имена хостов и IP для каждого узла в файлы /etc/hosts.

После добавления имен хостов SDK заработал.

Спасибо

Другие вопросы по теме