Fabric测试与基础

news/2024/10/18 3:29:50/

Fabric官网:Introduction — hyperledger-fabricdocs main documentation

1.测试网络

./network.sh up  #启动
./network.sh down  #关闭

 2.Fabric核心模块

peer:主节点模块,负责存储区块链数据,运行维护链码

orderer:交易打包、排序模块

cryptogen:组织和证书生成模块

configtxgen:区块和交易生成模块

configtxlator:区块和交易解析模块

peer与orderer属于系统模块,其它三个属于工具模块

3.cryptogen模块的配置文件

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
## ---------------------------------------------------------------------------
# "OrdererOrgs" - 管理orderer节点的组织的定义
# ---------------------------------------------------------------------------
OrdererOrgs: # 定义管理orderer节点的组织# ---------------------------------------------------------------------------# Orderer# ---------------------------------------------------------------------------- Name: Orderer #这个组织的名字叫 OrdererDomain: hmw.com #这个组织的域名是 hmw.com# 生成证书的时候,证书内会包含Name和Domain信息,orderer.hmw.com就是这个组织的地址EnableNodeOUs: true# ---------------------------------------------------------------------------# "Specs"# ---------------------------------------------------------------------------# Uncomment this section to enable the explicit definition of hosts in your# configuration.  Most users will want to use Template, below## Specs is an array of Spec entries.  Each Spec entry consists of two fields:#   - Hostname:   (Required) The desired hostname, sans the domain.#   - CommonName: (Optional) Specifies the template or explicit override for#                 the CN.  By default, this is the template:##                              "{{.Hostname}}.{{.Domain}}"##                 which obtains its values from the Spec.Hostname and#                 Org.Domain, respectively.# ---------------------------------------------------------------------------#   - Hostname: foo # implicitly "foo.org1.example.com"#     CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above#   - Hostname: bar#   - Hostname: baz# ---------------------------------------------------------------------------# "Specs" - See PeerOrgs for complete description# ---------------------------------------------------------------------------# 对于一个Spec来说,配置了CommonName,那么文件夹则命名为CommonName# 如果没有配置CommonName,则文件名为:{{.Hostname}}.{{Domain}}# 在下面的例子中,在 organizations/ordererOrganizations/hmw.com/orderers 目录下# 则会产生两个文件orderer0.hmw.com、orderer1.hmw.com、orderer2.hmw.com,# 如果没有加CommonName,则目录名为order.example.com与order5.example.comnSpecs:- Hostname: orderer0SANS:- localhost- Hostname: orderer1SANS:- localhost- Hostname: orderer2SANS:- localhost#  CommonName: orderer0.hmw.com#- Hostname: orderer1#  CommonName: orderer1.hmw.com# Hostname: orderer2#  CommonName: orderer2.hmw.com# ---------------------------------------------------------------------------
# "PeerOrgs" - 管理对等节点的组织的定义
# ---------------------------------------------------------------------------
PeerOrgs:# ---------------------------------------------------------------------------# 定义Org1组织# ---------------------------------------------------------------------------- Name: Org1 #组织名称Domain: org1.hmw.com #域名称EnableNodeOUs: true # 如果设置了 EnableNodeOUs ,就在msp下生成config.yaml文件# ---------------------------------------------------------------------------# "Template"# ---------------------------------------------------------------------------# Template是按照Template模板生成多个文件,数量由Count决定,起始编号由Start决定# 如下配置会在 organizations/peerOrganizations/org1.hmw.com/peers目录下,# 生成两个文件,分别是 peer0.org1.hmw.com 和 peer1.org1.hmw.com# 如果把Start注释去掉,那么会生成 peer5.org1.hmw.com 和 peer6.org1.hmw.comTemplate: # 组织中peer节点的数目Count: 2SANS:- localhost# Start: 5# Hostname: {{.Prefix}}{{.Index}} # default# ---------------------------------------------------------------------------# "Users"# ---------------------------------------------------------------------------# Count: The number of user accounts _in addition_ to Admin# ---------------------------------------------------------------------------# Users是生成除了Admin之外多少个user,数量由Count决定# 对于orderer组织,这个值设置了也没有效果# 如果配置会在 organizations/peerOrganizations/org1.hmw.com/users目录下,# 生成两个文件,分别是Admin@org1.hmw.com和User1@org1.hmw.com# 如果改为2,那么会多一个User2@org1.hmw.comUsers:Count: 1 #除Admin之外的用户账户数目

4.configtxgen模块配置文件

#Profiles 配置入口
Profiles:# # TwoOrgsOrdererGenesis用来生成orderer启动时所需的block,用于生成创世区块,名字可以任意TwoOrgsApplicationGenesis:<<: *ChannelDefaults# 指定Orderer系统通道自身的配置信息Orderer:<<: *OrdererDefaultsOrganizations:- *OrdererOrg  # 引用 Orderer 部分的配置 &OrdererDefaultsCapabilities: *OrdererCapabilities  #引用&OrdererCapabilitiesApplication:<<: *ApplicationDefaultsOrganizations:- *Org1- *Org2Capabilities: *ApplicationCapabilities#orderer节点相关信息
Orderer: &OrdererDefaults# Orderer 类型: 要启动的Orderer实现类型# 定义order共识机制OrdererType: etcdraft# 地址曾经是Client和peer可以连接到的orderer地址列表。 但是,这不允许client关联orderer地 # 址和orderer组织,这对于诸如 TLS 验证之类的事情很有用。 现在,指定订购者地址的首选方法是 # 在您的组织定义中包含 OrdererEndpoints 项Addresses:- orderer0.hmw.com:7050- orderer1.hmw.com:7052- orderer2.hmw.com:7054# 定义了EtcdRaft排序类型被选择时的配置EtcdRaft:Consenters:- Host: orderer0.hmw.comPort: 7050ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer0.hmw.com/tls/server.crtServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer0.hmw.com/tls/server.crt- Host: orderer1.hmw.comPort: 7052ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer1.hmw.com/tls/server.crtServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer1.hmw.com/tls/server.crt- Host: orderer2.hmw.comPort: 7054ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer2.hmw.com/tls/server.crtServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer2.hmw.com/tls/server.crt# 区块打包的最大超时时间 (到了该时间就打包区块)BatchTimeout: 2s# 区块打包的最大包含交易数(orderer端切分区块的参数)BatchSize:# 一个区块里最大的交易数MaxMessageCount: 10# 一个区块的最大字节数,任何时候都不能超过AbsoluteMaxBytes: 99 MB# 一个区块的建议字节数,如果一个交易消息的大小超过了这个值, 就会被放入另外一个更大的区 # 块中PreferredMaxBytes: 512 KB# 参与维护Orderer的组织,默认为空Organizations:Policies:Readers:Type: ImplicitMetaRule: "ANY Readers"Writers:Type: ImplicitMetaRule: "ANY Writers"Admins:Type: ImplicitMetaRule: "MAJORITY Admins"# BlockValidation 指定了必须在来自 orderer 的块中包含哪些签名,以便对等方对其进行验# # 证。BlockValidation:Type: ImplicitMetaRule: "ANY Writers"#Organizations部分
Organizations:- &OrdererOrg# 组织名称Name: OrdererOrg# 组织ID,ID是引用组织的关键ID: OrdererMSP# 组织的MSP证书路径MSPDir: ../organizations/ordererOrganizations/hmw.com/msp# 定义本层级的组织策略,其权威路径为 /Channel/<Application|Orderer>/<OrgName>/<PolicyName>Policies:Readers:Type: SignatureRule: "OR('OrdererMSP.member')"Writers:Type: SignatureRule: "OR('OrdererMSP.member')"Admins:Type: SignatureRule: "OR('OrdererMSP.admin')"OrdererEndpoints:- orderer0.hmw.com:7050- orderer1.hmw.com:7052- orderer2.hmw.com:7054- &Org1Name: Org1MSPID: Org1MSPMSPDir: ../organizations/peerOrganizations/org1.hmw.com/mspPolicies:Readers:Type: SignatureRule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"Writers:Type: SignatureRule: "OR('Org1MSP.admin', 'Org1MSP.client')"Admins:Type: SignatureRule: "OR('Org1MSP.admin')"Endorsement:Type: SignatureRule: "OR('Org1MSP.peer')"- &Org2Name: Org2MSPID: Org2MSPMSPDir: ../organizations/peerOrganizations/org2.hmw.com/mspPolicies:Readers:Type: SignatureRule: "OR('Org2MSP.admin', 'Org2MSP.peer', 'Org2MSP.client')"Writers:Type: SignatureRule: "OR('Org2MSP.admin', 'Org2MSP.client')"Admins:Type: SignatureRule: "OR('Org2MSP.admin')"Endorsement:Type: SignatureRule: "OR('Org2MSP.peer')"#kafka相关配置Kafka:Brokers:- kafka0:9092- kafka1:9092- kafka2:9092- kafka3:9092
Organizations:Application: &ApplicationDefaultsOrganization:


http://www.ppmy.cn/news/58097.html

相关文章

DAY 49 tomcat服务配置优化

什么是Tomcat Tomcat是Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的Web应用服务器&#xff0c;是Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun和其他一些公司及人共同开发而成。 Tomcat属于轻量级应用服务器&#xff0…

selenium多实例爬虫的忠告和参数配置

使用多进程 加快爬虫速度的方法有几种&#xff0c;异步&#xff0c;多线程&#xff0c;多进程和分布式&#xff0c;不管是哪种都会用到多实例。这几种方法中&#xff0c;只有多进程适合selenium&#xff0c;selenium本身不支持异步&#xff0c;多线程曾经尝试过似乎有问题。 …

【算法】九键输入法

题目&#xff1a; 输入数字字符串, 输出这串字符对应的九键输入法有可能出现的所有情况 算法&#xff1a; 定义了一个全局变量 g_numStr&#xff0c;其中存储了每个数字对应的字母。定义了一个递归函数 str_combine&#xff0c;用于将每个数字对应的字母进行组合。str_combin…

自动驾驶TPM技术杂谈 ———— I-vista验收标准(试验规程)

文章目录 术语介绍试验准备场地要求环境要求精度要求边界车辆&路沿石 试验方法能力试验双边界车辆平行车位白色标线平行车位双边界车辆垂直车位白色标线垂直车位方柱垂直车位双边界车辆斜向车位白色标线斜向车位 新功能评价平行车位远程操控泊入泊出试验垂直车位远程操控泊…

无损以太网与网络拥塞管理(PFC、ECN)

无损以太网 无损以太网&#xff08;Lossless Ethernet&#xff09;是一种专门用于数据中心网络的网络技术&#xff0c;旨在提供低延迟、高吞吐量和可靠性的传输服务。它是在传统以太网的基础上进行了扩展&#xff0c;引入了新的拥塞管理机制&#xff0c;以避免数据包丢失和网络…

前端存储 Cookie、Web Storage(localStorage 与 sessionStorage)

cookie 由来&#xff1a;cookie 最初的目的是为了维持前端存储的临时状态而产生的。原理&#xff1a; 浏览器发出无状态请求服务器返回响应&#xff0c;携带 cookie 信息浏览器发出接口请求&#xff0c;携带 cookie 信息之后就是前端与服务器建立完成连接后的接口返回了 生成机…

浅聊AIOT

引言 IoT是(Internet of Things)的简称&#xff0c;也就是人们常说的物联网&#xff1b;随着智能硬件的发展和推广&#xff0c;制造成本也随之下降&#xff0c;很多的厂家也慢慢地拥抱网络互联&#xff0c;逐步实现设备互联&#xff0c;也就进入了人们常说的万物互联时代。虽然…

IDEA常用提升效率的操作小记

IDEA目前是使用最广泛的Java开发工具之一了&#xff0c;虽然是收费的&#xff0c;但是也提供了免费的社区版&#xff0c;并且收费版也支持使用github的开源项目&#xff0c;使用免费license&#xff0c;虽然每年都要续&#xff0c;我用的就是开源项目申请的免费license。 开发…