RepChain (реактивная лицензионная цепочка) — это первое базовое компонентное решение для лицензионной цепочки, реализованное с использованием реактивного программирования. Разработано лабораторией совместных исследований технологии блокчейна и её применения, компанией Beijing Lianqi Technology Co., Ltd. и Центром исследования технологий интернет-банковства Института прикладной математики Китайской академии наук. Внутри узлов сети и между ними используются асинхронные механизмы взаимодействия сообщениями; модульность и слабая связанность; новая система архитектуры, выделяющая такие характеристики как реактивность, слабую связанность, легкость, согласование в режиме кооперации, градацию развертывания контрактов, визуализацию состояния выполнения. На основе системы безопасности каналов, основанной на доступе к учётным записям, используется согласование в режиме кооперации вместо конкурентного согласования, что повышает актуальность транзакций и пропускную способность.
RepChain характеризуется следующими особенностями: стандартизированностью, модульностью и визуализацией.
(1) Стандартизированность: использование проверенных временем стандартных компонентов, чтобы значительно снизить объём кода, обеспечивая стабильность основных функций и удовлетворение требований к реализации проекта;
(2) Модульность: взаимодействие узлов осуществляется через формат сообщений, внутри узлов — через состояние, что делает возможной замену модулей;
(3) Визуализация: прямое представление сложного процесса распространения транзакций и достижения консенсуса.
Подходит для распределённой среды: относительно нереактивных реализаций в распределённой среде демонстрирует лучшую устойчивость (включая различные распределённые ошибки) и эластичность (через модель кластера акторов);
Дружественно к инженерам: использует зрелый язык Scala для разработки контрактов, поддерживающий единичные тесты контрактов и онлайн-симуляцию отладки в ScalaIDE, открытый код покрывает обычные функции союзной цепочки, предоставляя подробные примеры тестовых случаев;
Модульность: взаимодействие узлов сети осуществляется через формат сообщений, внутри узлов — через состояние, что позволяет легко заменять модули в зависимости от сценария;
Соответствие нормативам: поддерживает два типа шифровальных пакетов (государственные стандарты и государственные шифры), поддерживает интеграцию реального имени пользователя;
Стандартизированность: использует стандартные открытые компоненты, поддерживает плавное обновление связанных компонентов; внутренние модули поддерживают вывод стандартного формата журнала;
Визуализация: через реальное состояние графика прямое представление сложного процесса распространения транзакций и достижения консенсуса. Журналы каждого модуля внутри узла могут служить источниками данных для популярных реальных графиков, позволяющих анализировать детали производительности.
Предназначен для корпоративных применений, таких как финансы, здравоохранение, электронное хранение доказательств, юридическое хранение доказательств, недвижимость, страхование, банки, цифровые активы, Интернет вещей, цепочки поставок и другие области.
Начало первого кода: май 2017 года
Первый выпуск версии V0.7: май 2018 года, выпуск версии V0.8: декабрь 2018 года (включающей алгоритм ГОСТ)
Выпуск предварительной версии V1.0: май 2019 года
Архитектура RepChain состоит из шести уровней, начиная с нижнего уровня до верхнего: уровень данных, уровень сети, уровень консенсуса, уровень контрактов, уровень API и уровень мониторинга. RepChain был создан после анализа и сравнения архитектур Bitcoin, Ethereum, Fabric и EOS.
Реализация RepChain основана на модели акторов, которая демонстрирует хорошую отказоустойчивость и удобство для изменения вычислительной мощности системных узлов. Например, во время оптимизации производительности RepChain было установлено, что этап запроса подписи является наиболее затрудненным (затраты времени около 120 миллисекунд), что снижало общую TPS (transactions per second). Поэтому было решено изменить обработку запроса подписи с последовательной обработки одним актором на параллельную обработку несколькими акторами. Это позволило снизить затраты времени на обработку подписи на 40 миллисекунд и увеличить TPS на 60, при этом количество изменённого кода составило менее 300 строк.
Версия RepChain 1.0 прошла тестирование функциональности и производительности в рамках "2019 Trustworthy Blockchain Evaluation" от China Academy of Information and Communications Technology. Значение TPS составляет 1800.
В настоящее время базовый компонент RepChain применяется в областях регистрации и трассировки доказательств, улучшения цепочек поставок, потребительских бонусов, IoT-трассировки и аренды недвижимости.
RepChain предлагает базовое приложение для блокчейна Base App, которое позволяет без вторжения интегрироваться с существующими системами управления счетами, быстро добавляя ключевые функции, такие как создание заявок на привязку ключей, подписывание и проверку транзакций.
RepChain предоставляет интерфейсы приложения, где контракты не обязательно должны быть реализованы. Преимуществом легкого веса RepChain является то, что он помогает разработчикам более легко делать изменения. Отличием является возможность "добавления", когда разработчику предоставляются самые простые модули с примерами, и он может расширять их в соответствии со своими требованиями. RepChain сам по себе является модульным, "добавление" является его основной характеристикой, позволяющей разработчику изменять код RepChain в соответствии со специфическими условиями использования. При разработке также следует учитывать вопросы криптографии и сертификатов, что отличается от традиционных подходов.
Используется алгоритм CFRD (консультационно-бесплатный случайный выбор с распределённой средой), который обеспечивает консенсус входящих и выходящих блоков. Этот алгоритм сочетает в себе требования к актуальности транзакций и защиту от злоумышленников. Консенсус входящих блоков достигается путём согласования порядка транзакций, а консенсус выходящих блоков — путём согласования результатов выполнения этих транзакций.
Выполните следующие команды:
sbt
compile
java -Dlogback.configurationFile=conf/logback.xml -jar RepChain.jar 121000005l35120456.node1
Запуск в фоновом режиме:
nohup java -Dlogback.configurationFile=conf/logback.xml -jar RepChain.jar 121000005l35120456.node1 &
assembly
Рекомендуется выполнять резервное копирование корневых сертификатов/пар ключей и сертификатов/пар ключей каждого узла.
Рекомендуется выполнять резервное копирование ключевых пар в локальной сети или внутренней сети, чтобы предотвратить потерю. Корневые ключевые пары, если они потеряны, не могут быть восстановлены, а ключевые пары узлов, если они потеряны, не могут быть заменены.
Рекомендуется использовать максимальное количество ресурсов, рекомендуемая память — 2048М.
В каталоге RepChain/jks количество доверенных сертификатов должно соответствовать количеству узлов.
Перед сборкой выполните RepChain в Scala IDE, чтобы сгенерировать необходимые файлы Scala, такие как sha2d85b1d0509c3afe12b0edcd964f7f00a1319727989e81e7131298422f7416de.scala.
Обязательным параметром является
vote_node_list
, содержащий псевдонимы узлов, участвующих в консенсусе. Узлы, не указанные в этом списке, не являются консенсусными узлами.
Новый узел можно сначала настроить как ноду без участия в консенсусе, а после завершения синхронизации данных привязать его к консенсусному процессу.
В предвыполнении пользователи вызывают API-интерфейсы для создания подписанных транзакций. После отправки транзакции на прокси-узел, если последний успешно выполняется локально, то он рассылает транзакцию всем сетям, в противном случае возвращает сообщение об ошибке отправителю. Данные блока, содержащиеся в блоке, нельзя удалить или изменить. Ошибочные действия могут быть компенсированы через логику контракта, а сами подписанные транзакции будут храниться в блоке данных без возможности их изменения или удаления.
Блоки + цепь обеспечивают запрет на изменение или удаление уже созданных данных, что позволяет проверять целостность данных. Конкретнее, блокчейн сортирует транзакции, затем сохраняет их в виде блоков + цепи. Любое изменение или частичное удаление этих данных делает невозможной проверку данных согласно правилам блокчейна. Каждый подписанный элемент требует верификации источника и целостности, а также требуется верификация целостности и источников блоков, связанных через хэши.
Каждая транзакция, созданная системой блокчейна, должна содержать цифровую подпись оператора, а верификаторы должны иметь сертификаты подписей операторов данных для проверки их истинности, что гарантирует отсутствие подделок.
Можно скачать данные с блокчейна и использовать традиционные способы для создания карты взаимосвязей.
Ошибки в данных, которые уже находятся на блокчейне, невозможно удалить или изменить. Единственный способ — отправить новую транзакцию, которая будет указывать на обновление предыдущих данных.
В системе блокчейна все узлы участвуют в записи данных, и эти данные являются открытыми и прозрачными для всех узлов. Узлы, соединённые через хэши, легче прослеживать по сравнению с традиционными методами. В журнале действий RepChain также можно осуществить трекинг и восстановление, а также по ID транзакции можно найти каждую транзакцию, что облегчает трекинг.
Да, поддерживается.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )