1. Модель разработки приложений Fabric
Разработка Fabric включает в себя разработку клиентского приложения и смарт-контракта (чейнкода).После
разработки чейнкода он развертывается на одноранговом узле сети блокчейн. Реестр управляется через чейнкод.При вызове транзакции фактически вызывается метод функции в чейнкоде, который реализует бизнес-логику и выполняет операции получения, помещения и удаления в реестре.
Клиентское приложение предоставляет пользовательский интерфейс, вызывает SDK структуры и выполняет операции и транзакции блокчейна.Это
обучение посвящено разработке клиентских приложений .
2. Знакомство с интерфейсом Fabric SDK
Fabric предоставляет SDK для вызовов приложений.SDK включает в себя такие интерфейсы, как обработка транзакций, управление участниками, запросы блокчейна и обработка событий.
Пакет SDK Fabric имеет следующие характеристики. Многие вызовы базового интерфейса возвращаются асинхронно, а протокол gRPC используется для передачи данных в обоих направлениях.
gRPC в сочетании с буфером протокола может уменьшить объем передаваемых данных и повысить производительность передачи по сети.
Поддерживаемые языки: Go, Java, JavaScript и Python. В этой конфигурации мы берем разработку на языке Java в качестве примера.
Используйте тот же интерфейс, что и внутренние модули, уменьшая открытость портов и риски безопасности
Вся сеть Fabric, за исключением fabric-ca, использует протокол HTTP, остальные используют протокол GRPC.
Интерфейсный модуль Fabric SDK
Fabric SDK определяет два типа интерфейсов модулей: один обращается к интерфейсу Fabric-CA, а другой — к сетевому интерфейсу Fabric, где Fabric-CA является необязательным и может быть заменен другими зрелыми сторонними системами CA.
Модули, предоставляемые Fabric SDK, следующие:
Модуль HFClient : запись приложения, обеспечивающая управление каналами, управление цепочками кодов, хранение данных и функции, связанные с криптографией. Каждый экземпляр HFC соответствует сети блокчейна, включая узлы учета, узлы сортировки и т. д. Если прикладному уровню требуется доступ к нескольким сетям, можно создать несколько экземпляров HFC.Модуль конфигурации : при инициализации HFC информация о конфигурации должна быть получена в автономном режиме.Модуль конфигурации включает в себя доверенные корневые сертификаты, сортировку сертификатов узлов обслуживания и IP-адресов, сертификатов узлов учета и IP-адресов и т. д. После того, как модуль конфигурации прочитан, он передается в HFC.
Модуль канала : соответствующий экземпляру канала, канал необходимо инициализировать после настройки заказа и однорангового узла, а запрос на получение блока конфигурации отправляется на узел службы заказа во время инициализации.
Одноранговый модуль : одноранговый узел — это узел, на который модуль HFC отправляет запросы подтверждения и запросы транзакций. Экземпляр равноправного узла содержит такую информацию, как имя узла, адрес, роль, регистрационный сертификат и т. д.
Модуль «Заказ» : узел «Заказ» — это узел, в который модуль HFC отправляет заказ транзакций. Экземпляр заказа содержит информацию об адресе узла службы сортировки и определяет интерфейс для отправки атомарных широковещательных запросов и получения блоков.Модуль
пользователя : представляет объект, заполнивший сертификат регистрации и ключ подписи.Сертификат регистрации должен быть доверенным ЦС. выпущенной сетью блокчейн
Существует разница между идентификацией пользователя и идентификацией одноранговой сети. Идентификатор узла не может получить доступ к секретному ключу, но может только проверить подпись
3. Процесс разработки приложения Fabric
Общие этапы процесса разработки приложения Fabric следующие:
1. Создать канал на сортировочном узле
2. Регистрация и регистрация пользователей
3. Одноранговый узел присоединяется к каналу
4. Установить и создать экземпляр кода цепочки через одноранговый узел
5. Инициировать транзакцию и сгенерировать блок
Инициируйте транзакцию, как показано на рисунке ниже:
> 4. Процесс разработки приложения Fabric
Если прикладной уровень напрямую работает с Fabric SDK, процесс будет непростым, и будет много избыточного кода.Как правило, Framework будет упакован для блокчейна между прикладным уровнем и Fabric SDK, упрощая прикладной уровень. и блоки.Сложность стыковки цепочки, для прикладного уровня нет необходимости заботиться о базовой логике и процессе блокчейна
Введение в исходный код Fabric:
Введение в исходный код Fabric-CA:
API: реализация кода, связанного с интерфейсом CA.
cmd/fabric-ca-client: реализация кода, связанного с клиентом ЦС.
cmd/fabric-ca-server: Реализация функций, реализованных кодами, связанными с сервером ЦС.
lib/metadata:: реализация кода операции с базой данных
Пять. Рекомендации по разработке приложений Fabric
Разберитесь в работе Fabric и процессе транзакций до начала разработки приложения, иначе вы будете в убытке
Особое внимание необходимо уделить параметрам конфигурации Fabric, включая шифрование, время ожидания и т. д.
Почти каждый SDK имеет больше или меньше ошибок. Некоторые ошибки в основном вызваны самим SDK, а некоторые - проблемами с Fabric. После обнаружения этих проблем мы можем судить, какой шаг был неправильным, в соответствии с процессом транзакции. , а затем вы можете изменить уровень журнала на каждом узле для получения сообщений об ошибках. Перемещение на определенную строку кода в SDK для отладки
Необходимо обратить внимание на соответствие версии SDK и версии платформы Fabric, так как разные версии могут быть несовместимы.
Новичкам рекомендуется начать обучение с примеров E2E, которые поставляются с Fabric, что позволит получить вдвое больший результат при вдвое меньшем усилии.