简洁个人博客网站模板下载,企业网站建设费怎么入账,网站建设和优化内容最重要性,1000禁用黄app软件排行文中使用的 fabric 版本为 2.4.1 在 Fabric 网络中#xff0c;用户可以设定 Peer 节点、排序节点、CA 节点的行为#xff0c;以及管理通道、组织身份等多种资源#xff0c;这都涉及网络内配置。
Fabric 节点在启动时可通过加载本地配置文件或环境变量等方式获取配置信息用户可以设定 Peer 节点、排序节点、CA 节点的行为以及管理通道、组织身份等多种资源这都涉及网络内配置。
Fabric 节点在启动时可通过加载本地配置文件或环境变量等方式获取配置信息同时结合少量命令行参数。
通常用户需要提前编写配置文件供服务启动时使用也可以仅在配置文件中指定部分默认值使用环境变量动态指定可以实现更灵活的配置加载。
默认情况下Fabric 节点的主配置路径为 FABRIC_CFG_PATH 环境变量所指向路径默认为 /etc/hyperledger/fabric。在不显式指定配置路径时会尝试从主配置路径下查找相关的配置文件。
节点默认配置文件路径主要功能Peer 节点$FABRIC_CFG_PATH/core.yaml指定 peer 节点运行时参数Orderer$FABRIC_CFG_PATH/orderer.yaml指定 orderer 节点运行时参数CA 节点$FABRIC_CA_SERVER_HOME/fabric-ca-server-config.yaml指定 CA 节点运行时参数
除了各节点配置文件Fabric 还在每个通道内通过配置区块来维护通道范围的配置信息通道配置可由 configtx.yaml 文件设定。
这些配置需要使用特定工具进行管理这些工具包括 cryptogen 、configtxgen 和 configtxlator
工具默认配置文件路径主要功能cryptogen命令行参数 --config 指定负责生成网络中组织结构和身份文件configtxgen命令行参数 --configPath 指定利用 configtx.yaml 文件生成通道初始配置创建配置更新交易configtxlatorN/A将通道配置在二进制和 JSON 格式之间进行转换并计算配置更新量 Peer 配置剖析
mark 当 Peer 节点启动时会按照优先级从高到低的顺序依次尝试从命令行参数、环境变量和配置文件中读取配置信息。/mark
mark 当从环境变量中读入配置信息时候除了日志使用单独的 FABRIC_LOGGING_SPEC 环境变量进行指定其他都需要以 CORE_前缀开头。例如配置文件中的 peer.id 项对应环境变量 CORE_PEER_ID。 当从环境变量中读入配置信息时候除了日志使用单独的 FABRIC_LOGGING_SPEC 环境变量进行指定其他都需要以 CORE_前缀开头。例如配置文件中的 peer.id 项对应环境变量 CORE_PEER_ID。/mark
markPeer 节点默认的配置文件读取路径为 $FABRIC_CFG_PATH/core.yaml如果没找到则尝试查找当前目录下的./core.yaml 文件如果还没有找到则尝试查找默认的 /etc/hyperledger/fabric/core.yaml 文件。/mark
mark 在结构上core.yaml 文件中包括 peer、vm、chaincode、ledger、operations、metrics 六大部分。/mark peer 部分
peer 部分包括与服务直接相关的核心配置内容比较多。除了一些常规配置还包括 keepalive、Gossip、TLS、BCCSP、handler、discover 等多个配置部分。
配置项类型作用默认值id常规配置Peer 在网络中的 ID 信息用于辨识不同的节点N/AnetworkId常规配置网络自身的 ID逻辑上可以通过 ID 指定多个隔离的网络N/AlistenAddress常规配置服务监听的本地地址本地有多个网络接口时可指定仅监听某个接口0.0.0.0:7051address常规配置对同组织内其他节点的监听连接地址。当服务在 NAT 设备上运行时该配置可以指定服务对外宣称的可访问地址。如果是客户端则作为其连接的 Peer 服务地址0.0.0.0:7051addressAutoDetect常规配置是否自动探测服务地址。当 Peer 服务运行环境的地址是动态时该配置可以进行自动探测探测将内部地址作为服务地址。默认情况下关闭。注意启用 TLS 时候最好关闭以免与指定的域名冲突造成认证失败falsefileSystemPath常规配置本地数据存放路径包括账本、链码等/var/hyperledger/productionmspConfigPath常规配置MSP 目录所在的路径可以为绝对路径或相对配置目录的路径一般建议为 /etc/hyperledger/fabric/mspmsplocalMspId常规配置Peer 所关联的 MSP ID一般为所属组织名称需要与通道配置内名称一致SampleOrgdeliveryclient常规配置到排序服务连接的配置。值得注意的是 addressOverrides 域。当 Peer 加入通道时会从初始区块提取排序服务信息此时排序节点地址或证书可能已经发生变化。使用此处配置可以映射到新版本排序服务避免出现无法加入通道的情况N/Alimits常规配置对访问频率进行限制可以限定 endorserService deliverService gatewayService 服务处理的并发数endorserService2500 , deliverService2500 , gatewayService2500keepalive.interval保活消息如果服务端发现客户端在指定时间内未有任何消息则主动发送 gRPC Ping 进行探测7200skeepalive.timeout保活消息服务端发送 Ping 消息后如果客户端在指定时间内未响应则断开连接20skeepalive.minInterval保活消息允许其他人发送保活消息的最小时间间隔太快的消息会导致连接中断以避免 DoS 攻击60skeepalive.client保活消息作为客户端连接其他 Peer 节点时发送消息的间隔和超时时间interval: 60s , timeout: 20skeepalive.deliveryClient保活消息作为客户端连接排序节点时发送消息的间隔和超时时间interval: 60s , timeout: 20sgossip.bootstrap启动和连接节点启动后向组织内指定节点发起 Gossip 连接以加入网络。bootstrap 节点会答复自己所知的邻居信息127.0.0.1:7051gossip.endpoint启动和连接本节点在同一组织内的 gossip idpeer.addressgossip.maxBlockCountToStore启动和连接保存到内存中的区块个数上限超过则丢弃10gossip.skipBlockVerification启动和连接是否对区块消息进行校验falsegossip.dialTimeout启动和连接gRPC 连接拨号的超时时间3sgossip.connTimeout启动和连接建立连接的超时时间2sgossip.aliveTimeInterval启动和连接定期发送 Alive 心跳消息的时间间隔5sgossip.aliveExpirationTimeout启动和连接Alive 心跳消息的超时时间25sgossip.reconnectInterval启动和连接断线后重连的时间间隔25sgossip.externalEndpoint启动和连接节点向组织外节点公开的服务地址默认为空代表不被其他组织所感知N/Agossip.membershipTrackerInterval邻居发现定期探测当前邻居状态是否变更的时间间隔5sgossip.maxPropagationBurstLatency邻居发现保存消息的最大时间超过则转发给其他节点10msgossip.maxPropagationBurstSize邻居发现保存的最大消息个数超过则转发给其他节点gossip.propagateIterations邻居发现消息转发的次数1gossip.propagatePeerNum邻居发现推送消息给指定个数的节点3gossip.pullInterval邻居发现触发拉取消息的时间间隔发送 Hello 消息收到对方摘要更新摘要字典后发送拉取请求等待对方响应应该比 digestWaitTimerequestWaitTime 长4sgossip.pullPeerNum邻居发现从指定个数的节点拉取消息3gossip.requestStateInfoInterval邻居发现从节点拉取状态信息StateInfo消息的时间间隔4sgossip.publishStateInfoInterval邻居发现向其他节点推动状态信息消息的时间间隔4sgossip.stateInfoRetentionInterval邻居发现状态信息消息的超时时间N/Agossip.publishCertPeriod邻居发现启动后在心跳消息中包括证书的等待时间10sgossip.recvBuffSize邻居发现收取消息的缓冲大小20gossip.sendBuffSize邻居发现发送消息的缓冲大小200gossip.digestWaitTime邻居发现拉取消息方发送 Hello 消息后等待对方返回摘要开始更新摘要字典的时间之后发送 Req 消息1sgossip.requestWaitTime邻居发现被拉取方收到 Hello 消息发送摘要等待接收拉取请求的超时1500msgossip.responseWaitTime邻居发现拉取方发送拉取请求后等待收到响应的超时2sgossip.nonBlockingCommitMode邻居发现是否启用非阻塞模式提交区块到本地默认关闭。是隐藏参数N/Agossip.useLeaderElection选举是否允许节点之间动态进行组织的代表leader节点选举通常情况下推荐开启falsegossip.orgLeader选举本节点是否指定为组织的代表节点。与 useLeaderElection 不能同时指定为 truetruegossip.election.startupGracePeriod选举代表成员选举等待的时间15sgossip.election.membershipSampleInterval选举查成员稳定性的采样间隔1sgossip.election.leaderAliveThreshold选举Peer 尝试进行选举的等待超时10sgossip.election.leaderElectionDuration选举Peer 宣布自己为代表节点的等待时间5sgossip.pvtData.pullRetryThreshold私有数据拉取区块相关私密数据的最长等待时间超过则忽略而直接提交区块60sgossip.pvtData.transientstoreMaxBlockRetention私有数据私密数据临时保存在本地临时数据库在清除前等待的最大新区块个数。超过则会被从本地临时数据库删除。默认为 1000意味着每当 1000 的整数倍区块提交时与当前区块差异超过 1000 的旧区块关联的私密数据将从临时数据库删除1000gossip.pvtData.pushAckTimeout私有数据背书环节中推送消息到其他 Peer 的等待响应时间3sgossip.pvtData.btlPullMargin私有数据只获取在给定的区块数内不超时的私密数据10gossip.pvtData.reconcileBatchSize私有数据协同时单次拉取的最多私密数据个数10gossip.pvtData.reconcileSleepInterval私有数据协同的间隔1mgossip.pvtData.reconciliationEnabled私有数据启用协同truegossip.pvtData.skipPullingInvalidTransactionsDuringCommit私有数据在本地提交时跳过对非法交易私密数据的获取falsegossip.pvtData.implicitCollectionDisseminationPolicy私有数据指定对等体自己的隐式集合的传播策略。当对等端认可一个写到它自己的隐式集合的提议时下面的值将覆盖用于传播私有数据的默认值。注意它适用于对等体已加入的所有通道。这意味着 requiredPeerCount 必须小于来自组织的对等体数量最低的通道中的对等体数量requiredPeerCount: 0 , maxPeerCount: 1gossip.state.enabled状态转移是否开启允许通过状态传递state transfer快速追踪到最新区块falsegossip.state.checkInterval状态转移检查是否触发状态传递的时间间隔10sgossip.state.responseTimeout状态转移回复的等待超时3sgossip.state.batchSize状态转移通过状态传递获得的区块数10gossip.state.blockBufferSize状态转移Peer 缓存收到的待排序区块的个数最大不超过配置的两倍20gossip.state.maxRetries状态转移状态传递请求的重试次数3gossip.state.channelSize状态转移为每个通道缓冲的状态请求消息个数超过指定阈值则忽略是隐藏参数N/Atls.enabledTLS 配置开启 server 端 TLS 检查falsetls.clientAuthRequiredTLS 配置要求入站连接的客户端证书 / 相互 TLSfalsetls.cert.fileTLS 配置server 端使用的 TLS 证书路径tls/server.crttls.key.fileTLS 配置server 端使用的 TLS 私钥路径tls/server.keytls.rootcert.fileTLS 配置server 端使用的根 CA 的证书签发服务端的 TLS 证书tls/ca.crttls.clientRootCAs.filesTLS 配置用于校验客户端身份时所使用的根 CA 证书列表tls/ca.crttls.clientKey.fileTLS 配置作为客户端连接其他服务时所用的 TLS 私钥如果不指定默认使用 tls.keytls.keytls.clientCert.fileTLS 配置作为客户端连接其他服务时所用的 TLS 证书如果不指定默认使用 tls.keytls.certBCCSPBSSCP负责抽象密码库相关处理配置算法类型、文件路径等SWBCCSP.SW.HashBSSCPHash 算法类型目前仅支持 SHA2SHA2BCCSP.SW.FileKeyStore.KeyStoreBSSCP本地私钥文件路径默认指向 mspConfigPath/keystoremspConfigPath/keystoreBCCSP.PKCS11BSSCPPKCS11 相关配置N/Ahandlers.authFiltershandlers自定义的权限过滤插件对消息权限进行校验DefaultAuth ExpirationCheckhandlers.decoratorshandlers自定义修饰插件 对发给链码的数据添加额外处理DefaultDecoratorhandlers.endorsershandlers自定义背书插件负责背书过程处理DefaultEndorsementhandlers.validatorshandlers自定义验证插件提交前进行验证DefaultValidationdiscovery.enabled服务发现开启服务发现服务发现功能为客户端提供了快速查询网络中拓扑、节点相关信息的功能truediscovery.authCacheEnabled服务发现是否启用对认证的缓存机制truediscovery.authCacheMaxSize服务发现最大缓存个数1000discovery.authCachePurgeRetentionRatio服务发现缓存清理后保存的比列0.75discovery.orgMembersAllowedAccess服务发现是否允许普通成员进行通道范围之外的信息查询默认仅限 Adminfalse vm 部分
对链码运行环境的配置目前仅支持 Docker 容器服务。
配置项作用默认值endpointdocker daemon 地址unix:///var/run/docker.sockdocker.tlsdocker daemon 启用 TLS 时相关证书和密钥文件配置falsedocker.attachStdout是否启用连接到标准输出falsedocker.hostConfig.NetworkMode运行链码容器的网络模式hostdocker.hostConfig.Dns容器使用的 DNS 服务器列表N/Adocker.hostConfig.LogConfig日志配置N/Adocker.hostConfig.Memory内存限制大小-1 表示无限制2147483648 chaincode 部分
配置项作用默认值id动态标记链码的信息该信息会以环境变量标签形式传给链码容器N/Abuilder通用 docker 镜像编译环境$(DOCKER_NS)/fabric-ccenv:$(TWO_DIGIT_VERSION)pull实例化链码时是否从仓库拉取基础镜像falsegolang.runtimego 语言链码部署生成镜像的基础 docker 镜像$(DOCKER_NS)/fabric-baseos:$(TWO_DIGIT_VERSION)golang.dynamicLink链码编译过程是否进行动态链接falsejavajava 语言链码部署生成镜像的基础 docker 镜像$(DOCKER_NS)/fabric-javaenv:$(TWO_DIGIT_VERSION)nodenodejs 链码的运行容器$(DOCKER_NS)/fabric-nodeenv:$(TWO_DIGIT_VERSION)externalBuilders指定外部的链码编译和运行插件的路径列表N/AinstallTimeout等待链码编译和安装完成的超时时间300sstartuptimeout启动链码容器的超时时间300sexecutetimeout调用链码执行超时时间30smode执行链码的模式netkeepalivepeer 和链码之间的心跳超时小于或等于 0 意味着关闭0system系统链码配置所有启用的链码都必须在这里注册_lifecycle: enable cscc: enable lscc: enable qscc: enablelogging链码容器日志相关配置N/A ledger 部分
配置项作用默认值blockchain暂未使用N/Astate.stateDatabase状态数据库类型goleveldb CouchDBgoleveldbstate.totalQueryLimit每次链码查询最大返回记录数100000state.couchDBConfig.couchDBAddresscouchdb 连接地址127.0.0.1:5984state.couchDBConfig.usernamecouchdb 用户名N/Astate.couchDBConfig.passwordcouchdb 密码N/Astate.couchDBConfig.maxRetries出错后重试次数3state.couchDBConfig.maxRetriesOnStartup启动出错重试次数10state.couchDBConfig.requestTimeout请求超时时间35sstate.couchDBConfig.internalQueryLimit链码内单个逻辑查询返回的最大记录数1000state.couchDBConfig.maxBatchUpdateSize批量更新的最大记录数1000state.couchDBConfig.createGlobalChangesDB是否创建 _global_changes 系统库会追踪全局修改falsestate.couchDBConfig.cacheSize最大分配的缓存大小需要为 32MB 的整数倍64history.enableHistoryDatabase是否启用历史数据库truepvtdataStore.collElgProcMaxDbBatchSize提交一批私有数据的最大个数5000pvtdataStore.collElgProcDbBatchesInterval提交一批私有数据的最短时间间隔单位毫秒1000pvtdataStore.deprioritizedDataReconcilerIntervalN/A1000snapshots.rootDir存储分类账快照的文件系统上的路径/var/hyperledger/production/snapshots operations 部分
配置项作用默认值listenAddressRESTful 管理服务的监听地址127.0.0.1:9443 metrics 部分
配置项作用默认值provider统计服务类型可以为 statsd (推送模式)prometheus (拉取模式)disableddisabledstatsd.network网络协议类型tcp 或 udpudpstatsd.address修改为外部 statsd 的服务地址127.0.0.1:8125statsd.writeInterval推送统计汇报到 statsd 的时间间隔10sstatsd.prefix为所有统计推送添加前缀N/A 注意 statsd 和 prometheus 都是流行的开源监控数据收集软件。 fabricdockeryamlstatsd