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),记录值 |
标签:存储,hash,数据仓库,Stash,sys,value,日志,区块,Data 来源: https://www.cnblogs.com/zhangchenwei/p/16486163.html