当您将 BNA 文件部署到 Hyperledger Composer 时会发生什么?

What is happening when you deploy a BNA file to Hyperledger Composer?

在我整理好我的业务网络定义之后,部署该包后对等点上实际发生了什么?我对超级账本节点如何解释 javascript 特别感兴趣,因为这似乎不是链代码支持的语言。

Composer 链码是用 Go 编写的。它使用 Duktape Javascript 解释器在 Go 进程中执行用户(和系统)JS 代码。

Composer 链码将 public JS API 映射到底层 Fabric Go API 调用。

从 Fabric 的角度来看,这只是一段 "normal" 的 Go 链代码,尽管相当复杂!

当您 "deploy" 使用 Composer CLI 的业务网络时,您实际上在做两件事:

  • 部署 Composer 链代码 (Go) 并启动它
  • 部署业务网络存档的字节并将其存储在世界状态中,以便在您提交交易时解释器可以使用它

将来我们希望通过本机 Node.js 执行替换 Duktape 的使用。感谢 Fabric 的模块化架构(以及 Docker 容器和 gRPC 的使用)这应该是可能的。