首页 > 解决方案 > fabric-chaincode-go 和 fabric-contract-api-go 有什么区别?

问题描述

我目前正在尝试学习 Hyperledger Fabric,我设法了解了如何设置网络(Orderers、Peers 等),但现在是链码的一部分。

但是,我发现两个不同的 git repos(据我所知)可用于创建链码。

第一个是fabric-contract-api-go ,我不久前跟着他们的教程。

第二个是fabric-chaincode-go

所以我的问题是,这两个包有什么区别,我应该使用哪一个来编写链码?你有资源或好的例子吗?(除了 fabric-samples git 中的那些)

前阵子跟着fabric-contract-api教程写了个chaincode,现在看到有人用fabric-chaincode-go包,有点迷茫。

对不起,这个问题可能听起来很愚蠢,但我没有开发人员背景。我有 SysAdmin 背景,不习惯 GOLANG(但我学得很快,有很好的资源)。

标签: hyperledger-fabrichyperledgerhyperledger-chaincodechaincode

解决方案


您可以将fabric-contract-api-go视为构建在/需要低级 api fabric-chaincode-go的高级 api 。可以仅使用低级 api 编写 golang 链代码 - 事实上,这是 Fabric 2.0 之前的唯一选择,当时还为 golang 添加了合约 api。以前,它只存在于 node 和 java 链码。如果您可以选择使用合同 api,那么这样做可以为您节省一些样板代码。

要查看差异,您可以比较 fabcar 示例:在1.4 分支中,它使用了低级 api (shim)。然而,在master 分支中,它使用新的 contract-api


推荐阅读