学习记录:fabric(4)-fabric1.4的链码学习(1)

本文档详细介绍了如何使用Hyperledger Fabric 1.4进行链码开发,由于2.0版本教程较少且存在兼容性问题,作者选择沿用1.4版本进行学习。教程中提到了1.4版本网络搭建的简洁教程,并列举了链码开发的关键步骤,包括Go语言项目的基本流程、fabricchaincode包的调用、智能合约的Go包使用等。此外,还分享了如何使用Go模块(Go mod)管理链码项目,以及调试链码的参考资料。

前情提要

虽然可以搭建2的网络,但是教程较少,很多网上的教程都还是1.4的,就算有2的教程也因为大家从1过来的,导致信息很少,坑比较多。所以为了快速进入链码开发,我还是走老路吧,教程多,把2作为后续升级过程。
链码教程搜到的1.4的十分多,所以应该可以很快学会。开始吧!

开始

思路:先来搜博客,然后再看官方。
再提一下,https://www.jianshu.com/p/813621eff343,这个博客是简洁明了的1.4网络搭建的范本,非常推荐。

两个东西:

  • go语言项目的基本流程
  • fabric chaincode包的调用

https://www.bilibili.com/video/BV1a4411X7Z1

chaincode/shim 智能合约的go包
fabric-ca-client, fbaric-client,app SDK的包

shim 包提供了如下几种类型的接口:
① 参数解析 API:调用链码时需要给被调用的目标函数/方法传递参数,该 API 提供解析这些参数的方法;
② 账本状态数据操作 API:该 API 提供了对账本数据状态进行操作的方法,包括对状态数据的查询及事务处理等;
③ 交易信息获取 API:获取提交的交易信息的相关 API;
④ 对 PrivateData 操作的 API: Hyperledger Fabric 在 1.2.0 版本中新增的对私有数据操作的相关 API;
⑤ 其他 API:其他的 API,包括事件设置、调用其他链码操作

这里有个例子照着做一下:
https://www.jianshu.com/p/940b003aa02e

2版本的fabric API有一个不相容的标签,还是用1.4做尝试:
在这里插入图片描述在2中配套的是下面这个:
在这里插入图片描述可以看到时间,是非常新的。所以还是暂时用1.4

例子的话https://blog.csdn.net/weixin_43107949/article/details/109350623写的很好了,不多说。

写好之后,我用的就是之前搭好的网络,注意参数要指定成自己的。

另外,我使用的是go14,但是1.4版本中给的例子都是单个的go文件,不是通过go mod管理的项目。这里我自己按照go mod管理,学习了一下使用方法。链码同样可以部署成功。
在这里插入图片描述
hellocc就是链码文件。这里附上一个我总结的步骤吧,其实也参考了很多,但是忘记记下来链接了。

go mod tidy 根据 go.mod 文件来处理依赖关系

go mod vendor 从mod中拷贝到项目的vendor目录下,这样VScode之类的IDE就可以识别代码了

----------------------------------------------------------------------------------------------
1. 创建文件夹
2. 运行 go mod init 包名。得到一个项目包
3. 写main.go文件
4. 运行go run main.go,自动运行go mod下载依赖
5. 创建vendor目录,运行go mod vendor
6. 中间运行go mod vendor, go mod tidy 清除无用的包,引入新的包

接下来要学习学习调试。

参考

  • https://blog.csdn.net/weixin_43468183/article/details/109031052
  • https://blog.csdn.net/weixin_43107949/article/details/109350623
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值