在Hyperledger Fabric中,LSCC(Lifecycle System Chaincode)、CSCC(Chaincode System Chaincode)、QSCC(Query System Chaincode)、ESCC(Endorsement System Chaincode)和VSCC(Validation System Chaincode)是五个重要的系统链码。它们各自承担着不同的功能和责任,共同构成了Hyperledger Fabric的核心机制和特性。下面对每个系统链码进行详细介绍:

1. LSCC(Lifecycle System Chaincode)

LSCC是用于管理和控制链码生命周期的系统链码。它提供了一系列操作,用于链码的部署、升级、启用和禁用等。LSCC的主要功能包括:

  • 部署链码:LSCC负责将链码安装到Peer节点上,并将其注册到Fabric网络中。
  • 升级链码:LSCC允许对已部署的链码进行升级操作,以便应用新的代码或修复漏洞。
  • 启用和禁用链码:LSCC允许管理员启用或禁用链码的执行,以控制链码的访问和使用权限。
  • 查询链码信息:LSCC提供了查询已部署链码的相关信息,如版本、路径和安装状态等。

2. CSCC(Chaincode System Chaincode)

CSCC用于管理和控制已部署的链码。它提供了查询已部署链码的信息以及对链码的操作接口。CSCC的功能包括:

  • 查询已部署链码信息:CSCC提供了查询已部署链码的相关信息,如版本、路径、实例化策略等。
  • 安装链码:CSCC负责将链码安装到Peer节点上,并将其注册到Fabric网络中。
  • 查询链码定义:CSCC允许查询链码的定义,包括链码的函数和数据结构等。

3. QSCC(Query System Chaincode)

QSCC用于执行一些特定的查询操作,用于获取区块链的状态和元数据。它提供了一些查询接口,包括:

  • 查询区块信息:QSCC允许查询特定区块的详细信息,如区块头、交易列表等。
  • 查询交易信息:QSCC提供了查询特定交易的详细信息,包括交易的输入输出、签名等。
  • 查询账本信息:QSCC允许查询账本的状态和元数据,如当前区块高度、已提交的交易数等。

4. ESCC(Endorsement System Chaincode)

ESCC用于验证和背书交易。在交易的背书阶段,ESCC执行验证逻辑,确保交易满足背书策略和规则。ESCC的主要功能包括:

  • 背书交易:ESCC对交易进行验证和背书操作,确保交易满足指定的背书策略。
  • 生成背书签名:ESCC负责生成交易的背书签名,作为交易的一部分,用于后续的验证和共识过程。

5. VSCC(Validation System Chaincode)

VSCC用于验证和验证交易。在交易的验证阶段,VSCC执行验证逻辑,确保交易满足共识策略和规则。VSCC的主要功能包括:

  • 验证交易:VSCC对交易进行验证操作,确保交易满足共识策略和指定的验证规则。
  • 生成验证结果:VSCC生成交易的验证结果,用于确定交易是否通过验证并可以提交到区块链网络。

这些系统链码在Hyperledger Fabric中起着重要的作用,用于管理链码生命周期、查询链码信息、执行验证和背书操作,并提供了核心功能和机制,确保区块链网络的安全性、一致性和可靠性。在开发和部署Fabric网络时,合理理解和使用这些系统链码是至关重要的。


声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。

Author: mengbin

blog: mengbin

Github: mengbin92

cnblogs: 恋水无意


Hyperledger Fabric系统链码介绍的更多相关文章

  1. [Hyperledger] Fabric系统中 peer模块的 gossip服务详解

    最近一直在看fabric系统中的核心模块之一——peer模块.在看peer的配置文件core.yaml的信息时,对其中的gossip配置选项很感兴趣.看了一上午,还是不能明白这个选项到底什么意思呢?表 ...

  2. Hyperledger Fabric系统架构

  3. 死磕hyperledger fabric源码|Order节点概述

    死磕hyperledger fabric源码|Order节点概述 文章及代码:https://github.com/blockchainGuide/ 分支:v1.1.0 前言及源码目录 Orderer ...

  4. Hyperledger Fabric链码之三

    在<Hyperledger Fabric链码之一>和<Hyperledger Fabric链码之二>中我们介绍了链码的定义,并通过dev网络测试了测试了自己编写的链码程序. 本 ...

  5. Hyperledger Fabric链码之二

    上篇文章中我们介绍了链码的概念,本文中我们将介绍Fabric下链码的编写和测试.我们会通过一个简单例子的方式来阐述链码API的使用. 链码API     每一个链码程序都必须实现一个接口Chainco ...

  6. Hyperledger fabric 链码篇GO(四)

    Hyperledger fabric 链码篇GO(四) fabric中的链码也就是我们区块链所认知的智能合约,fabric中可由nodejs,java,go编写,本篇只针对GO语言编写链码.将详细介绍 ...

  7. Hyperledger Fabric无系统通道启动及通道的创建和删除

    前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织,但目前为止,我们启动 orderer 节点的方式都是通过系统通道的方式,这样自带系 ...

  8. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

  9. Hyperledger Fabric链码之一

    什么是链码(Chaincode)? 我们知道区块链有3个发展阶段:区块链1.0,区块链2.0,区块链3.0.其中区块链2.0就是各种区块链平台百花齐放的阶段,区块链2.0最大的特点就是智能合约,我们接 ...

  10. HyperLedger Fabric部署与链码解读

    1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其 ...

随机推荐

  1. 【深入浅出 Yarn 架构与实现】6-1 NodeManager 功能概述

    本节开始将对 Yarn 中的 NodeManager 服务进行剖析. NodeManager 需要在每个计算节点上运行,与 ResourceManager 和 ApplicationMaster 进行 ...

  2. ML-程序练习-Dragon

    回归问题 前期 假设已有某样例,参数为w=1.477, b=0.089,即为\(y=1.477x+0.089\) 过程分析 数据采样 首先我们需要模拟一些带有真实样本观测误差的数据(因为真实情况是真实 ...

  3. 全网最佳IoT命令行超级工具箱|帮你轻松解决百万物联网设备测试和联调

    程序员离不开命令行,许多经典命令是每天必用的,比如ls 和 cd. 作为一个物联网开发和学习人员,IoT设备协议的测试联调是工作中很重要的一环!我有很多时刻都想拥有一个能集成常见物联网协议的客户端工具 ...

  4. SELinux入门学习总结

    前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SELinux 主要由美国国家 ...

  5. proprety详解

    property() 函数和@property修饰符. 第一种方法,使用property() 函数: class Person: def __init__(self): self.__name= No ...

  6. 活字格性能优化技巧(3):如何巧用CDN提升含页面的访问速度

    本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上两篇中我们分享了如何利用数据库主键和表格设置默认不加载数据来提升应用 ...

  7. day33:进程锁&事件&进程队列&进程间共享数据

    目录 1.锁:Lock 2.信号量:Semaphone 3.事件:Event 4.进程队列:Queue 5.生产者和消费者模型 6.JoinableQueue 7.Manager:进程之间共享数据 锁 ...

  8. SSH: Linux开启ssh并启动root登录设置默认密码

    apt update && apt install -y openssh-server echo "PermitRootLogin yes" >> /e ...

  9. java中的装箱 拆箱 以及 字符串与基本数据类型的转化

    java中的装箱 拆箱 装箱就是 自动将基本数据类型转换为包装器类型:拆箱就是 自动将包装器类型转换为基本数据类型 ; Integer i =5;//装箱 int j=i;//拆箱 在装箱的时候自动调 ...

  10. ROS2的安装与使用(超详细图文教程)

    ROS2的安装与使用(超详细图文教程) 如果前面的虚拟机以及Ubuntu22.04镜像都安装好了,根据目录直接跳到ROS2的安装. 资料参考于:古月居 VMware虚拟机的安装 安装地址: 对于不了解 ...