This is a mirrored repository, synchronized daily from the source repository.
Contribute code
Sync code
README.md
RepChain
Официальный сайт RepChain: https://repchain.net
Документация RepChain:
Версия RepChain 2.0 без компиляции выпущена
Предварительные условия:
- на машине должна быть установлена Java 13 и настроены переменные среды;
- после распаковки одномашинного многоузлового развёртывания используйте скрипт запуска (start.sh или start.cmd) в Linux/Mac или дважды щёлкните start.cmd в Windows;
- для многомашинного многоузлового развёртывания используйте скрипты запуска (start01.sh до start05.sh или start01.cmd до start05.cmd), перед запуском необходимо изменить файл конфигурации.
Для справки:
- Akka — внутренний модуль системы использует реализацию Akka Actor;
- Akka Remoting Security — узлы используют TLS для безопасного обмена данными, поддерживаемый Akka Remote;
- Akka Serialization — обмен сообщениями между узлами осуществляется с помощью сериализации protobuf;
- ScalaPB — инструмент для генерации классов Scala из определений proto;
- protobufjs — на веб-стороне десериализует protobuf-поток байтов согласно определению proto;
- swagger-scala — поддержка API Swagger UI;
- json4s — предоставляет JSON-десериализацию входных объектов и JSON-сериализацию выходных объектов на уровне API;
- d3.js-force layout — автоматическая компоновка узлов входа/выхода из сети;
- leveldb for java — индексы блоков и транзакций;
- java security — управление хэшем, подписью, ключом и сертификатом осуществляется с использованием встроенных методов JDK.
Установка:
Слоистая архитектура:
- Слой данных: отвечает за определение формата данных, структура данных основана на определениях Protocol Buffers, и на этой основе реализуются обмен данными, проверка, хранение, чтение и поиск данных.
- Сетевой слой: использует TLS, предоставляемый JDK, для поддержки децентрализованной сети gossip, сетевое распространение поддерживает P2P и Pub/Sub.
- Консенсусный слой: завершает консенсус ввода и вывода блоков. Использует алгоритм CFRD, который учитывает как требования к своевременности транзакций, так и предотвращение сговора узлов, ввод консенсуса согласовывает порядок транзакций в блоках, а вывод консенсуса согласует результаты выполнения транзакционного порядка.
- Уровень контракта: обеспечивает контекстную среду для выполнения контрактов, поддерживает динамическое развертывание, выполнение во время выполнения и компиляцию контрактов.
- API-слой: предоставляет внешние интерфейсы, позволяя сторонним приложениям взаимодействовать с системой через Restful API, также позволяет разработчикам тестировать онлайн через Swagger UI. API-слой предоставляет функции подписи транзакций, поиска блоков и транзакций и т.д.
- Мониторинг слоя: собирает события/журналы в сети блокчейна и отправляет их на веб-сторону в формате Protocol Buffers для визуализации состояния в реальном времени и воспроизведения журналов с помощью H5-графики.
Запуск:
- скачать проект на локальный компьютер: git clone https://gitee.com/BTAJL/repchain.git;
- импортировать: открыть Idea IDE, File->New->Project or Project from VersionControl, использовать плагин sbt для импорта, использовать оболочку sbt для компиляции;
- правой кнопкой мыши щёлкнуть rep.app.Repchain.scala, запустить «RepChain» (одномашинная сеть из четырёх узлов);
- запустить конфигурацию VM параметров -Dlogback.configurationFile=conf/logback.xml (чтобы конфигурация logback вступила в силу);
- просмотреть состояние в реальном времени http://localhost:8081/web/g1.html;
- просмотреть API http://localhost:8081/swagger/index.html.
Изменение конфигурации:
- создать пары ключей RepChain и список доверенных сертификатов узла (см. «Руководство разработчика RepChain» 2.1.5);
- создать начальный блок (см. «Руководство разработчика RepChain» 2.1.6);
- настроить параметры системы (см. «Руководство разработчика RepChain» 2.1.7).
Упаковка:
- assembly — упаковать в jar-пакет для распределённого развёртывания.
Примеры приложений:
- BAR (Base App of RepChain) (https://gitee.com/linkel/bar) — предоставляет общие базовые функции, разработчики блокчейн-приложений могут либо напрямую использовать предоставленные функции, либо разрабатывать свои собственные DAppp на основе исходного кода;
- SBR (Storage Based on RepChain) (https://gitee.com/JayTsang/bar) — пример приложения для хранения данных на основе BAR;
- CRBB (Copyright Register Based on Blockchain) (https://gitee.com/linkel/CRBBV1.0) — пример применения цифровой регистрации авторских прав на основе RepChain.
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )