You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单组织双Peer场景下Hyperledger Fabric状态数据库篡改行为测试求助

Hyperledger Fabric 2.3 单组织双Peer节点世界状态篡改测试方案

你当前的单组织2个Peer节点场景无需新增组织,也无需强制把两个Peer都设为背书节点,按以下步骤即可完成测试:

  • 第一步:完成链码部署,链码背书策略可直接设置为默认的AND('Org1MSP.member'),无需调整背书节点配置。先正常调用链码写入测试数据,示例:执行链码invoke操作写入testKey=testValue123,待区块同步完成后分别查询两个Peer节点的testKey,确认两个节点返回值一致,完成基准数据校验。
  • 第二步:模拟篡改操作。停掉其中一个Peer节点,直接修改该节点对应状态数据库的存储值:
    • 若使用CouchDB作为状态数据库,直接登录对应Peer绑定的CouchDB实例,找到链码对应的数据库,修改testKey的value为自定义的篡改值,例如tamperedValue456
    • 若使用LevelDB作为状态数据库,可使用LevelDB官方读写工具,找到Peer节点存储状态数据的stateleveldb目录,修改对应testKey的存储值
  • 第三步:重启被篡改的Peer节点,分别查询两个Peer的testKey,可以观测到被篡改的节点返回篡改后的值,未被篡改的节点返回原始正常值,此时Fabric无主动告警,因为Fabric仅在交易背书、区块提交两个环节校验状态合法性,无后台主动扫描校验机制。
  • 第四步:触发交易验证篡改行为,可观测到两类典型结果:
    1. 仅使用被篡改的节点作为背书节点发起交易:背书节点读取篡改后的状态生成读写集,交易提交后,正常节点在区块提交阶段校验读写集读版本与本地状态版本不匹配,直接拒绝交易,抛出MVCC_READ_CONFLICT错误
    2. 仅使用正常节点作为背书节点发起交易:交易提交到被篡改的节点时,该节点校验读写集读版本与本地篡改后的状态版本不匹配,同样会拒绝交易并标记为无效

内容的提问来源于stack exchange,提问作者Rajat Bhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:54:03