Skip to content

Latest commit

 

History

History
45 lines (28 loc) · 2.63 KB

File metadata and controls

45 lines (28 loc) · 2.63 KB

系统架构 {docsify-ignore}

鸟瞰架构

优擎区块链数据库拥有一般区块链应用拥有的所有部件,除此之外,额外增加了具备映射、索引、验证功能的数据库映射层。

Overview

数据库映射层中包含以下功能组件:

  • 映射:将存储在区块链上不可修改的数据库变更记录映射成——类似于传统关系型数据库,可供开发人员直接操作修改的数据库产品;
  • 索引:通过索引技术可以保障数据库中数据查询的效率,避免区块链带来的低效;
  • 验证:使用区块链独有的密码学机制,实时保障数据未被篡改、伪造,以及历史变更记录的正确性和一致性;

架构细节

Overview

各组件使用的技术栈如下:

  • 全节点:使用DotNet Core开发,可全平台部署;
  • 轻量节点:分别提供DotNet Core与JavaScript的源代码,方便集成至任意客户端;
  • 接口:使用Json RPC的方式调用,为二次开发做好了准备;
  • 安全:按照《NIST安全框架》进行安全考虑
  • 区块:使用经典的区块链式结构;
  • 状态:区块链上的状态保存使用Patricia Merkle Trie进行保存,实现数据的快速查找和信息确认;
  • 执行环境:使用最基础的栈虚拟机,虚拟机支持的命令见虚拟机指令
  • 共识:使用标准的PBFT共识算法,在私链、联盟链的环境里高效、安全;
  • 持久化:系统内部数据以键值对的方式存储,可接入任意支持键值对的数据库(几乎所有传统数据库及NoSql数据库均支持);
  • P2P:服务器之间使用可信名单及其证书签名进行沟通联系,未授权的服务器服务器无法接入P2P网络实现投票;

虚拟机指令

优擎区块链数据库设计为受限指令集的栈虚拟机,不过用户可以根据自身业务的需求进行指令集订制

指令 编码 输入 输出 描述
CheckSignature 59 pk sig 布尔 检查签名是否符合锁定的公钥
CheckOneOfMultiSignature 60 n pkn ... pk2 pk1 sig 布尔 检查一系列的签名中是否含有符合锁定的公钥