Hyperledger Fabric 中的动态通道工件(channel.tx)
Dynamic Channel artifacts(channel.tx) in Hyperledger Fabric
是否有任何其他方法可以为 Hyperledger-Fabric 通道创建生成通用通道工件(channel.tx),以便可以在运行时单独更改通道名称,而不是使用不同的通道发出以下命令每个新频道的名称。
./bin/configtxgen -profile OneOrgChannel -outputCreateChannelTx
./config/channel5.txt
这不完全是您正在寻找的答案,但我们在 java 应用程序中使用 ProcessBuilder 动态执行此操作。这样我们就可以按需创建新通道 - 它最终嵌入到 REST 服务中,允许您(一个)根据需要传递 configtx 文件。
只要加密已经生成(我们在另一项服务中生成),您就可以按需生成。
所以aatk的回答应用了sidecar模式来解决这个问题,通过运行实际应用端的configtxgen。但是,您可以从应用程序本身执行此操作。
使用 configtxgen
生成的 通道配置交易 是一个包含 common.Envelope 消息的 protobuf 的文件。 Java 中支持 protobuf,并且由于 Fabric Java SDK,Envelope 消息已编译为 Java。我们可以借助 SDK 来创建对象并获取 ByteArray 来创建将用于创建通道的 ChannelConfiguration 对象。此方法根本不需要 configtx.yaml
文件,因此您需要在应用程序中跟踪组织及其 MSP ID。
是否有任何其他方法可以为 Hyperledger-Fabric 通道创建生成通用通道工件(channel.tx),以便可以在运行时单独更改通道名称,而不是使用不同的通道发出以下命令每个新频道的名称。
./bin/configtxgen -profile OneOrgChannel -outputCreateChannelTx ./config/channel5.txt
这不完全是您正在寻找的答案,但我们在 java 应用程序中使用 ProcessBuilder 动态执行此操作。这样我们就可以按需创建新通道 - 它最终嵌入到 REST 服务中,允许您(一个)根据需要传递 configtx 文件。
只要加密已经生成(我们在另一项服务中生成),您就可以按需生成。
所以aatk的回答应用了sidecar模式来解决这个问题,通过运行实际应用端的configtxgen。但是,您可以从应用程序本身执行此操作。
使用 configtxgen
生成的 通道配置交易 是一个包含 common.Envelope 消息的 protobuf 的文件。 Java 中支持 protobuf,并且由于 Fabric Java SDK,Envelope 消息已编译为 Java。我们可以借助 SDK 来创建对象并获取 ByteArray 来创建将用于创建通道的 ChannelConfiguration 对象。此方法根本不需要 configtx.yaml
文件,因此您需要在应用程序中跟踪组织及其 MSP ID。