版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、区块链的AOP异常测试实践之路目录1区块链是什么?区块链之异常测试AOP在区块链测试实践之路区块链是什么?区块链是什么?区块链是什么?区块链是什么?中本聪基于金融机构的交易转账金融机构 I金融机构 II甲乙金融机构 III丙丁机构内转账跨机构转账基于区块链的交易转账甲乙从技术的角度来定义- 技术体系,包含P2P网络、加密算法、共识算法等从数据的角度来定义- 去中心化、防篡改、防抵赖的分布式账本数据库支付实时,清算异步支付与清算同时进行区块链是什么?比特币以太坊AlgorandDFINITY公有链任何人在任何位置都可以加入网络及操作数据私有链使用范围控制在企业内部联盟链联盟内授权公司或组织才能加
2、入按节点参与方式分类公有链私有链TrustSQLBCOS联盟链组织A公司B公司C皆可以区块链是什么?PoW(工作量证明)网络节点争相求得问题解,求解成功后就获得打包权限PoS(权益证明)网络节点要成为打包者,其权益越大,越有概率成为打包者BFT类(拜占庭容错)网络节点会根据全网投票结果判定打包是否成功DPoS(委托权益证明)网络节点持权益争取进入委员会,经投票成立共识委员会VRF类(可验证随机函数)通过类似抽签方式确定网络节点的共识角色包者按共识机制分类PoW类或PoS类BFT类DPos类或VRF类比特币以太坊EOSAlgorandTrustSQLBCOS区块链是什么?类似于微信支付的电子账户
3、,记录账户余额转账交易是以账号余额改变的方式实现UTXO全称为Unspent Transaction Out,即是未花费的交易输出类似于现实生活中的现金,但依附在一笔交 易记录中转账交易是以UTXO消耗与创建的方式实现BlocklN-1BlocklNBlocklN+1交易列表T1T2Bock内容账号空间A20B120交易列表T4T5Bock内容账号空间A10B120交易列表T6T7Bock内容账号空间A10B90T3C90D5C80D25T8T9C100D50BlockBlock内容交易列表T1T2T3N-1UTXO空间T1:A 10T1:B 80T2:A 10T2:B 40T3:DT3:C
4、905BlockBlock内容交易列表T4T5T1:ANUTXO空间10T1:B 80T2:BT3:D405T4:CT5:D80T4:D 1010BlockBlock内容UTXO空间T1:A10N+1T3:D5T4:C80T4:D 10T5:D10T6:C 20T6:B交易列表T6T7T8T960T7:B 30T7:D10T8:D5T9:D10UTXO模型账户模型区块链是什么?Output 1Output 2交易包含Inputs(输入)和Outputs(输出)交易输出只有两种状态,分别是未花费和已花费图中,绿色表示未花费,红色表示已花费Transaction 1:Output 1目标地址 A锁
5、定脚本/花费条件Transaction 3:Input 1Output引用解锁脚本/花费凭证交易验证锁定脚本/花费条件解锁脚本/花费凭证堆栈执行器UTXO全称为Unspent Transaction Out, 即是未花费的交易输出类似于现实生活中的现金,但依附在一笔交易记录中转账交易是以UTXO消耗与创建的方式实现BlockN-1Block内容交易列表UTXO空间T1T2T1:A 10T1:B 80T3T2:A 10T2:B 40T3:C 90T3:D5BlockBlock内容交易列表T4T5UTXO空间NT1:A10T1:B80T2:B40T3:D5T4:C80T4:D10T5:D10Blo
6、ckBlock内容交易列表T6T7N+1T8T9T1:AUTX10O空间T3:D5T4:C80T4:D10T5:D10T6:C20T6:B60T7:B30T7:D10T8:D5T9:D10Output 1Output 2Transaction 3InputsOutputsInput 1Output 1Output 2Transaction 4InputsOutputsInput 1Output 1Transaction 5InputsOutputsInput 1Output 1Input 2Output 2UTXO模型执行过程Transaction 2InputsOutputsInput 1O
7、utput 1Output 2Transaction 1InputsOutputsInput 1Output 1Input 2Output 2Output 2区块链是什么?2008.122017.082015.122015.022013.12 2014.102016.04Plasma2017.112017.08Sharding2016.092014.012017.071.02018.031.12018.071.22018.101.32019.021.42016.122017.11BaaS平台2018.09可信区块链评测第一双层网络结构2018.122017.122.02016.122018.0
8、5Byteball-NG2019.062019.032017.07主网上线2019.06区块链是什么?去中心化(生成与验证节点)安全(作恶所花费成本)可扩展性(每秒处理交易量)演化方向功能评测共95个功能用例TrustSQL完成91个功能验证20家参与功能评测的企业中完成率第一推动区块链基础核心技术研究和行业应用落地,加快可信区块链标准的更新迭代,支撑政府决策,促进区块链行业良性健康发展,提升我国区块链国际影响力区块链是什么?推动区块链基础核心技术研究和行业应用落地,加快可信区块链标准的更新迭代,支撑政府决策,促进区块链行业良性健康发展,提升我国区块链国际影响力区块链是什么?推动区块链基础核心
9、技术研究和行业应用落地,加快可信区块链标准的更新迭代,支撑政府决策,促进区块链行业良性健康发展,提升我国区块链国际影响力TrustSQL的最高峰值TPS平均为5W+7家参与性能评测的企业中性能最高区块链是什么?解决机构间协作的信任问题贸易合同 应收账款资产1000万债权凭证卖出100万债权凭证 转让拆分100万铝矿企业债权凭证 转让拆分300万轮毂企业铝锭企业债权凭证 转让拆分500万轮胎企业某车企多种类型金融机构债权凭证 卖出100万债权凭证 卖出100万债权凭证 卖出100万供应链金融公益寻人区块链发票税局开票企业用户纳税申报企业报销区块链是什么?公益寻人区块链是什么?贸易合同 应收账款资
10、产1000万债权凭证 卖出100万债权凭证 转让拆分100万铝矿企业债权凭证 转让拆分300万轮毂企业铝锭企业债权凭证 转让拆分500万轮胎企业某车企多种类型金融机构债权凭证 卖出100万债权凭证 卖出100万债权凭证 卖出100万供应链金融区块链是什么?区块链发票税局开票企业用户纳税申报企业报销区块链是什么?区块链是什么?区块链是什么?节点1(Leader)节点2(Follower)节点3(Follower)节点4(Follower)应用服务节点1(Candidate)节点2(Follower)节点3(Follower)节点4(Follower)节点1(Leader)节点2(Follower
11、)节点3(Follower)节点4(Follower)1 合法交易请求2 AppendEntry2 AppendEntry2 AppendEntry4 AppendResp4 AppendResp4 AppendResp4 AppendResp6 TxResp6 TxResp6 TxResp6 TxResp7 返回成功3 接收与验证3 接收与验证3 接收与验证3 接收与验证5 提交与存储5 提交与存储5 提交与存储5 提交与存储1 RequestVote1 RequestVote1 RequestVote3 VoteResp5 Hearbeat2 等待投票结果2 判断与投票2 判断与投票2 判
12、断与投票3 VoteResp3 VoteResp4 定时心跳5 Hearbeat5 Hearbeat选举共识合法交易共识投票机制区块链是什么?去中心化(生成与验证节点)安全(作恶所花费成本)可扩展性(每秒处理交易量)CPU异常内存异常网络异常拜占庭容错问题双花攻击问题程序错误处理多线程并发异步并发区块链之异常测试节点2节点3节点4去中心化节点1(Leader)节点5节点6Follower节点与Follower节点的网络断开Follower节点与Leader节点的网络断开Follower节点的网络孤立Leader节点的网络孤立网络分裂区块链之异常测试改变接收交易构建区块广播区块TrustSQL转
13、发交易LeaderBft-Raft状态CandidateFollower切换节点1节点2节点3节点4网络异常?网络延迟网络丢包网络断开转发交易到构建区块的转换?构建区块到转发交易的转换?广播区块到转发交易的转换?. ?区块链之异常测试去中心化接收区块判断分批区块验证步骤1计算Hash同步结果高度h批次内并发区块验证步骤2区块验证步骤3区块验证步骤n区块验证步骤1计算Hash同步结果高度h+1区块验证步骤2区块验证步骤3区块验证步骤n计算Hash同步结果高度h+2区块验证步骤1区块验证步骤2 区块验证步骤3区块验证步骤n读取写入读取读取为了提高可扩展性,TrustSQL对验证区块进行多线程并发优
14、化根据相关性规则进行分批,在批次内实现并发验证区块链之异常测试可扩展性写入写入为了提高可扩展性,TrustSQL也使用异步并发处理, 等待全部异步并发处理后再继续后续处理异步处理B1异步处理C1异步处理A1异步处理A2异步处理A3异步处理A4等待异步处理异步处理B2异步处理B3异步处理C2异步处理C3启动异步处理A启动异步处理B 启动异步处理C其他同步处理区块链之异常测试可扩展性节点2节点3节点4节点1(Leader)节点5节点6无法通过外部资源方式来控制批次内的多线程执行次序?也无法通过外部资源方式来控制异步处理执行次序?压测工具压测工具压测工具区块链之异常测试可扩展性节点1(Leader)
15、节点2(Follower)节点3(Follower)节点4(Follower)应用服务1 合法交易请求2 AppendEntry2 AppendEntry2 AppendEntry4 AppendResp4 AppendResp4 AppendResp4 AppendResp 6 TxResp6 TxResp6 TxResp6 TxResp7 返回成功3 接收与验证3 接收与验证3 接收与验证3 接收与验证5 提交与存储5 提交与存储5 提交与存储5 提交与存储区块链之异常测试安全TrustSQL是基于自研Bft-raft拜占庭容错共识算法,使用Jgroups实现网络集群节点的通信与管理需模拟
16、消息丢失、重发、篡改等作恶异常来验证拜占庭容错能力投票机制通信协议栈包含加密、压缩或分包等处理,作恶模拟难?通过存储层进行间接作恶异常模拟的成本越来越困难?存储层间接作恶模拟方式也不够精准验证不同情况?RSAJChannelFRAGMFCUNICASTGMSPINGMEGRETCP桩TrustSQLTrustSQLTrustSQLTrustSQL通信协议栈TrustSQLTrustSQLMySQLMySQLMySQLMySQLTrustSQLTrustSQLTrustSQLTrustSQLTrustSQLTrustSQLFile+RocksDBFile+RocksDBFile+RocksDBF
17、ile+RocksDB核心TrustSQL代理转发服务业务TrustSQL业务TrustSQL核心TrustSQL核心TrustSQL核心TrustSQL分布式数据库Tcaplus分布式数据库Tcaplus分布式数据库Tcaplus分布式数据库Tcaplus存储层变迁简史区块链之异常测试安全去中心化(生成与验证节点)安全(作恶所花费成本)可扩展性(每秒处理交易量)委员会共识多层网络结构DAG结构智能合约同态加密零知识证明区块链之异常测试未来技术发展节点2节点3节点4节点1网络异常CPU异常存储作恶AOP在区块链测试实践之路节点2节点3节点4节点1接口层共识层账本层存储层合约层共识作恶账本作恶作
18、恶AOP在区块链测试实践之路函数b函数c通知处理函数a函数d函数f函数h关注点AOP技术:在不改动源代码基础上,在特定功能处理设置关注点,注入增强字节码,从而做到精准的异常注入AOP在区块链测试实践之路源代码编译器虚拟机AOP代码字节码包AspectTrustSQL注入过程注入master管理/上报自动化测试工具设置整体框架管理/上报管理/上报管理/上报日志注入agent读取/写入写入写入/读取读取节点1AspectTrustSQL日志注入agent读取/写入写入写入/读取读取节点3AspectTrustSQL日志注入agent读取/写写入 入写入/读取读取节点2AspectTrustSQL日
19、志注入agent读取/写入写入写入/读取读取节点4AspectTrustSQLAOP在区块链测试实践之路节点2节点3节点4节点1接口层共识层账本层存储层合约层注入通知注入通知注入通知注入通知注入通知统一 管理器异常抛出注入延迟注入跳过注入重复注入自定义注入注入层受控制可交互可重用可扩展注入agentAOP在区块链测试实践之路改变广播区块Bft-Raft状态Candidate节点2节点3节点4去中心化因角色状态切换导致构建区块到转发交易的流程切换的异常测试节点1Follower切换Leader角色切换注入注入调用注入对象的切换函数注入写入切换参数读取切换参数角色还原注入调用注入对象的切换函数联合
20、切入调用注入对象的函数实现切换接收交易构构建建区区块块TrustSQL转发交易AOP在区块链测试实践之路高度逆序注入延迟注入同时执行注入随机乱序执行hh+1h+2h+3高度逆序执行hh+1h+2h+3批次内同时执行hh+1h+2h+3反射机制操控注入对象P2PKH交易多重签名交易智能合约AOP在区块链测试实践之路可扩展性接收区块判断分批区块验证步骤1计算Hash同步结果高度h批次内并发区块验证步骤2区块验证步骤3区块验证步骤n区块验证步骤1计算Hash同步结果高度h+1区块验证步骤2区块验证步骤3区块验证步骤n区块验证步骤1计算Hash同步结果高度h+2区块验证步骤2区块验证步骤3区块验证步骤
21、n读取写入读取读取写入写入启动异步处理A异步处理B1异步处理C1异步处理A1异步处理A2异步处理A3异步处理A4等待异步处理异步处理B2异步处理B3异步处理C2异步处理C3启动异步处理B启动异步处理C其他同步处理异步逆序注入延迟注入同时执行注入随机乱序执行A1B1C1异步逆序执行A1B1C1批次内同时执行A1B1C1AOP在区块链测试实践之路可扩展性节点1(Leader)节点2(Follower)节点3(Follower)节点4(Follower)应用服务1 合法交易请求2 AppendEntry2 AppendEntry2 AppendEntry4 AppendResp4 AppendResp4 AppendResp4 AppendResp 6 TxResp6 TxResp6 TxResp6 TxResp7 返回成功3 接收与验证3 接收与验证3 接收与验证3 接收与验证5 提交与存储5 提交与存储5 提交与存储5 提交与存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天然纤维可降解地膜生产线项目运营管理方案
- 冷链物流园温控系统方案
- 锂辉石矿生产线项目运营管理方案
- 道路景观工程中央分隔带景观设计方案
- 厨余生活垃圾沼气净化利用方案
- 中医护理在心衰治疗中的作用
- 高教版(2025)基础模块3Unit6LivingHistoryofCulture获奖教学设计
- 2026年郑州市骨科医院医护人员招聘笔试参考试题及答案详解
- 2026年华中科技大学协和深圳医院医护人员招聘考试参考题库及答案详解
- 2026年佳木斯市房地局职工医院医护人员招聘笔试模拟试题及答案详解
- 供货组织计划方案
- 员工工地开放日活动方案
- 贵州省贵阳市2023−2024学年度第二学期期末监测试卷高一 数学试题(含解析)
- T/SHSOT 017.1-2024口腔护理产品实验室测评方法第1部分:标准牙齿系统
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 儿童良性骨肿瘤诊疗要点
- 2型糖尿病中西医结合诊疗指南(2025年)解读
- 洞箫曲谱200首带目录
- 地下车库环氧地坪施工方案
- 《美国大城市的死与生》PDF电子书
- 小班幼儿情绪案例分析报告
评论
0/150
提交评论