在客户端应用程序(使用 Node/Go)中,我们提供连接配置文件来识别背书者的端点。
在那里,我们根据 grpc://localhost:port 指定对等点的端点,但实际上 gRPC 在 HTTP2 上运行,对吗?
那么 Fabric SDK 是将端点转换为 HTTP url 还是由 Fabric 对等代码处理?
我的意思是如何将 grpc 端点转换为 HTTP 端点?
还是对等方暴露了 grpc 端点本身?如果是,如何?
在客户端应用程序(使用 Node/Go)中,我们提供连接配置文件来识别背书者的端点。
在那里,我们根据 grpc://localhost:port 指定对等点的端点,但实际上 gRPC 在 HTTP2 上运行,对吗?
那么 Fabric SDK 是将端点转换为 HTTP url 还是由 Fabric 对等代码处理?
我的意思是如何将 grpc 端点转换为 HTTP 端点?
还是对等方暴露了 grpc 端点本身?如果是,如何?
对于前端和 Hyperledger Fabric 层之间的通信,我们有两种方式,一种使用 gRPC 调用,或者使用 Hyperledger 社区提供的 SDK 之一。v1.0 之后没有 REST API 调用,而 v0.6 有 REST API 调用,您可以使用 IP 地址向 Orderer 发起交易,然后是 Consensus。
将其限制为 gRPC 和 SDK 可以改善设计和连接安全问题,这对于区块链的工作至关重要。gRPC 是用于通信的 HTTPS 2.0 协议,它比 HTTPS 1.1 速度更快并且具有改进的安全功能。SDK 使用 gRPC 调用与网络通信。所以,说白了,如果你需要和网络通信,你只需要使用 gRPC 调用
正如@david_k 在上面的评论中所建议的,连接配置文件中的 URL 用于在识别它是grpc还是grpcs(通过 SSL)调用后提取主机和端口号。
验证:
fabcar
示例并安装节点模块。Endpoint.js
内fabric-common
节点模块中的lib
文件。在此处编辑与第 44 行对应的行。first-network
目录(fabcar 示例使用的网络)以编辑连接配置文件。替换与您在节点模块中对文件所做的编辑相对应的 peer 和orderer URL 中的 grpcs。Endpoint.js
javascript
目录并获取钱包身份。invoke.js
以读取新的连接配置文件。因此,我们可以确定只有主机和端口是从 URL 中获取的,用于对结构网络进行grpc/grpcs调用。