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

OSCHINA-MIRROR/BTAJL-repchain

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
FQA.md 22 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.03.2025 04:13 54175bf

Часто задаваемые вопросы

Что такое RepChain?

RepChain (реактивная лицензионная цепочка) — это первое базовое компонентное решение для лицензионной цепочки, реализованное с использованием реактивного программирования. Разработано лабораторией совместных исследований технологии блокчейна и её применения, компанией Beijing Lianqi Technology Co., Ltd. и Центром исследования технологий интернет-банковства Института прикладной математики Китайской академии наук. Внутри узлов сети и между ними используются асинхронные механизмы взаимодействия сообщениями; модульность и слабая связанность; новая система архитектуры, выделяющая такие характеристики как реактивность, слабую связанность, легкость, согласование в режиме кооперации, градацию развертывания контрактов, визуализацию состояния выполнения. На основе системы безопасности каналов, основанной на доступе к учётным записям, используется согласование в режиме кооперации вместо конкурентного согласования, что повышает актуальность транзакций и пропускную способность.

Какие особенности имеет RepChain?

RepChain характеризуется следующими особенностями: стандартизированностью, модульностью и визуализацией.

(1) Стандартизированность: использование проверенных временем стандартных компонентов, чтобы значительно снизить объём кода, обеспечивая стабильность основных функций и удовлетворение требований к реализации проекта;

(2) Модульность: взаимодействие узлов осуществляется через формат сообщений, внутри узлов — через состояние, что делает возможной замену модулей;

(3) Визуализация: прямое представление сложного процесса распространения транзакций и достижения консенсуса.

Описание особенностей RepChain?

Подходит для распределённой среды: относительно нереактивных реализаций в распределённой среде демонстрирует лучшую устойчивость (включая различные распределённые ошибки) и эластичность (через модель кластера акторов);

Дружественно к инженерам: использует зрелый язык Scala для разработки контрактов, поддерживающий единичные тесты контрактов и онлайн-симуляцию отладки в ScalaIDE, открытый код покрывает обычные функции союзной цепочки, предоставляя подробные примеры тестовых случаев;

Модульность: взаимодействие узлов сети осуществляется через формат сообщений, внутри узлов — через состояние, что позволяет легко заменять модули в зависимости от сценария;

Соответствие нормативам: поддерживает два типа шифровальных пакетов (государственные стандарты и государственные шифры), поддерживает интеграцию реального имени пользователя;

Стандартизированность: использует стандартные открытые компоненты, поддерживает плавное обновление связанных компонентов; внутренние модули поддерживают вывод стандартного формата журнала;

Визуализация: через реальное состояние графика прямое представление сложного процесса распространения транзакций и достижения консенсуса. Журналы каждого модуля внутри узла могут служить источниками данных для популярных реальных графиков, позволяющих анализировать детали производительности.

Для каких сценариев предназначен RepChain?

Предназначен для корпоративных применений, таких как финансы, здравоохранение, электронное хранение доказательств, юридическое хранение доказательств, недвижимость, страхование, банки, цифровые активы, Интернет вещей, цепочки поставок и другие области.

Какова история развития RepChain?

Начало первого кода: май 2017 года

Первый выпуск версии V0.7: май 2018 года, выпуск версии V0.8: декабрь 2018 года (включающей алгоритм ГОСТ)

Выпуск предварительной версии V1.0: май 2019 года

Какова архитектура RepChain?

Архитектура RepChain состоит из шести уровней, начиная с нижнего уровня до верхнего: уровень данных, уровень сети, уровень консенсуса, уровень контрактов, уровень API и уровень мониторинга. RepChain был создан после анализа и сравнения архитектур Bitcoin, Ethereum, Fabric и EOS.

На основе каких компонентов реализован RepChain?

Реализация RepChain основана на модели акторов, которая демонстрирует хорошую отказоустойчивость и удобство для изменения вычислительной мощности системных узлов. Например, во время оптимизации производительности RepChain было установлено, что этап запроса подписи является наиболее затрудненным (затраты времени около 120 миллисекунд), что снижало общую TPS (transactions per second). Поэтому было решено изменить обработку запроса подписи с последовательной обработки одним актором на параллельную обработку несколькими акторами. Это позволило снизить затраты времени на обработку подписи на 40 миллисекунд и увеличить TPS на 60, при этом количество изменённого кода составило менее 300 строк.

Какова производительность RepChain? Каково значение TPS?

Версия RepChain 1.0 прошла тестирование функциональности и производительности в рамках "2019 Trustworthy Blockchain Evaluation" от China Academy of Information and Communications Technology. Значение TPS составляет 1800.

Какие сценарии использования применяются сегодня для RepChain?

В настоящее время базовый компонент RepChain применяется в областях регистрации и трассировки доказательств, улучшения цепочек поставок, потребительских бонусов, IoT-трассировки и аренды недвижимости.

Есть ли рекомендованные примеры применения RepChain?> Пример применения блокчейна для цифровых сертификатов недвижимости получил награду за потенциальные решения на "2019 Trustworthy Summit", что может служить примером;

RepChain предлагает базовое приложение для блокчейна Base App, которое позволяет без вторжения интегрироваться с существующими системами управления счетами, быстро добавляя ключевые функции, такие как создание заявок на привязку ключей, подписывание и проверку транзакций.

Каковы отличия при разработке приложений на основе RepChain?

RepChain предоставляет интерфейсы приложения, где контракты не обязательно должны быть реализованы. Преимуществом легкого веса RepChain является то, что он помогает разработчикам более легко делать изменения. Отличием является возможность "добавления", когда разработчику предоставляются самые простые модули с примерами, и он может расширять их в соответствии со своими требованиями. RepChain сам по себе является модульным, "добавление" является его основной характеристикой, позволяющей разработчику изменять код RepChain в соответствии со специфическими условиями использования. При разработке также следует учитывать вопросы криптографии и сертификатов, что отличается от традиционных подходов.

Каков механизм консенсуса RepChain?

Используется алгоритм CFRD (консультационно-бесплатный случайный выбор с распределённой средой), который обеспечивает консенсус входящих и выходящих блоков. Этот алгоритм сочетает в себе требования к актуальности транзакций и защиту от злоумышленников. Консенсус входящих блоков достигается путём согласования порядка транзакций, а консенсус выходящих блоков — путём согласования результатов выполнения этих транзакций.

Команды установки и запуска RepChain в Linux

Выполните следующие команды:

  1. Установка зависимостей
sbt
  1. Компиляция файла
compile
  1. Запуск
java -Dlogback.configurationFile=conf/logback.xml -jar RepChain.jar 121000005l35120456.node1

Запуск в фоновом режиме:

nohup java -Dlogback.configurationFile=conf/logback.xml -jar RepChain.jar 121000005l35120456.node1 &
  1. Создание пакета
assembly

Обработка проблем с резервным копированием ключевых пар

Рекомендуется выполнять резервное копирование корневых сертификатов/пар ключей и сертификатов/пар ключей каждого узла.

Обработка проблем с кросс-цепочками

Рекомендуется выполнять резервное копирование ключевых пар в локальной сети или внутренней сети, чтобы предотвратить потерю. Корневые ключевые пары, если они потеряны, не могут быть восстановлены, а ключевые пары узлов, если они потеряны, не могут быть заменены.

Обработка проблем с утечкой ресурсов при распределении физических машин

Рекомендуется использовать максимальное количество ресурсов, рекомендуемая память — 2048М.

Проблемы с задержкой времени транзакций при несоответствии сертификатов и узлов

В каталоге RepChain/jks количество доверенных сертификатов должно соответствовать количеству узлов.

Проблемы с невозможностью создания блока Genesis при первой загрузке кода

Перед сборкой выполните RepChain в Scala IDE, чтобы сгенерировать необходимые файлы Scala, такие как sha2d85b1d0509c3afe12b0edcd964f7f00a1319727989e81e7131298422f7416de.scala.

Настройка консенсусных и неконсенсусных узлов в файле конфигурации repchain/conf/system.conf

Обязательным параметром является vote_node_list, содержащий псевдонимы узлов, участвующих в консенсусе. Узлы, не указанные в этом списке, не являются консенсусными узлами.

Как добавить новый узел в систему блокчейна?

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

Как исправить ошибки до заливки данных? (предвыполнение)

В предвыполнении пользователи вызывают API-интерфейсы для создания подписанных транзакций. После отправки транзакции на прокси-узел, если последний успешно выполняется локально, то он рассылает транзакцию всем сетям, в противном случае возвращает сообщение об ошибке отправителю. Данные блока, содержащиеся в блоке, нельзя удалить или изменить. Ошибочные действия могут быть компенсированы через логику контракта, а сами подписанные транзакции будут храниться в блоке данных без возможности их изменения или удаления.

Как защитить данные от изменения после заливки?

Блоки + цепь обеспечивают запрет на изменение или удаление уже созданных данных, что позволяет проверять целостность данных. Конкретнее, блокчейн сортирует транзакции, затем сохраняет их в виде блоков + цепи. Любое изменение или частичное удаление этих данных делает невозможной проверку данных согласно правилам блокчейна. Каждый подписанный элемент требует верификации источника и целостности, а также требуется верификация целостности и источников блоков, связанных через хэши.

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

Что такое механизм контрактов?> Реализация контрактов в RepChain использует зрелые механизмы Scala-классов, динамическое компилирование классов, загрузку классов и модель акторов для прозрачного распределённого вызова методов. Это обеспечивает следующие технические характеристики:

  1. Используется Scala — язык программирования, который является тьюринг-полным и был протестирован в реальных условиях;
  2. Поддерживается Scala IDE или любой другой универсальный IDE, поддерживающий Scala;
  3. Поддерживается отладка контрактов на одном компьютере, динамическая компиляция и загрузка;
  4. При выполнении методов контрактов используется строгое верификационное тестирование доступа, чтобы исключить возможность действий без должного права доступа.

Полный жизненный цикл управления данными на блокчейне и механизм утраты актуальности данных

  1. Полный жизненный цикл данных на блокчейне: данные на блокчейне могут только увеличиваться, но не удаляться или меняться; любые действия над данными на блокчейне должны быть записаны на блокчейн;
  2. Полный цикл управления: в управлении контрактами есть этапы развертывания, активации, выполнения, обслуживания и отказа; полный цикл относится к этим этапам;
  3. Механизм утраты актуальности данных: отправка нового запроса транзакции, который указывает на утрату актуальности данных, и этот процесс тоже должен быть записан на блокчейн.

Как создать карту взаимосвязей между данными на блокчейне?

Можно скачать данные с блокчейна и использовать традиционные способы для создания карты взаимосвязей.

Как исправить ошибки в данных, которые уже находятся на блокчейне, и какой это механизм?

Ошибки в данных, которые уже находятся на блокчейне, невозможно удалить или изменить. Единственный способ — отправить новую транзакцию, которая будет указывать на обновление предыдущих данных.

Как осуществляется полный трекинг и восстановление данных при возникновении ошибок на стороне клиента?

В системе блокчейна все узлы участвуют в записи данных, и эти данные являются открытыми и прозрачными для всех узлов. Узлы, соединённые через хэши, легче прослеживать по сравнению с традиционными методами. В журнале действий RepChain также можно осуществить трекинг и восстановление, а также по ID транзакции можно найти каждую транзакцию, что облегчает трекинг.

Поддерживаются ли SSL-защищённые передачи данных?

Да, поддерживается.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/BTAJL-repchain.git
git@api.gitlife.ru:oschina-mirror/BTAJL-repchain.git
oschina-mirror
BTAJL-repchain
BTAJL-repchain
master