2020-08-19 11:16发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我一直在尝试为SAP Hyperledger Fabric用GO语言编写智能合约,但是当我尝试实例化它时,出现以下错误:
找不到包" github.com/hyperledger/fabric/core/ledger"
我正在尝试从GitHub导入分类帐程序包,但我无法做到这一点,当我尝试导入其他程序包时也遇到了同样的问题。 有什么办法吗? SAP支持哪些软件包?在哪里可以找到它们?
谢谢!
嗨Emilio,
SAP Hyperledger Fabric Service正在运行1.4版,支持此发行版中包含的用于链码的软件包。
使用Hyperledger Fabric 2.x,一些软件包已移至其他存储库,因此使用go get要求软件包可能会出现一些问题。
一种解决方法是向您的依赖项供应商。 如果尚未完成,请通过运行
执行mod init链代码
之后,您可以通过运行
转到mod供应商
如果要使用版本1.4的链码包,则还必须初始化go模块,但是除了销售外,您还可以通过运行以下代码来要求特定发行版的依赖项:
获取github.com/hyperledger/fabric/core/chaincode/shim@v1.4 去获取github.com/hyperledger/fabric/protos/peer@v1.4
由于这些依赖项在1.4版中,因此在实例化期间就可以使用它们,而无需供应商。
@Gregory SAP的Hyperledger Fabric服务仅支持Go链码
最好
Christopher
您应该明确地尝试使Go安装正常工作。 有可能已经检查过代码是否在本地构建时,开发起来会更好。
我认为通过此软件包获取当前块号将无法正常工作。 您可以调用一个系统链码来获取有关块和事务的信息,称为" qscc" https://godoc.org/github.com/hyperledger/fabric/core/scc/qscc 要获取当前块,只需查询" getChainInfo",您将获得当前块的高度-> < rel =" nofollow" hraf=" https://github.com/hyperledger/fabric-protos-go/blob/master/common/ledger.pb.go#L25"> https://github.com/hyperledger/ fabric-protos-go/blob/master/common/ledger.pb.go#L25
您可以通过此处记录的shim接口从链代码中调用此链代码 https://godoc.org/github.com/hyperledger/fabric-chaincode-go/shim#ChaincodeStub.InvokeChaincode
回到获取当前块的问题,我想澄清一下,您无法获得当前事务的块,因为该事务将在执行后写入到一个块中(由同行认可)。 >
嗨,Emilio,
我没有在Go中看到SAP的任何链码实现,只是在Javascript中。 似乎SAP对多链比对Hyperledger的贡献更感兴趣。
我希望我能更好地回答您的问题,
谢谢您,通用汽车(gm)
嗨,格雷戈里!,
谢谢您的回答,我只尝试使用GOLANG实现链代码,因为我认为SAP仅支持这种类型的链代码,但是我将研究JS链代码的实现以及MultiChain的阅读。/p>
嗨,埃米利奥,
我相信克里斯托弗已经做出了重要的区分。 我仍然认为SAP实施除了Go之外还需要Java脚本,或者至少这是我在示例应用程序中看到的。
谢谢,
gm
嗨,格雷戈里,
我认为我需要澄清一些事情。 Hyperledger Fabric中有链码,多链中有智能过滤器。
当我们谈论Hyperledger Fabric中的链码时,SAP仅支持Go链码。 官方文档 https://help上有一个示例链码。 sap.com/viewer/cab6d96064454f348689e661d3fe569b/BLOCKCHAIN/en-US/177de60b49df4d11bd9276fae9f1b849.html
然后通过REST API与链码进行交互,并且可以使用您想要的能够进行http调用的任何语言来编写您的应用程序。 因此,如果您看到了一个示例应用程序,则可能是该应用程序是用JavaScript编写的。
MultiChain使用所谓的智能过滤器,这些过滤器是用JavaScript编写的。
希望这会有所帮助。
您好,Christopher
感谢您澄清所有这些问题并提供帮助链接。 如果我弄错了,我将很高兴再次得到纠正。
这是我的理解:示例链代码是用GO编写的,它只是一个文件+ 2个yaml配置文件,它与通道或分类帐(通过垫片)进行通信,并且位于已安装的zip文件中 并实例化到该通道和结构网络。 云平台上托管的实际架构应用程序(和服务)是用Javascript编写的,因此,此实现最终分为三层:
1。 GO
2中的结构。 GO中的链码
3。 代工厂"风味"
中的Java脚本中的服务和应用程序,直到实例化结构服务后,才会启动并公开实际的结构网络。 所有这些代码的使用和重用都有一定的许可含义,但这超出了我们的讨论范围。
很高兴看到结构在SAP平台上进行了讨论。
谢谢 您和最诚挚的问候,
最多设置5个标签!
嗨Emilio,
SAP Hyperledger Fabric Service正在运行1.4版,支持此发行版中包含的用于链码的软件包。
使用Hyperledger Fabric 2.x,一些软件包已移至其他存储库,因此使用go get要求软件包可能会出现一些问题。
一种解决方法是向您的依赖项供应商。 如果尚未完成,请通过运行
来初始化go模块之后,您可以通过运行
来供应依赖项如果要使用版本1.4的链码包,则还必须初始化go模块,但是除了销售外,您还可以通过运行以下代码来要求特定发行版的依赖项:
由于这些依赖项在1.4版中,因此在实例化期间就可以使用它们,而无需供应商。
@Gregory SAP的Hyperledger Fabric服务仅支持Go链码
最好
Christopher
嗨Emilio,
您应该明确地尝试使Go安装正常工作。 有可能已经检查过代码是否在本地构建时,开发起来会更好。
我认为通过此软件包获取当前块号将无法正常工作。 您可以调用一个系统链码来获取有关块和事务的信息,称为" qscc" https://godoc.org/github.com/hyperledger/fabric/core/scc/qscc 要获取当前块,只需查询" getChainInfo",您将获得当前块的高度-> < rel =" nofollow" hraf=" https://github.com/hyperledger/fabric-protos-go/blob/master/common/ledger.pb.go#L25"> https://github.com/hyperledger/ fabric-protos-go/blob/master/common/ledger.pb.go#L25
您可以通过此处记录的shim接口从链代码中调用此链代码 https://godoc.org/github.com/hyperledger/fabric-chaincode-go/shim#ChaincodeStub.InvokeChaincode
回到获取当前块的问题,我想澄清一下,您无法获得当前事务的块,因为该事务将在执行后写入到一个块中(由同行认可)。 >
最好
Christopher
嗨,Emilio,
我没有在Go中看到SAP的任何链码实现,只是在Javascript中。 似乎SAP对多链比对Hyperledger的贡献更感兴趣。
我希望我能更好地回答您的问题,
谢谢您,通用汽车(gm)
嗨,格雷戈里!,
谢谢您的回答,我只尝试使用GOLANG实现链代码,因为我认为SAP仅支持这种类型的链代码,但是我将研究JS链代码的实现以及MultiChain的阅读。/p>
谢谢!
嗨,埃米利奥,
我相信克里斯托弗已经做出了重要的区分。 我仍然认为SAP实施除了Go之外还需要Java脚本,或者至少这是我在示例应用程序中看到的。
谢谢,
gm
嗨,格雷戈里,
我认为我需要澄清一些事情。 Hyperledger Fabric中有链码,多链中有智能过滤器。
当我们谈论Hyperledger Fabric中的链码时,SAP仅支持Go链码。 官方文档 https://help上有一个示例链码。 sap.com/viewer/cab6d96064454f348689e661d3fe569b/BLOCKCHAIN/en-US/177de60b49df4d11bd9276fae9f1b849.html
然后通过REST API与链码进行交互,并且可以使用您想要的能够进行http调用的任何语言来编写您的应用程序。 因此,如果您看到了一个示例应用程序,则可能是该应用程序是用JavaScript编写的。
MultiChain使用所谓的智能过滤器,这些过滤器是用JavaScript编写的。
希望这会有所帮助。
最好
Christopher
您好,Christopher
感谢您澄清所有这些问题并提供帮助链接。 如果我弄错了,我将很高兴再次得到纠正。
这是我的理解:示例链代码是用GO编写的,它只是一个文件+ 2个yaml配置文件,它与通道或分类帐(通过垫片)进行通信,并且位于已安装的zip文件中 并实例化到该通道和结构网络。 云平台上托管的实际架构应用程序(和服务)是用Javascript编写的,因此,此实现最终分为三层:
1。 GO
2中的结构。 GO中的链码
3。 代工厂"风味"
中的Java脚本中的服务和应用程序,直到实例化结构服务后,才会启动并公开实际的结构网络。 所有这些代码的使用和重用都有一定的许可含义,但这超出了我们的讨论范围。
很高兴看到结构在SAP平台上进行了讨论。
谢谢 您和最诚挚的问候,
gm
一周热门 更多>