技术指南:如何利用Fabric提供的接口编写链码

目标

牢记编写链码所需要的两个重要包

开发链码所必须实现的接口及方法

开发链码文件的基本结构

 

任务实现

开发链码,离不开 Hyperledger Fabric 提供的 SDK ,为了方便诸多不同的应用场景且使用不同语言的开发人员,Hyperledger Fabric 提供了许多不同的 SDK 来支持各种编程语言。如:

Hyperledger Fabric Node SDK:https://github.com/hyperledger/fabric-sdk-node

Hyperledger Fabric Java SDK:https://github.com/hyperledger/fabric-sdk-java

Hyperledger Fabric Python SDK:https://github.com/hyperledger/fabric-sdk-py

Hyperledger Fabric Go SDK:https://github.com/hyperledger/fabric-sdk-go

在本课程中我们将使用 Golang 进行链码的开发,所以我们应该确定在本系统中有 Hyperledger Fabric 提供的相关API,其它语言的 SDK 我们不在本课程中进行讨论。

如果本地系统中没有相关的API,请执行如下下载命令:

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

Init 与 Invoke 方法

编写链码,关键是实现 Init 与 Invoke 两个方法,必须由所有链码实现。Fabric 通过调用指定的函数来运行事务。

Init:在链码实例化或升级时被调用, 完成初始化数据的工作。

invoke:更新或查询提案事务中的分类帐本数据状态时,Invoke 方法被调用, 因此响应调用或查询的业务实现逻辑都需要在此方法中编写实现。

在实际开发中,开发人员可以自行定义一个结构体,然后重写 Chaincode 接口的两个方法,并将两个方法指定为自定义结构体的成员方法;具体可参考下一节的内容。

5.1.2 必要结构

依赖包

shim 包为链码提供了 API 用来访问/操作数据状态、事务上下文和调用其他链代码;peer 包提供了链码执行后的响应信息。所以开发链码需要引入如下依赖包:

“github.com/hyperledger/fabric/core/chaincode/shim”

shim 包提供了链码与账本交互的中间层。

链码通过 shim.ChaincodeStub 提供的方法来读取和修改账本的状态。

“github.com/hyperledger/fabric/protos/peer”

peer.Response:封装的响应信息。

一个开发的链码源文件的必要结构如下:

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

 

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

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年1月2日 下午5:15
下一篇 2019年1月2日 下午5:19

相关推荐

技术指南:如何利用Fabric提供的接口编写链码

星期三 2019-01-02 17:17:41

目标

牢记编写链码所需要的两个重要包

开发链码所必须实现的接口及方法

开发链码文件的基本结构

 

任务实现

开发链码,离不开 Hyperledger Fabric 提供的 SDK ,为了方便诸多不同的应用场景且使用不同语言的开发人员,Hyperledger Fabric 提供了许多不同的 SDK 来支持各种编程语言。如:

Hyperledger Fabric Node SDK:https://github.com/hyperledger/fabric-sdk-node

Hyperledger Fabric Java SDK:https://github.com/hyperledger/fabric-sdk-java

Hyperledger Fabric Python SDK:https://github.com/hyperledger/fabric-sdk-py

Hyperledger Fabric Go SDK:https://github.com/hyperledger/fabric-sdk-go

在本课程中我们将使用 Golang 进行链码的开发,所以我们应该确定在本系统中有 Hyperledger Fabric 提供的相关API,其它语言的 SDK 我们不在本课程中进行讨论。

如果本地系统中没有相关的API,请执行如下下载命令:

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

Init 与 Invoke 方法

编写链码,关键是实现 Init 与 Invoke 两个方法,必须由所有链码实现。Fabric 通过调用指定的函数来运行事务。

Init:在链码实例化或升级时被调用, 完成初始化数据的工作。

invoke:更新或查询提案事务中的分类帐本数据状态时,Invoke 方法被调用, 因此响应调用或查询的业务实现逻辑都需要在此方法中编写实现。

在实际开发中,开发人员可以自行定义一个结构体,然后重写 Chaincode 接口的两个方法,并将两个方法指定为自定义结构体的成员方法;具体可参考下一节的内容。

5.1.2 必要结构

依赖包

shim 包为链码提供了 API 用来访问/操作数据状态、事务上下文和调用其他链代码;peer 包提供了链码执行后的响应信息。所以开发链码需要引入如下依赖包:

“github.com/hyperledger/fabric/core/chaincode/shim”

shim 包提供了链码与账本交互的中间层。

链码通过 shim.ChaincodeStub 提供的方法来读取和修改账本的状态。

“github.com/hyperledger/fabric/protos/peer”

peer.Response:封装的响应信息。

一个开发的链码源文件的必要结构如下:

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

 

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