数字产权项目帮助中心
DPR数字产权平台帮助文档

DPR Chain 系统概要设计

...

来自于:Song2

最后更新时间: 接近 3 年前

一、 设计思路

  1. 赋能数字产权业务,设计要以服务数字产权业务为核心,做成一条数字产权业务的定制化区块链。
  2. 自主可控,不采用商业化软件,项目方拥有DPR Chain的绝对控制权。
  3. 高性能,TPS达到1000以上,满足数字产权链上业务的性能要求。
  4. 高安全性,采用安全可靠的加密算法,加强防攻击策略的设计。
  5. 开源开放合规,以公链方式设计,但是无挖矿逻辑,满足监管需求。
  6. 内置原生Gas,作为交易手续费,防止恶意用户无成本调用区块链,进而影响正常用户使用区块链,最终交易手续费由出块节点收取,以奖励其维护区块链正常运行所做的努力。
  7. 支持智能合约,将EVM智能合约虚拟机移植到DPR Chain,降低开发者使用DPR Chain智能合约的难度。

二、 运行环境

  • 操作系统:Linux
  • 服务器最低配置:2核4G
  • 服务器最低磁盘要求:100G(随着区块高度增加,后续对磁盘的容量要求更高,需要做好磁盘容量监控)
  • 环境依赖:Go 1.17、Java 1.8、Mysql 5.7、Gcc 8.1

三、系统架构设计

DPR Chain采用分层架构思想将链划分为3层,即:基础层,共识层、应用层,同时每层又依据模块化思路按照不同的功能设计了对应的模块。DPR Chain架构设计图如下:
1. 基础层
基础层是DPR Chain的最底层,其为链提供一些基础设施及工具,主要包含的功能模块有: P2P网络模块、LevelDB存储模块、加密算法模块、Protobuf协议模块。
P2P网络是区块链系统中节点数据交互的媒介,区块链系统采用P2P网络为区块链提供一个稳定的网络结构,用于节点发现和连接,广播交易,共识区块以及区块同步等功能。考虑P2P网络的简单性、容错性、可扩展性、一致性等诸多因素,我们选择Gossip协议作为我们P2P网络的基础协议。Gossip协议执行过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。
区块链上的数据最终都需要存储在物理存储上才能永久存储和查询,物理存储是区块链的数据载体。从物理存储引擎的安全性,易用性,通用性以及性能等方面考虑,DPR Chain使用LevelDB作为其物理存储引擎,LevelDB是一个高性能键值嵌入式数据库,目前对亿级的数据有着非常好的读写性能。
加密技术作为区块链技术里极其重要、不可或缺的一部分,为区块链的匿名性、不可篡改和不可伪造等特点保驾护航。加密算法是一条区块链是否值得信赖、是否有基本的安全性的底线。DPR Chain的加密算法模块是所用到的各种加密算法的封装,包括但不限于如下算法:密钥生成算法、加密验签算法、摘要算法等。
Protobuf协议是Google公司开发的一种跨语言跨平台的序列化数据结构方式,是一个灵活的、高效的用于序列化数据的协议。Protobuf性能好,效率高,支持多种编程语言,考虑到DPR Chain需要的大量数据传输场景,采用Protobuf协议可以明显的减少数据量,减少网络IO,从而减少网络传输所消耗的时间,以满足DPR Chain的高性能。
2. 共识层
共识层封装了共识机制,保障各节点高效的针对区块数据的有效性达成共识。共识层的核心是共识算法,区块链能够实现交易的去中心化,同时还能保证全网数据的一致性,依赖的就是共识算法。考虑到区块链的性能以及数字产权业务的具体场景,DPR Chain采用Tendermint共识协议,而Tendermint共识协议实现了PBFT算法,使系统能够容忍1/3(不包含)的故障节点,且不会产生分叉。
3. 应用层
应用层是DPR Chain区块链系统的应用功能层,其主要为实现区块链系统的基础功能和与DPR相结合的定制功能。其主要功能如下:节点管理、配置管理、地址管理、账户管理、区块管理、交易管理、Gas管理、智能合约、DP管理、DPR管理、权限管理、区块链接口等。

系统接口设计

系统接口分为RPC接口和REST接口,RPC接口出入参采用protobuf进行序列化和反序列化,接口大致可分为以下几类:
  • 链信息查询接口
  • 区块信息查询接口
  • 交易信息查询接口
  • 账户信息查询接口
  • DP相关接口
  • DPR 相关接口
  • GAS 相关接口
  • 智能合约相关接口