1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hyperledger-firefly

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Hyperledger FireFly

Hyperledger FireFly — это первый открытый Supernode: полный стек для предприятий, позволяющий создавать и масштабировать защищённые приложения Web3.

API FireFly для цифровых активов, потоков данных и блокчейн-транзакций позволяет радикально ускорить создание готовых к производству приложений на популярных цепочках и протоколах.

Начало работы с Hyperledger FireFly

Лучшее место для изучения FireFly — документация (https://hyperledger.github.io/firefly).

Там вы найдёте наше руководство по началу работы (https://hyperledger.github.io/firefly/latest/gettingstarted/), которое поможет вам запустить сеть Supernodes FireFly на вашем локальном компьютере за несколько минут.

Ваша среда разработки будет включать:

FireFly CLI FireFly Explorer UI FireFly Sandbox
CLI UI Sandbox

Взаимодействие с сообществом

— Присоединяйтесь к нам в Discord (https://discord.gg/hyperledger).

Техническая архитектура

Hyperledger FireFly имеет подключаемую архитектуру микросервисов. Всё подключаемо: от технологии блокчейна, стандартов токенов ERC и пользовательских смарт-контрактов до уровня распределения событий и частной базы данных.

Так что если ещё нет инструкций по превращению FireFly в Supernode для вашей любимой технологии блокчейна — не беспокойтесь. Почти наверняка существует простой способ подключить его, который избавит вас от необходимости заново создавать всю инфраструктуру вашего блокчейн-приложения с нуля.

Начните вносить свой вклад в Hyperledger FireFy

Есть много мест, где вы можете внести свой вклад, независимо от того, являются ли ваши навыки фронтенд-, бэкенд- или фуллстек-разработчиком.

Ознакомьтесь с нашим руководством для участников (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:

  • Управление схемой данных JSON и её проверка (архитектура расширяется до XML и более).
  • Логика проверки схемы JSON для исходящих и входящих сообщений.
  • Распространение схемы.
  • Интеграция с широковещательным плагином.

Хранилище двоичных данных:

  • Доступ к данным по идентификатору или хешу.
  • Хеширование данных и поддержание сопоставления с ссылками на полезные данные в хранилище больших двоичных объектов.
  • Интеграция с интерфейсом блокчейна.

Общий загрузчик:

  • Параллельная асинхронная загрузка.
  • Устойчивое повторение и восстановление после сбоя.
  • Уведомление агрегатора событий о завершении.

Менеджер идентичности:

  • Централизованное управление идентичностью между компонентами.
  • Разрешает комбинации ввода API-идентичности + ключа (короткие имена, форматирование и т. д.).
  • Преобразует зарегистрированные ключи для подписи в цепочке обратно в идентификаторы.
  • Интеграция с Интерфейсом блокчейна и подключаемым интерфейсом идентификации (TBD).

Диспетчер операций:

  • Отслеживание всех операций, выполняемых над внешними компонентами через плагины.

  • Обновление базы данных входными и выходными данными.

  • Обеспечение согласованной семантики повторов для плагинов. Плагин

  • Агрегатор:

    • Интегрируется с интерфейсом общего хранилища [Ss] плагин.
    • Интегрируется с плагином интерфейса блокчейна [Bi].
      — Обеспечивает отправку только действительных событий после того, как все данные становятся доступными.
      — Контекстно-зависимый, чтобы предотвратить сценарии блокировки мира.
  • Диспетчер подписок:

    • Создание и управление подписками.
    • Логика сопоставления сообщений с событиями.
  • Менеджер событий:

    • Управляет доставкой событий подключённым приложениям.
    • Интеграция с плагином обмена данными [Dx].
    • Интеграция с интерфейсом блокчейна [Bi].
  • Управление активами:

    • Создаёт/инициирует передачу токенов, индексирует и координирует их.
    • Токены Fungible (взаимозаменяемые): оцифрованное значение/расчёт (монеты).
    • Не взаимозаменяемые токены: NFT / глобальная уникальность / цифровые двойники.
    • Полная индексация истории транзакций.
    • REST/WebSockets.
  • ERC-20 / ERC-721 / ERC-1155: простая структура для создания коннекторов токенов.

  • Синхронный/асинхронный мост:

    • Предоставляет синхронные API запросов/ответов.
    • Преобразует в базовый API, управляемый событиями.
  • Пакетный менеджер:

    • Плагины диспетчеров.
    • База данных отделена от обработки основного API.
    • См. архитектурные диаграммы для получения дополнительной информации об активной/активной последовательности.
    • Управляет созданием экземпляров пакетного процессора.
  • Процессор пакетов:

    • Короткий срок службы агента, развёрнутого для сборки пакетов по запросу.
    • Собирает пакеты из 100 сообщений для эффективной привязки.
    • Автоматически выключается после периода бездействия.

Плагины: каждый плагин включает в себя прокладку 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Go и 6 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Недавние действия

Загружен новый тег v1.3.2-rc.3 3 месяца назад
Загружен новый тег v1.3.2-rc.2 3 месяца назад
Загружен новый тег v1.3.2-rc.1 3 месяца назад
Загружен новый тег v1.3.2 3 месяца назад
Загружен новый тег v1.3.1-rc2 3 месяца назад
Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/hyperledger-firefly.git
git@gitlife.ru:oschina-mirror/hyperledger-firefly.git
oschina-mirror
hyperledger-firefly
hyperledger-firefly
main