Hyperledger FireFly
Hyperledger FireFly — это первый открытый Supernode: полный стек для предприятий, позволяющий создавать и масштабировать защищённые приложения Web3.
API FireFly для цифровых активов, потоков данных и блокчейн-транзакций позволяет радикально ускорить создание готовых к производству приложений на популярных цепочках и протоколах.
Лучшее место для изучения FireFly — документация (https://hyperledger.github.io/firefly).
Там вы найдёте наше руководство по началу работы (https://hyperledger.github.io/firefly/latest/gettingstarted/), которое поможет вам запустить сеть Supernodes FireFly на вашем локальном компьютере за несколько минут.
Ваша среда разработки будет включать:
FireFly CLI | FireFly Explorer UI | FireFly Sandbox |
---|---|---|
— Присоединяйтесь к нам в Discord (https://discord.gg/hyperledger).
Hyperledger FireFly имеет подключаемую архитектуру микросервисов. Всё подключаемо: от технологии блокчейна, стандартов токенов ERC и пользовательских смарт-контрактов до уровня распределения событий и частной базы данных.
Так что если ещё нет инструкций по превращению FireFly в Supernode для вашей любимой технологии блокчейна — не беспокойтесь. Почти наверняка существует простой способ подключить его, который избавит вас от необходимости заново создавать всю инфраструктуру вашего блокчейн-приложения с нуля.
Есть много мест, где вы можете внести свой вклад, независимо от того, являются ли ваши навыки фронтенд-, бэкенд- или фуллстек-разработчиком.
Ознакомьтесь с нашим руководством для участников (https://hyperledger.github.io/firefly/latest/contributors/) и добро пожаловать!
В настоящее время вы находитесь в «основном» репозитории, написанном на Go и содержащем сервер API и центральный механизм оркестровки. Здесь вы найдёте интерфейсы плагинов для коннекторов микросервисов, написанных на различных языках, таких как TypeScript и Java, а также тяжёлые компоненты времени выполнения.
Другие репозитории, которые могут вас заинтересовать, содержат эти компоненты микросервисов, пользовательский опыт, CLIs и образцы.
Обратите внимание, что ниже перечислены только открытые исходные репозитории и плагины.
— Менеджер транзакций — https://github.com/hyperledger/firefly-transaction-manager. — RLP & ABI кодирование, утилиты KeystoreV3 и средство подписи secp256k1 — https://github.com/hyperledger/firefly-signer. — FFCAPI эталонный коннектор для цепочек EVM — https://github.com/hyperledger/firefly-evmconnect. — Публичные цепочки, совместимые с EVM: узнайте больше в документации (https://hyperledger.github.io/firefly). Родительский компонент системы:
Компонент широковещательной рассылки:
Приватный обмен сообщениями:
Групповой менеджер:
Управление личными данными и их проверка:
Валидатор JSON:
Хранилище двоичных данных:
Общий загрузчик:
Менеджер идентичности:
Диспетчер операций:
Отслеживание всех операций, выполняемых над внешними компонентами через плагины.
Обновление базы данных входными и выходными данными.
Обеспечение согласованной семантики повторов для плагинов. Плагин
Агрегатор:
Диспетчер подписок:
Менеджер событий:
Управление активами:
ERC-20 / ERC-721 / ERC-1155: простая структура для создания коннекторов токенов.
Синхронный/асинхронный мост:
Пакетный менеджер:
Процессор пакетов:
Плагины: каждый плагин включает в себя прокладку Go и удалённый агент микросервиса (если требуется).
Интерфейс блокчейна:
Менеджер транзакций: простая структура для создания блокчейн-коннекторов.
Токен-интерфейс. │ * Стандартизирует основные концепции: пулы токенов, переводы, одобрения │ │ интерфейс │ * Может быть легко адаптирован для различных стандартов токенов │ └───────────────┘ * Поддерживает простую реализацию пользовательских стандартов токенов через микросервисный коннектор │ [REST/WebSockets] │ ┌─────┴─────────────┐ ┌──────────┐ ┌─ │ │ ERC-20 / ERC-721 ├───┤ ERC-1155 ├───┤ Простой фреймворк для создания коннекторов токенов │ └───────────────────┘ └──────────┘ └─ │ │ ┌───────────────┐ - P2P-система с адресацией файлов по содержимому ├───────────┤ общий [Si]│ * Загрузка и скачивание полезной нагрузки │ │ хранилище │ * Управление ссылками на полезную нагрузку │ │ интерфейс │ │ └─────┬─────────┘ │ │ │ ├───────── ... расширяется до любой системы общего хранилища, доступной всем участникам │ ┌─────┴─────────┐ │ │ ipfs │ │ └───────────────┘ │ │ ┌───────────────┐ - Обмен личными данными ├───────────┤ обмен данными [Dx]│ * Хранилище больших двоичных объектов │ │ │ * Безопасное приватное сообщение │ │ └─────┬─────────┘ * Безопасная передача файлов │ └─────┬─────────┘ │ │ │ ├─────────────────────┬────────── ... расширяется до любых технологий обмена личными данными │ ┌─────┴─────────┐ ┌───────┴───────┐ │ │ https / MTLS │ │ Kaleido │ │ └───────────────┘ └───────────────┘ │ │ ┌───────────────┐ - Интерфейс аутентификации и авторизации API ├───────────┤ api auth [Aa]│ * Аутентифицирует учётные данные безопасности (токены JWT OpenID Connect и т. д.) │ │ │ * Извлекает идентификаторы API/пользователя (для сопоставления с интерфейсом идентификации) │ └─────┬─────────┘ * Точка применения для точного контроля доступа к API │ │ │ ├─────────────────────┬────────── ... расширяется на другие технологии единого входа │ ┌─────┴─────────┐ ┌───────┴───────┐ │ │ apikey │ │ jwt │ │ └───────────────┘ └───────────────┘ │ │ ┌───────────────┐ - Взаимодействие с базой данных ├───────────┤ база данных [Di]│ * Создание, чтение, обновление, удаление (CRUD) действий │ │ интерфейс │ * Фильтрация и определение интерфейса обновления │ └─────┬─────────┘ * Миграции и индексы │ │ │ ├───────── ... расширяется до NoSQL (CouchDB / MongoDB и т.д.) │ ┌─────┴─────────┐ │ │ sqlcommon │ │ └─────┬─────────┘ │ ├───────────────────────┬───────── ... расширяется на другие базы данных SQL │ ┌─────┴─────────┐ ┌───────┴────────┐ │ │ postgres │ │ sqlite3 │ │ └───────────────┘ └────────────────┘ │ │ ┌───────────────┐ - Соединяет основной механизм событий с внешними фреймворками и приложениями ├───────────┤ события [Ei]│ * Поддерживает долгосрочные (долгоживущие) и эфемерные подписки на события │ │ интерфейс │ * Пакетная обработка, фильтрация, всё обрабатывается в ядре перед передачей │ └─────┬─────────┘ * Интерфейс поддерживает подключаемые модули (websocket) и подключаемые модули «выход» (стиль выполнения брокера) │ │ │ ├───────────────────────┬────────── ... расширяется на дополнительные шины событий (Kafka, NATS, AMQP и т. д.) │ ┌─────┴─────────┐ ┌───────┴────────┐ │ │ websockets │ │ webhooks │ │ └───────────────┘ └────────────────┘ │ ... больше TBD
Дополнительные служебные фреймворки ┌───────────────┐ - REST API клиент │ rest [Re]│ * Обеспечивает удобство и логирование │ клиент │ * Стандартизация аутентификации, конфигурации и логики повтора └───────────────┘ * Построен на Resty
┌───────────────┐ - Клиент WebSocket
│ wsclient [Wc]│ * Обеспечивает удобство и логирование │ * Стандартизирует логику аутентификации, конфигурации и переподключения
└───────────────┘ * Построен на основе Gorilla WebSockets
┌───────────────┐ - Фреймворк для перевода
│ i18n [In]│ * Все переводы должны быть добавлены в `en_translations.json` с ключом `FF10101`
│ │ * Ошибки заключены в оболочку, предоставляя дополнительные функции из пакета `errors` (стек и т. д.)
└───────────────┘ * Поддерживаются также описания переводов, такие как описание OpenAPI
┌───────────────┐ - Фреймворк логирования
│ log [Lo]│ * Фреймворк логирования (logrus) интегрирован с основанным на контексте тегированием
│ │ * Контекст используется во всём коде для передачи контекста вызова API и контекста логирования
└───────────────┘ * Пример: каждый вызов API имеет идентификатор, который можно отследить, а также время ожидания
┌───────────────┐ - Конфигурация
│ config [Co]│ * Файловая система и система переменных окружения (viper)
│ │ * Основные ключи конфигурации определены централизованно
└───────────────┘ * Плагины интегрируются, возвращая свою структуру конфигурации для демаршалинга (теги JSON)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )