24小时在线平台

当前位置: 24小时在线平台 > 部署教程大全 > 文章页

network 网络部署流程解析

时间:2025-05-12 03:45来源: 作者:admin 点击: 18 次
文章浏览阅读1.1k次,点赞28次,收藏20次。本文在基于fabricv2.5.9基础上,通过运行network.sh(网络部署脚本),解析其部署流程。_使用ca启动fabric test-networkl

本文在基于fabricv2.5.9基础上,通过运行network.sh(网络部署脚本),解析其部署流程。
启动网络:
在fabric-sample/test-network目录下运行脚本。

./network.sh up createChannel -ca -c mychannel

./network.sh up: 启动网络。
createChannel: 创建一个新的通道。
-ca: 使用Fabric CA来管理身份和证书。Fabric CA会负责为网络中的参与者颁发和管理证书。
-c mychannel: 指定要创建的通道的名称为mychannel

总结:这个命令用于启动一个Hyperledger Fabric网络,创建一个通道,并使用证书颁发机构(CA)来管理证书

流程解析 1.部署fabric-ca 1.1 编写docker-compsoe文件,配置ca信息

文件目录参考:fabric-samples/test-network/compose/compose-ca.yaml

在这里插入图片描述

启动docker容器,基于每个组织至少一个ca的原则,为orderer、org1、org2分别部署一个ca。

在这里插入图片描述

1.2使用fabric ca生成相关证书 生成和配置Org1的节点和用户的身份信息

注册ca admin(ca管理员)

在这里插入图片描述

fabric-ca-client enroll -u https://admin:adminpw@localhost:7054 --caname ca-org1 --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

fabric-ca-client enroll: 表示注册(enroll)一个新身份
-u https://admin:adminpw@localhost:7054: 指定CA服务器的URL,使用管理员账户admin及其密码adminpw进行认证。
--caname ca-org1: 指定CA的名称为ca-org1
--tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem: 指定TLS证书文件,以确保安全连接到CA服务器。

msp目录下存储的文件如下
ca-cert.pem:签名证书,用于标识该节点身份
localhost-7054-ca-org1.pem:根证书文件。用于验证由该CA颁发的证书的真实性。
IssuerPublicKey:颁发者公钥。这个文件包含CA公钥,通常是CA初始化或部署时生成的,供系统内部使用。
IssuerRevocationPublicKey: 专用于验证CA发布的吊销证书列表(CRL)。在需要时由fabric Ca 提供给客户端

登记peer0

fabric-ca-client register --caname ca-org1 --id.name peer0 --id.secret peer0pw --id.type peer --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

fabric-ca-client register: 这是Fabric CA客户端的注册命令,用于在CA中注册新的身份。注册过程只创建身份记录,而不生成证书。
--caname ca-org1: 指定要使用的CA的名称,这里是ca-org1。这可以是Fabric CA服务器上多个CA中的一个。
--id.name peer0: 指定要注册的身份名称,这里是peer0。这是身份的唯一标识符,通常是区块链网络中节点或用户的名称。
--id.secret peer0pw: 指定注册身份的密码,这里是peer0pw。这个密码将在身份注册后用于enroll命令以获取身份的证书。需要注意的是,这个密码是用户自己定义的,在使用时需要保护好。
--id.type peer: 指定身份的类型,这里是peer,表示这是一个对等节点(peer)。其他常见类型有user、admin、orderer等。
--tls.certfiles .../ca-cert.pem: 指定用于TLS连接的CA根证书文件路径。在进行注册时,用于验证CA服务器的身份,确保通信安全。

登记 user

fabric-ca-client register --caname ca-org1 --id.name user1 --id.secret user1pw --id.type client --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

登记 org admin(组织管理员)

fabric-ca-client register --caname ca-org1 --id.name org1admin --id.secret org1adminpw --id.type admin --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

== ca admin(ca管理员)和org admin(组织管理员) ==
org admin: 组织管理员在特定的组织(Org1)中具有管理权限,通常用于管理该组织中的资源,如对等节点、排序节点和用户等。通常用于在网络中执行与组织相关的管理操作,如链码的安装和实例化、策略设置、通道配置管理等。
ca admin:专注于管理CA服务器本身,包括用户注册、证书颁发和管理等任务。其证书用于执行CA级别的管理操作,它不绑定特定的组织,而是管理整个CA服务器的操作。

注册peer0,生成peer0 msp证书

fabric-ca-client enroll -u https://peer0:peer0pw@localhost:7054 --caname ca-org1 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

生成peer0生成tls证书

fabric-ca-client enroll -u https://peer0:peer0pw@localhost:7054 --caname ca-org1 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls --enrollment.profile tls --csr.hosts peer0.org1.example.com --csr.hosts localhost --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

fabric-ca-client enroll: 这是注册(enroll)命令,用于从CA获取证书。
-u https://peer0:peer0pw@localhost:7054: 使用peer0用户名和peer0pw密码认证的CA服务器地址。
--caname ca-org1: 指定CA服务器的名称为ca-org1。
-M .../tls: 指定证书和密钥的存储目录,这里是存放TLS相关的证书和密钥。
--enrollment.profile tls: 指定要使用的注册配置文件为tls,这意味着生成的是用于TLS通信的证书。
--csr.hosts peer0.org1.example.com --csr.hosts localhost: 指定证书的Subject Alternative Names(SANs),这些是证书有效的主机名或IP地址。
--tls.certfiles .../ca-cert.pem: 指定用于TLS通信的CA根证书路径

msp文件与tls文件
msp证书: 用于标识节点的身份和权限。msp证书主要用于对等节点和排序节点之间的身份验证,以及对交易签名的验证。
存储位置: 生成的证书和密钥存储在msp目录中。该目录包含节点的身份证书、私钥、CA证书等信息。

tls证书 : 用于加密节点之间的网络通信,以确保数据传输的机密性和完整性。TLS证书还包括用于验证对等节点和客户端的身份。
存储位置: 生成的证书和密钥存储在tls目录中。该目录包含TLS证书、私钥和CA证书。

MSP证书和TLS证书有不同的用途。MSP证书用于身份验证和授权,而TLS证书用于加密通信和保护数据的机密性。因此,需要分别生成这两种证书。

注册user,生成user msp文件

fabric-ca-client enroll -u https://user1:user1pw@localhost:7054 --caname ca-org1 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

对于用户来说,TLS证书通常不需要,因为用户的主要作用是在网络上提交交易和查询链码,而不是直接与其他节点进行加密通信。故未生成注册tls证书

注册org admin ,生成org admin msp文件

fabric-ca-client enroll -u https://org1admin:org1adminpw@localhost:7054 --caname ca-org1 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org1/ca-cert.pem

组织管理员主要负责网络的配置和管理,而TLS证书的主要作用是保护节点间的通信。由于组织管理员的工作主要是在管理层面,而不直接涉及节点间的通信加密,因此通常不需要TLS证书。网络中已经通过节点端的TLS证书确保了通信的安全性,故未生成tls证书

生成和配置Org2的节点和用户的身份信息

注册ca管理员

fabric-ca-client enroll -u https://admin:adminpw@localhost:8054 --caname ca-org2 --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

登记peer0

fabric-ca-client register --caname ca-org2 --id.name peer0 --id.secret peer0pw --id.type peer --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

登记user

fabric-ca-client register --caname ca-org2 --id.name user1 --id.secret user1pw --id.type client --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

登记org admin

fabric-ca-client register --caname ca-org2 --id.name org2admin --id.secret org2adminpw --id.type admin --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

注册peer0,生成peer0 msp文件

fabric-ca-client enroll -u https://peer0:peer0pw@localhost:8054 --caname ca-org2 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

生成peer0 tls 文件

fabric-ca-client enroll -u https://peer0:peer0pw@localhost:8054 --caname ca-org2 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls --enrollment.profile tls --csr.hosts peer0.org2.example.com --csr.hosts localhost --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

生成user msp 文件

fabric-ca-client enroll -u https://user1:user1pw@localhost:8054 --caname ca-org2 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem

生成org admin msp 文件

fabric-ca-client enroll -u https://org2admin:org2adminpw@localhost:8054 --caname ca-org2 -M /home/savia/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/org2/ca-cert.pem 生成和配置Orderer Org的节点的身份信息

注册ca管理员

fabric-ca-client enroll -u https://admin:adminpw@localhost:9054 --caname ca-orderer --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem

登记orderer 节点

fabric-ca-client register --caname ca-orderer --id.name orderer --id.secret ordererpw --id.type orderer --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem

登记组织管理员

fabric-ca-client register --caname ca-orderer --id.name ordererAdmin --id.secret ordererAdminpw --id.type admin --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem

注册orderer节点,生成msp文件

fabric-ca-client enroll -u https://orderer:ordererpw@localhost:9054 --caname ca-orderer -M /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem

生成orderer tls文件

fabric-ca-client enroll -u https://orderer:ordererpw@localhost:9054 --caname ca-orderer -M /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls --enrollment.profile tls --csr.hosts orderer.example.com --csr.hosts localhost --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem

注册组织管理员,生成msp生成证书

fabric-ca-client enroll -u https://ordererAdmin:ordererAdminpw@localhost:9054 --caname ca-orderer -M /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/users/Admin@example.com/msp --tls.certfiles /home/savia/fabric-samples/test-network/organizations/fabric-ca/ordererOrg/ca-cert.pem 2.为网络中的组织(Org1,Org2)生成CCP文件

CCP文件是一个JSON或YAML格式的文件,用于配置客户端应用程序,使其能够连接到Hyperledger Fabric网络中的不同组织和节点。如:

组织和节点信息

证书和密钥路径(用于身份验证和授权的证书和密钥路径,以确保客户端能够安全地与网络中的节点进行通信)

通道信息

通过在客户端应用程序中加载CCP文件,并结合Fabric Gateway API,你可以安全地连接到区块链网络并执行各种操作。

注意:CCP文件在Hyperledger Fabric网络的部署阶段并不直接使用,它主要用于客户端应用程序来连接和操作已经部署好的网络。客户端配置和操作则依赖于CCP文件提供的网络连接信息

本例中通过ccp-generate.sh生成ccp文件,参考文件目录:fabric-samples/test-network/ccp-generate.sh
脚本将根据提供的模板分别生成各组织的CCP文件:

在这里插入图片描述

3.部署节点 3.1编写docker-compose文件,配置节点信息

文件参考目录:fabric-samples/test-network/compose/compose-test-net.yaml

在这里插入图片描述


在这里插入图片描述


启动docker容器,整体网络结构如下:

在这里插入图片描述

4.创建通道 4.1生成创世块 4.1.1生成configtx.yaml配置文件

文件参考目录:fabric-samples/test-network/configtx/configtx.yaml
(文件具体内容,参考源文件,本图只截取部分内容)

在这里插入图片描述


configtx.yaml 文件定义了通道配置文件和创世块配置所需的各种参数和选项。configtxgen 工具通过读取 configtx.yaml 文件中的配置,生成包含这些配置的创世块。
注意:默认情况下,configtxgen 工具会在当前工作目录下查找名为 configtx.yaml 的文件。如果 configtx.yaml 文件位于不同的目录,或者希望指定特定的文件路径,需要使用 FABRIC_CFG_PATH 环境变量来指向包含该文件的目录。

4.1.2生成通道的创世块(genesis block) configtxgen -profile ChannelUsingRaft -outputBlock ./channel-artifacts/mychannel.block -channelID mychannel

configtxgen: Hyperledger Fabric工具,用于生成通道配置交易和创世块。

-profile ChannelUsingRaft:

-profile 参数指定了生成创世块所使用的配置文件的配置名称。

ChannelUsingRaft 指定使用 configtx.yaml 配置文件中的ChannelUsingRaft配置

-outputBlock ./channel-artifacts/mychannel.block:

-outputBlock 参数指定了输出创世块的文件路径。

./channel-artifacts/mychannel.block 表示将生成的创世块保存到 channel-artifacts 目录下的 mychannel.block 文件中。

-channelID mychannel:

-channelID 参数指定了通道的ID,这个ID将被用于识别通道。

mychannel 是通道的名称。

4.2排序节点加入通道

本例中使用orderer.sh脚本执行
文件参考目录:scripts/orderer.sh
执行命令:. scripts/orderer.sh mychannel

在这里插入图片描述

osnadmin channel join --channelID ${channel_name} --config-block ./channel-artifacts/${channel_name}.block -o localhost:7053 --ca-file "$ORDERER_CA" --client-cert "$ORDERER_ADMIN_TLS_SIGN_CERT" --client-key "$ORDERER_ADMIN_TLS_PRIVATE_KEY"

使用 osnadmin 命令行工具来让排序节点加入指定的通道。

osnadmin channel join: 命令用于将排序节点加入到指定的通道。

--channelID ${channel_name}: 指定通道ID,即通道的名称。

--config-block ./channel-artifacts/${channel_name}.block: 提供通道配置块的路径,这是创建通道时生成的文件。

-o localhost:7053: 指定排序节点的地址和端口,这里使用了 localhost 和端口 7053。

--ca-file “$ORDERER_CA”: 指定排序节点的CA证书文件路径。这个证书用于验证排序节点的TLS连接。

--client-cert “$ORDERER_ADMIN_TLS_SIGN_CERT”: 指定客户端的TLS证书,用于身份验证。

--client-key “$ORDERER_ADMIN_TLS_PRIVATE_KEY”: 指定客户端的TLS私钥。

成功后将输出:

在这里插入图片描述


至此通道已经激活,可供peer加入。

5.将peer加入到通道 5.1将org1 peer加入到通道中

Using organization 1
这里要以org1的身份去执行,执行以下操作:

export CORE_PEER_TLS_ENABLED=true export CORE_PEER_LOCALMSPID=Org1MSP export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051

执行命令,将peer加入到通道中:

peer channel join -b ./channel-artifacts/mychannel.block 5.2将org2 peer加入到通道中

Using organization 2(同上)

peer channel join -b ./channel-artifacts/mychannel.block 5.3 配置锚节点

组织将peer加入到通道后,应选择至少一名peer称为锚节点。锚节点是利用私有数据和服务发现等共所必须的。

5.3.1配置Org1锚节点

Using organization 1

获取通道配置

peer channel fetch config /home/savia/fabric-samples/test-network/channel-artifacts/config_block.pb -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com -c mychannel --tls --cafile /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem

从排序服务中获取了当前通道 mychannel 的最新配置区块,并将其保存为 config_block.pb 文件。
peer channel fetch config: 获取通道配置块。
/home/savia/fabric-samples/test-network/channel-artifacts/config_block.pb: 配置块保存的位置。
-o localhost:7050: 排序服务的地址。
--ordererTLSHostnameOverride orderer.example.com: 由于使用了 TLS 进行加密,重写排序服务的主机名以匹配证书中的主机名。
--tls :使用 TLS 连接排序服务
--cafile /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: 使用 TLS 进行安全连接,并指定 CA 证书文件。

解码配置块

configtxlator proto_decode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_block.pb --type common.Block --output /home/savia/fabric-samples/test-network/channel-artifacts/config_block.json jq '.data.data[0].payload.data.config' /home/savia/fabric-samples/test-network/channel-artifacts/config_block.json

使用 configtxlator 解码配置块,将配置块从 protobuf 格式转换为 JSON 格式,以便于编辑和查看。
( jq 命令用于提取 config 部分,并将其保存为 Org1MSPconfig.json)
configtxlator proto_decode --input ... --type common.Block --output ...: 将 protobuf 格式的配置块解码为 JSON 格式。
jq '.data.data[0].payload.data.config': 从 JSON 文件中提取 config 部分。

在通道中生成Org2的锚节点更新交易

生成锚节点更新交易

jq '.channel_group.groups.Application.groups.Org1MSP.values += {"AnchorPeers":{"mod_policy": "Admins","value":{"anchor_peers": [{"host": "peer0.org1.example.com","port": 7051}]},"version": "0"}}' /home/savia/fabric-samples/test-network/channel-artifacts/Org1MSPconfig.json

编辑 Org1MSPconfig.json 文件,将 AnchorPeers 信息添加到 Org1MSP 组。此步骤指定了 peer0.org1.example.com 为 Org1 的锚节点,端口为 7051。
jq 用于在 JSON 文件中添加锚节点配置信息。
· .channel_group.groups.Application.groups.Org1MSP.values += …将 AnchorPeers 添加到 Org1MSP 的配置中。“AnchorPeers”:{“mod_policy”: “Admins”, …}`: 定义锚节点的配置,包括节点的主机名和端口。

生成更新交易

configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/Org1MSPconfig.json --type common.Config --output /home/savia/fabric-samples/test-network/channel-artifacts/original_config.pb configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/Org1MSPmodified_config.json --type common.Config --output /home/savia/fabric-samples/test-network/channel-artifacts/modified_config.pb configtxlator compute_update --channel_id mychannel --original /home/savia/fabric-samples/test-network/channel-artifacts/original_config.pb --updated /home/savia/fabric-samples/test-network/channel-artifacts/modified_config.pb --output /home/savia/fabric-samples/test-network/channel-artifacts/config_update.pb configtxlator proto_decode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_update.pb --type common.ConfigUpdate --output /home/savia/fabric-samples/test-network/channel-artifacts/config_update.json jq .

使用 configtxlator 将修改后的配置(包括锚节点信息)编码为 protobuf 格式,并生成更新交易文件 Org1MSPanchors.tx。
configtxlator proto_encode --input ... --type common.Config --output ...:将 JSON 格式的配置编码为 protobuf 格式,以便进行差异计算。
configtxlator compute_update --channel_id mychannel --original ... --updated ... --output ...: 计算原始配置和更新后的配置之间的差异,生成更新交易。
configtxlator proto_decode --input ... --type common.ConfigUpdate --output ...: 将生成的更新交易解码为 JSON 格式,以供进一步检查和提交。

提交更新

configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_update_in_envelope.json --type common.Envelope --output /home/savia/fabric-samples/test-network/channel-artifacts/Org1MSPanchors.tx

提交锚节点更新交易到通道 mychannel。这个步骤将更新应用到通道配置中,设置 Org1 的锚节点。
configtxlator proto_encode --input ... --type common.Envelope --output …: 将更新交易编码为 Envelop 格式。
channel update: 提交更新交易,应用锚节点设置。

5.3.2配置Org2锚节点

Using organization 2

获取通道配置

peer channel fetch config /home/savia/fabric-samples/test-network/channel-artifacts/config_block.pb -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com -c mychannel --tls --cafile /home/savia/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem

解码配置块

configtxlator proto_decode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_block.pb --type common.Block --output /home/savia/fabric-samples/test-network/channel-artifacts/config_block.json jq '.data.data[0].payload.data.config' /home/savia/fabric-samples/test-network/channel-artifacts/config_block.json

在通道中生成Org2的锚节点更新交易

jq '.channel_group.groups.Application.groups.Org2MSP.values += {"AnchorPeers":{"mod_policy": "Admins","value":{"anchor_peers": [{"host": "peer0.org2.example.com","port": 9051}]},"version": "0"}}' /home/savia/fabric-samples/test-network/channel-artifacts/Org2MSPconfig.json configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/Org2MSPconfig.json --type common.Config --output /home/savia/fabric-samples/test-network/channel-artifacts/original_config.pb configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/Org2MSPmodified_config.json --type common.Config --output /home/savia/fabric-samples/test-network/channel-artifacts/modified_config.pb configtxlator compute_update --channel_id mychannel --original /home/savia/fabric-samples/test-network/channel-artifacts/original_config.pb --updated /home/savia/fabric-samples/test-network/channel-artifacts/modified_config.pb --output /home/savia/fabric-samples/test-network/channel-artifacts/config_update.pb configtxlator proto_decode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_update.pb --type common.ConfigUpdate --output /home/savia/fabric-samples/test-network/channel-artifacts/config_update.json jq . configtxlator proto_encode --input /home/savia/fabric-samples/test-network/channel-artifacts/config_update_in_envelope.json --type common.Envelope --output /home/savia/fabric-samples/test-network/channel-artifacts/Org2MSPanchors.tx

至此,一个基础的区块链网络部署完成,可根据自身需求,基于fabric-sample提供的应用程序示例,部署相应的链码测试。

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-06-26 13:06 最后登录:2025-06-26 13:06
栏目列表
推荐内容