区块链 节点专题(2)SPV轻节点是什么 chainmaker为例

12.1. 概述

12.1.1. SPV轻节点

SPV项目是ChainMaker的SPV轻节点,主要有两种模式,

一种是spv模式,该模式支持ChainMaker(v2.0.0)Fabric(v1.4.0+)两种链类型,该模式下将同步区块头及部分其他数据并通过同步的数据实现交易有效性的验证;

另一种是light模式,该模式仅支持ChainMaker(v2.0.0),该模式下将同步区块头以及同组织内的交易信息,并支持用户注册回调,在区块被提交至本地数据库后执行

spv模式下具有如下功能:

  • 实现对多链的区块头及部分其他数据的同步,且可对外提供交易存在性及有效性证明

  • 独立部署获取业务链的数据,并提供交易存在性及有效性证明服务。

  • 可作为组件集成进其他模块,调用启动以获取业务链的数据,并提供交易存在性及有效性证明。

light模式下具有如下功能:

  • 实现对多链的区块及同组织内用户交易的同步功能。

  • 可独立部署获取业务链的数据,并对外提供区块以及交易信息的查询功能,以及交易转发的功能。

  • 可作为组件集成进其他模块,并支持用户注册回调,在区块被提交至本地数据库后执行。

快速部署和使用示例,请按如下链接内容进行:
部署使用文档

12.2. 节点类型

节点类型同步数据类型是否参与共识是否验证区块是否执行交易是否可接收执行类交易是否可接收查询类交易
共识节点区块
同步节点区块
SPV区块头
Light区块、同组织交易

12.3. 设计思路

12.3.1. SPV轻节点模块设计

在SPV轻节点中,主要包含StateManager、ReqManager、BlockManager、Prover、Storage模块,各模块作用主要如下:

  • StateManager模块:状态管理模块,主要作用是订阅远端链最新区块、轮询远端链的最新区块高度

  • ReqManager模块:请求管理模块,主要作用是请求spv未同步过来的区块、请求BlockManager模块验证不合法的区块。

  • BlockManager模块:区块管理模块,主要作用是验证区块有效性、并持久化有效区块的区块头和交易信息(若有)。

  • Prover模块:证明器模块,主要作用是对Client提供交易存在性和有效性证明服务(light模式下,只能验证同组织内的交易)。

  • Storage模块:存储模块,主要作用是存储同步的区块中的区块头及交易信息(若有)。

12.3.2. 主要流程

12.3.2.1. SPV轻节点主要流程

SPV轻节点主要功能为同步区块头及同组织内的交易信息,并提供交易存在性和有效性证明,下图描述了主要功能的流程:

区块同步流程:

  1. StateManager订阅远端业务链最新区块;

  2. StateManager获取远端业务链最新区块;
    2.1 若最新区块高度大于spv当前区块高度(currentHeight),则BlockManager处理该区块,否则丢弃;
    2.2 BlockManager检验区块的有效性;
    2.3 区块有效,存储区块头和区块中同组织内的交易信息(若有);
    2.4 区块无效,通过ReqManager重新请求该高度区块;

  3. StateManager轮询远端链最新高度;

  4. StateManager获取远端链最新高度;
    4.1 若最新高度大于spv本地区块高度(localHeight),则ReqManager处理该高度信息,否则丢弃;
    4.2 ReqManager请求相应高度的区块;
    4.3 ReqManager获取到相应高度的区块,并交给BlockManager处理;

交易存在性和有效性验证流程: 5. Client提供TxValidationRequest,调用Prover中的ValidTransaction接口进行交易有效性证明;
5.1 Prover从本地通过TxKey获得交易Hash;
5.2 Prover调用SDK通过TxKey获得交易实体;
5.3 Prover比对TxValidationRequest中的交易信息和交易实体中的信息,以及交易Hash是否一致,判断交易存在性和有效性;

 

12. SPV轻节点 — chainmaker-docs v2.2.1 documentation

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件工程小施同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值