Score
0
Watch 96 Star 151 Fork 57

区块链技术与应用联合实验室 / RepChainScalaApache-2.0

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

RepChain

RepChain文档 单机多节点部署 多机多节点部署

参考阅读

  • akka ——系统内部模块采用akka actor实现
  • akka remoting security ——节点之间安全通信采用akka Remote支持的TLS
  • akka serialization——节点之间消息交互采用protobuf序列化
  • scalaPB——从proto定义生成Scala类的工具
  • protobufjs——在web端根据proto定义,反序列化protobuf字节流
  • swagger-scala——API支持Swagger UI
  • json4s——在API层提供输入对象的json反序列化,返回结果的json序列化
  • d3.js-force layout——入/离网节点的自动布局
  • leveldb for java——存取Blocks、Transactions索引
  • java security——hash、签名、密钥对及证书管理均采用jdk内置方法

安装

分层架构

RepChain分层架构图

  • 数据层:负责数据格式定义,数据结构采用Protocol Buffers定义文件,并以此为基础实现数据的交换、验证、存储、读取及检索
  • 网络层:采用JDK内置的TLS实现,支持入网许可验证,在此基础上进行去中心化的gossip组网,网络传播支持P2P和Pub/Sub两种方式
  • 共识层:完成区块的输入共识和输出共识。采用兼顾实时性和安全性的CFRD算法,既照顾到交易的实时性要求,又能在一定程度防止节点串通作弊;输入共识对入块的交易顺序达成一致,输出共识对交易顺序执行的结果达成一致
  • 合约层:为合约执行提供上下文环境,支持合约的动态部署、运行时加载和编译执行
  • API层:提供外部接口,允许第三方应用以Restful的形式与系统交互,并允许开发者通过Swagger UI进行在线测试。API层提供交易签名提交、区块和交易检索等基本功能
  • 监控层:在区块链网络中收集事件/日志,并将其以Protocol Buffers的格式推送至Web端,以H5图形技术进行实时状态的可视化展示和日志回放

运行

  • git clone https://gitee.com/BTAJL/repchain.git 下载项目到本地
  • sbt 在项目的根目录下下载项目依赖项,可以配置仓库或者使用阿里镜像
  • compile 编译成Protocol Buffer Scala类
  • eclipse 生成eclipse工程文件
  • 打开 Scala IDE, File->Import->Existing Projects,导入项目
  • 右键单击 rep.app.Repchain.scala,Run As->Scala Application(单机组网4个节点)
  • 运行配置VM参数 -Dlogback.configurationFile=conf/logback.xml (使logback配置生效)
  • 查看实时图 http://localhost:8081/web/g1.html 实时状态图
  • 查看API http://localhost:8081/swagger/index.html Swagger-UI

修改配置

打包

  • assembly 打包成jar包,进行分布式部署

示范应用

  • BAR(Base App of RepChain):提供了通用的基础功能实现,区块链应用实施者既可以直接复用其提供的功能, 也可以在其源代码的基础上进行开发,快速开发自己的DAppp
  • SBR(Storage Based on RepChain):基于BAR开发的可举证云存储应用示例
  • CRBB(Copyright Register Based on Blockchain):基于RepChain的数字版权登记保护应用示例

Comments ( 4 )

Sign in for post a comment

About

RepChain(Reactive Permissioned Chain)是第一款采用响应式编程实现的自主可控的许可链基础组件,面向企业应用,强调交易的实时性和分布式环境下的柔韧性,且易于根据不同应用场景进行模块定制和弹性部署。其合约设计、可视化设计、接口设计对工程实施提供友好支持。RepChain由区块链技术与应用联合实验室、北京连琪科技有限公司和软件所互联网金融技术研究中心共同研发,RepChain1.0已通过“2019可信区块链”功能测试和性能测试,在典型场景获得成功应用,其中“区块链数字不动产证应用”被评选为 “2019可信区块链优秀案例”。 spread retract
Scala and 6 more languages
Apache-2.0
Cancel

Releases (4)

All

Gitee Metrics

Contributors

All

Activities

load more
can not load any more