Data-Stash数据仓库备份区块数据流程

备份区块数据流程简述

V1.2.1版本

  • 第一步:通过nginx代理端口下载节点binlog日志到程序配置的保存日志的文件夹中
  • 第二步:一个一个地读取区块binlog日志、解析、进行区块链验证和对比验证,每验证一个区块就执行第三步,然后接着执行第二步
  • 第三步:为每一个区块开启多个线程异步保存区块数据到数据库
  • 第四步:当下载到本地的所有binlog日志文件读取的区块数据保存结束后,删除或者备份已备份区块数据binlog日志
  • 第五步:程序启动后开启一个定时任务为保存到数据库的区块数据生成一个检查点

V1.2.0版本

  • 第一步: 通过nginx代理端口下载节点binlog日志到程序配置的保存日志的文件夹中
  • 第二步: 一个一个地读取区块binlog日志、解析、进行区块链验证和对比验证,没验证一个区块就执行第三步
  • 第三步:保存区块数据到数据库
  • 第四步:每保存一个区块就为该区块生成一个检查点
  • 第五步: 当下载到本地的所有binlog日志文件读取的区块数据保存结束后,删除或者备份以备份区块数据binlog日志

另外两个版本除了上面存在的区别外,V1.2.1版本还具备了amdb-proxy的功能,能够提供给节点冷数据查询的能力,而V1.2.0版本没有

备份区块数据类型

表作用 字段 字段说明
sys_config 存储需要共识的群组配置项 name,value,enable_num 配置名称,配置值,该条记录生效块高
sys_cns_ 存储合约名到地址的映射关系 name,version,address,abi 合约名,合约版本,合约地址,合约ABI
sys_committee_votes 存储投票信息 key,value,origin,block_limit 投票项,投票值,源起,区块限制
sys_consensus 存储共识节点和观察节点的列表 name,type,node_id,enable_num 用于全量查询的标记,节点类型,节点ID,该条记录生效块高
sys_current_state 存储链最新的状态 key,value 状态项(目前有current_number/total_transaction_count),状态值
sys_table_access 存储每个表的具有写权限的外部账户地址 table_name,address,enable_num 表明,账号地址,该条记录生效块高
sys_tables 存储所有表的结构 table_name,key_field,value_field 表名,表主key的列名,表其他列的列名
sys_tx_hash_2_block 存储交易hash到区块号的映射 hash,value,index 交易hash,交易所在的区块号,区块中第几条交易
sys_number_2_hash 存储区块号到区块hash的映射 number,value 区块号,区块hash
sys_block_2_nonces 存储区块中交易的nonces number,value 区块号,该区块中的nonce列表
sys_hash_2_block 存储区块hash到区块数据的映射 key,value 区块hash,区块序列化数据
sys_hash_2_header 存储区块哈希对应的区块头数据 hash,value,sigs 区块hash,区块头序列号数据,签名列表
c_[合约地址] 存储外部账户信息 key,value 记录项(目前有balance/nonce/code/codeHash/alive),记录值
cp_[合约地址] 存储并行合约信息 key,value 记录项(目前有balance/nonce/code/codeHash/alive),记录值
posted @ 2022-07-17 11:27  java学习小白  阅读(68)  评论(0编辑  收藏  举报