风险提示:理性看待区块链,提高风险意识!
技术指南:初识链码-链码概念与原理
首页 > 币界资讯 > 区块链知识 2018-12-24 09:00:00

目标


1.认识 Hyperledger Fabric 中的链码(智能合约)

2.明确系统链码的种类及作用

3.熟知链码的生命周期管理

任务实现


能走到这一步,您离成功已经越来越近了,真的很不容易,中间经过了多少的大难、小难已经数不清了。而您的聪慧与无人可及的毅力让我不得不说一个大写的:服!下面我们进入正题。

4.1.1 链码概念

网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易所必须的智能合约(在 Hyperledger Fabric 中被称之为 Chaincode,也就是链上代码)的相关知识,以便于理解账本中的数据到底是通过什么方式进行操作。

Chaincode:链上代码,简称链码,一般是指由开发人员使用Go语言(也支持Java等语言)编写的应用程序代码,提供分布式账本的状态处理逻辑。链码被部署在Fabric的网络节点中,能够独立运行在具有安全特性的受保护的 Docker 容器中,以 gRPC 协议与相应的 peer 节点进行通信,以操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。

链码分类

在 Hyperledger Fabric 中,链码一般分为:

系统链码

用户链码

区块链技术QQ交流群:263270946 掌握更多技术干货,关注微信公众号“ChainDesk”

4.1.2 Fabric提供了什么-系统链码

负责 Fabric 节点自身的处理逻辑, 包括系统配置、背书、校验等工作

系统链码仅支持 Go 语言, 在 Peer 节点启动时会自动完成注册和部署

系统链码共有五种类型:

配置系统链码(CSCC)

CSCC:Configuration System Chaincode,负责处理 Peer 端的 Channel 配置。

生命周期系统链码(LSCC)

LSCC:Lifecycle System Chaincode,负责对用户链码的生命周期进行管理。

查询系统链码(QSCC)

QSCC:Query System Chaincode,提供账本查询 API。如获取区块和交易等信息。

背书管理系统链码(ESCC)

ESCC:Endorsement System Chaincode,负责背书(签名)过程, 并可以支持对背书策略进行管理

对提交的交易提案的模拟运行结果进行签名,,之后创建响应消息返回给客户端

验证系统链码(VSCC)

VSCC:Validation System Chaincode,处理交易的验证,包括检查背书策略以及多版本并发控制

4.1.3 什么是用户链码

由应用程序开发人员根据不同场景需求及成员制定的相关规则,使用 Golang(或Java等)语言编写的基于操作区块链分布式账本的状态的业务处理逻辑代码,运行在链码容器中,通过 Fabric 提供的接口与账本状态进行交互。

用户链码在整个应用程序中处于重要地位。因为它下可对账本数据进行操作,上可以给企业级应用程序提供调用接口。所以一个没有链码的企业级应用程序,不能称之为是基于区块链的企业级应用程序。

4.1.4 链码的生命周期管理

链码开发编写完成后,并不能立刻使用,而是必须经过一系列的操作之后才能应用在 Hyperledger Fabric 网络中进而处理客户端提交的交易。这一系列的操作是由链码的生命周期来负责管理。

管理 Chaincode 的生命周期共有五个命令:

install:将已编写完成的链码安装在网络节点中。

instantiate:对已安装的链码进行实例化。

upgrade:对已有链码进行升级。链代码可以在安装后根据具体需求的变化进行升级。

package:对指定的链码进行打包的操作。

singnpackage:签名。

安装、实例化、升级这三项操作不适用于系统链码

链码的生命周期管理命令现阶段只有这五个,但未来还会支持 stop 和 start 命令, 用来停止和启动链码。

链代码成功安装和实例化后,则处于活动状态(正在运行),时刻准备执行处理提交的交易提案。

下一节开始我们会使用这些生命周期管理命令来实现对链码的相关操作。

FAQ


文中所说的状态与账本数据是什么关系?

状态其实指的就是账本中的数据。没有其它另外的含义。

链码可以访问所有账本中的状态吗?

一个链码对应一个账本,所以一般情况下链码是不可以访问其它账本中的数据的。

未经授权禁止转载、改编,转载请注明出处!

上一篇: 不用以太币支付交易费?Vitalik提出支付抽象化方案
下一篇: 以太坊钱包开发:账号Keystore文件导入导出
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,723.74
37,091.22 USDT
+0.1%
ETH以太坊
¥14,416.22
2,019.90 USDT
-0.12%
USDT泰达币
¥7.20
1.01 USDT
0%
BNB币安币
¥1,625.40
227.74 USDT
+0.36%
XRP瑞波币
¥4.32
0.60460 USDT
+0.37%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥398.85
55.89 USDT
+1.54%
OKBOK币
¥398.61
55.85 USDT
-1.64%
ADA艾达币
¥2.68
0.37580 USDT
-1.16%
DOGE狗狗币
¥0.55160
0.07730 USDT
-1.52%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.402E-5 USDT
-18.95%
Gala
¥0.18
0.025374 USDT
-4.66%
dYdX
¥22.58
3.1918 USDT
-0.91%
比特股
¥0.05
0.006964 USDT
+4.28%
PancakeSwap
¥15.52
2.1936 USDT
-2.74%
Conflux
¥1.08
0.1524 USDT
-2.87%
Filecoin
¥31.45
4.4454 USDT
-0.69%
FTX Token
¥29.82
4.2155 USDT
+16.96%
Yield Guild Games
¥2.55
0.3608 USDT
-0.52%
Shiba Inu
¥0.00
8.14E-6 USDT
-2.51%
比特币
¥262,381.44
37091.22 USDT
+0.1%
比原链
¥0.07
0.010011 USDT
-4.38%
最新快讯
更多
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
西班牙公民需在明年3月底前申报其海外平台上加密货币持仓
2023-11-28 18:53:43
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
NicCarter等比特币倡导者发文:比特币挖矿是清洁能源和平衡电网的关键工具
2023-11-28 18:47:58
下载币界网APP