0

在以太坊上,通过检查 EtherScan 上的交易,您可以看到用于该交易的公共链码。

我想查看用于交易的链码,或者可能检索在通道上实例化的当前链码。是否有可能从 SDK 中检索 Hyperledger 合约的代码并通过 API 将其返回?

4

1 回答 1

0

以太坊是一个公共区块链平台。另一方面,Hyperledger Fabric 是一个私有和许可的区块链平台。

在以太坊的情况下,能够看到用于交易的公共智能合约是有道理的,但同样的概念不适用于 Hyperledger Fabric。链码(智能合约)是通过 SDK 或 CLI 安装并实例化到 Hyperledger Fabric 对等节点网络上的一段代码,可与该网络的共享账本进行交互。

您可以通过 SDK 或 CLI 调用可供您使用的链代码 API,例如查询、调用、获取密钥的历史记录等,但您无法获取链代码的完整代码。

尝试以这种方式理解。在传统应用程序中,您拥有后端服务和前端服务,它们可能运行在相同或不同的服务器上。前端通常可以通过 Rest API 与您的后端服务进行交互,但是后端服务是否允许您查看它的整个代码库?绝不。

同样的概念在这里也适用。尽管链码包由参与的每个组织成员签名,但这样做是为了保持网络的透明度。

此外,我认为不会出现任何能够从 SDK 或 CLI 查看链码的情况。应该限制​​对链码代码库的访问,并且相关组织的授权成员始终可以访问它。

于 2020-08-06T18:12:17.930 回答