【21天转型区块链】DAY16

基于BCS的区块链Demo开发之智能合约分析

 

链代码也称为智能合约,实质上是控制区块链网络中的不同实体或相关方如何相互交互或交易的业务逻辑。简言之,链代码将业务网络交易封装在代码中。Hyperledger 支持使用 Golang 或 Java 语言编写链代码(目前华为云区块链服务暂时支持 Golang)。

 

基本的链代码包括shim包、main函数、init方法和invoke方法几部分。

1、shim 包

将 shim 包导入到链代码包中。shim 包 提供了一些 API,以便链代码与底层区块链网络交互来访问状态变量、交易上下文、调用方证书和属性,并调用其他链代码和执行其他操作。

2、main函数

任何 Go 程序的起点都是 main 函数,因此该函数被用于引导/启动链代码。当对等节点部署其链代码实例时,就会执行 main 函数。

3、Init方法

Init 方法在链代码首次部署到区块链网络时调用,将由部署自己的链代码实例的每个对等节点执行。此方法可用于任何与初始化、引导或设置相关的任务。

4、Invoke方法

只要修改区块链的状态,就会调用 Invoke 方法。简言之,所有创建、更新和删除操作都应封装在 Invoke 方法内。因为此方法将修改区块链的状态,所以区块链 Fabric 代码会自动创建一个交易上下文,以便此方法在其中执行。对此方法的所有调用都会在区块链上记录为交易,这些交易最终被写入区块中。

Invoke方法中使用PutState方法来向链中写入数据,使用GetState方法来从链中查询数据。

 

安装银行间身份共享Demo所需的智能合约(链代码)

链代码:链接:https://pan.baidu.com/s/1o7n4Uaxrtazb3RUaHJwJsw 密码:r390

启动弹性云服务器主机,唤醒集群

解压chaincode,将目录下的fabbankid.go压缩成zip

区块链服务下进入服务管理,点击bcs-bank-demo的链代码管理,进入链代码管理平台

点击“安装链代码”,输入链代码名称fabbank,版本为1.0,选择三个银行组织peer,配置如图

点击安装

点击实例化,函数init,参数a,200,b,250,背书组织列表xxx1,xxx2,xxx3

点击确认,等待实例化完成

实例化完成

 

关闭弹性云服务器主机,集群休眠

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值