Если я хорошо понимаю, вы хотите использовать внешние данные в блокчейне.
Во-первых, ничего общего с вашей проблемой, но как совет из моего личного опыта, если вы хотите углубиться в Fabric, не используйте Composer. Исходя из моего понимания и моих тестов, композитор подразумевается как тестовая вещь. Если вы хотите получить доступ ко всем элементам ткани, не используйте его.
Более того, Composer теперь просто обновлен, чтобы соответствовать новой версии Fabric. Это не получит никакого серьезного обновления. Это больше не активный проект. (на одном из их форумов есть сообщение от разработчиков)
Вернуться к вашему вопросу
Ваш цепной код написан на Node.js. Как следствие, у вас есть доступ ко всем пакетам node.js (у меня есть сомнения при использовании composer, исправьте меня, если я ошибаюсь).
Тогда вы можете просто отправлять HTTP-запросы за пределы вашей цепочки.
Обратите внимание, что Fabric позволяет использовать базу данных CouchDB в качестве состояния мира. Я не знаю, нужно ли вам хранить свои собственные данные или вам нужны именно внешние данные, но вы могли бы использовать их вместо запросов к Интернету.
Не использовать недетерминированные элементы
Не рекомендуется «использовать» внешний элемент, которым вы не управляете.
Причина в том, что алгоритм (консенсус) для создания блока является (и должен быть) чрезвычайно детерминированным, в отличие от эфириума / биткойна, где он является более вероятностным.
Благодаря механизму одобрения симуляция вашего цепного кода должна быть ТОЧНО одинаковой для каждого одобряющего партнера.
Представьте, что вы, например, запрашиваете температуру места в каком-то API. Ваш первый узел может получить 10 ° С, потому что он запросил температуру в момент времени t, но другой узел получил предложение о транзакции в момент времени t + 1, таким образом, температура изменилась, и он получил 10,01 ° С. Следствием этого является то, что симуляция, скорее всего, не даст одинаковый результат обоим партнерам, и тогда транзакция не будет действительной.