У меня возникла проблема с пакетом SDK Node для структуры Hyperledger.
Сведения о сети:
Теперь вернемся к проблеме. Я попытался развернуть Node.js SDK для Org1. Я создал профиль подключения, в котором есть информация о узлах Org1 Peers, Orderer и CA.
Пользователи зарегистрированы (Admin и user1).
Теперь, когда я пытаюсь вызвать транзакцию, есть два случая:
Обнаружение службы включено: в этом случае SDK пытается связаться с другими одноранговыми узлами в сети и одноранговыми узлами организации-создателя, но все возвращают ошибку превышения крайнего срока контекста.
Обнаружение службы отключено: вызывается успешно.
Я понятия не имею, почему транзакции вызова терпят неудачу, когда включено обнаружение службы.
На самом деле он развернут на 4 кластерах Kubernetes.
Возможно, ваши одноранговые узлы настроены неправильно, так как обнаружение сообщает об этом, и некоторые клиенты будут их использовать.
Да, якорные одноранговые узлы определены правильно, потому что данные синхронизируются между одноранговыми узлами.
И обозреватель Hyperledger работает и может обнаруживать других одноранговых узлов в сети.
Это означает только то, что пиры внутри k8 могут видеть других пиров. Якоря должны разрешаться правильно, когда их пытаются разрешить извне k8s. Здесь очень сложно заставить корректно работать k8s, так как в нем в корне сломан дизайн DNS.
Может ли проводник видеть одноранговые узлы в кластерах или за пределами кластера?
Да, он может обнаруживать каждого пира в сети.
вы настроили CORE_PEER_GOSSIP_EXTERNALENDPOINT, потому что для обнаружения службы требуется эта переменная env
да он настроен
Вышеупомянутая проблема решена, когда я добавил псевдонимы хостов в файл /etc/hosts.
Мне нужно добавить имена хостов и IP для каждого узла в файлы /etc/hosts.
После добавления имен хостов SDK заработал.
Спасибо
Можете ли вы добавить свой файл компоновки core.yaml/docker? Помогли бы решить вашу проблему.