Hyperledger Fabric區塊鏈工具configtxgen配置configtx.yaml

configtx.yaml是Hyperledger Fabric區塊鏈網絡運維工具configtxgen用于生成通道創世塊或通道交易的配置文件,configtx.yaml的內容直接決定了所生成的創世區塊的內容。本文將給出configtx.yaml的詳細中文說明。

如果需要快速掌握Fabric區塊鏈的鏈碼與應用開發,推薦訪問匯智網的在線互動教程:

  • Fabric區塊鏈Java開發詳解
  • Fabric區塊鏈NodeJS開發詳解

Capabilities / 通道能力配置

Capabilities段用來定義fabric網絡的能力。這是版本v1.0.0引入的一個新的配置段,當與版本v1.0.x的對等節點與排序節點混合組網時不可使用。

Capabilities段定義了fabric程序要加入網絡所必須支持的特性。例如,如果添加了一個新的MSP類型,那么更新的程序可能會根據該類型識別并驗證簽名,但是老版本的程序就沒有辦法驗證這些交易。這可能導致不同版本的fabric程序中維護的世界狀態不一致。

因此,通過定義通道的能力,就明確了不滿足該能力要求的fabric程序,將無法處理交易,除非升級到新的版本。對于v1.0.x的程序而言,如果在Capabilities段定義了任何能力,即使聲明不需要支持這些能力,都會導致其有意崩潰。

Capabilities:# Global配置同時應用于排序節點和對等節點,并且必須被兩種節點同時支持。# 將該配置項設置為ture表明要求節點具備該能力Global: &ChannelCapabilitiesV1_3: true# Orderer配置僅應用于排序節點,不需考慮對等節點的升級。將該配置項# 設置為true表明要求排序節點具備該能力Orderer: &OrdererCapabilitiesV1_1: true# Application配置僅應用于對等網絡,不需考慮排序節點的升級。將該配置項# 設置為true表明要求對等節點具備該能力Application: &ApplicationCapabilitiesV1_3: true

Organizations / 組織機構配置

Organizations配置段用來定義組織機構實體,以便在后續配置中引用。例如,下面的配置文件中,定義了三個機構,可以分別使用ExampleCom、Org1ExampleCom和Org2ExampleCom引用其配置:

Organizations:- &ExampleComName: ExampleComID: example.comAdminPrincipal: Role.ADMINMSPDir: ./ordererOrganizations/example.com/mspPolicies:Readers:Type: SignatureRule: OR('example.com.member')Writers:Type: SignatureRule: OR('example.com.member')Admins:Type: SignatureRule: OR('example.com.admin')Endorsement:Type: SignatureRule: OR('example.com.member')- &Org1ExampleComName: Org1ExampleComID: org1.example.comMSPDir: ./peerOrganizations/org1.example.com/mspAdminPrincipal: Role.ADMINAnchorPeers:- Host: peer0.org1.example.comPort: 7051Policies:Readers:Type: SignatureRule: OR('org1.example.com.member')Writers:Type: SignatureRule: OR('org1.example.com.member')Admins:Type: SignatureRule: OR('org1.example.com.admin')Endorsement:Type: SignatureRule: OR('org1.example.com.member')- &Org2ExampleComName: Org2ExampleComID: org2.example.comMSPDir: ./peerOrganizations/org2.example.com/mspAdminPrincipal: Role.ADMINAnchorPeers:- Host: peer0.org2.example.comPort: 7051Policies:Readers:Type: SignatureRule: OR('org2.example.com.member')Writers:Type: SignatureRule: OR('org2.example.com.member')Admins:Type: SignatureRule: OR('org2.example.com.admin')Endorsement:Type: SignatureRule: OR('org2.example.com.member')

Orderer / 排序節點配置

Orderer配置段用來定義要編碼寫入創世區塊或通道交易的排序節點參數。

Orderer: &OrdererDefaults# 排序節點類型用來指定要啟用的排序節點實現,不同的實現對應不同的共識算法。# 目前可用的類型為:solo和kafkaOrdererType: soloAddresses:- orderer0.example.com:7050BatchTimeout: 2sBatchSize:MaxMessageCount: 10AbsoluteMaxBytes: 98 MBPreferredMaxBytes: 512 KBMaxChannels: 0Kafka:Brokers:- kafka0:9092- kafka1:9092- kafka2:9092- kafka3:9092Organizations:# 定義本層級的排序節點策略,其權威路徑為 /Channel/Orderer/<PolicyName>Policies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY Admins# BlockValidation配置項指定了哪些簽名必須包含在區塊中,以便對等節點進行驗證BlockValidation:Type: ImplicitMetaRule: ANY Writers# Capabilities配置描述排序節點層級的能力需求,這里直接引用# 前面Capabilities配置段中的OrdererCapabilities配置項Capabilities:<<: *OrdererCapabilities

Channel / 通道配置

Channel配置段用來定義要寫入創世區塊或配置交易的通道參數。

Channel: &ChannelDefaults# 定義本層級的通道訪問策略,其權威路徑為 /Channel/<PolicyName>Policies:Readers:Type: ImplicitMetaRule: ANY Readers# Writes策略定義了調用Broadcast API提交交易的許可規則Writers:Type: ImplicitMetaRule: ANY Writers# Admin策略定義了修改本層級配置的許可規則Admins:Type: ImplicitMetaRule: MAJORITY Admins# Capabilities配置描通道層級的能力需求,這里直接引用# 前面Capabilities配置段中的ChannelCapabilities配置項Capabilities:<<: *ChannelCapabilities

Application / 應用配置

Application配置段用來定義要寫入創世區塊或配置交易的應用參數。

Application: &ApplicationDefaultsACLs: &ACLsDefault# ACLs配置段為系統中各種資源提供默認的策略。# 這里所說的“資源”,可以是系統鏈碼的函數,例如qscc系統鏈碼的GetBlockByNumber方法# 也可以是其他資源,例如誰可以接收區塊事件。# 這個配置段不是用來定義資源或API,而僅僅是定義資源的訪問控制策略# # 用戶可以在通道定義中重寫這些默認策略#---New Lifecycle System Chaincode (_lifecycle) function to policy mapping for access control--## _lifecycle系統鏈碼CommitChaincodeDefinition函數的ACL定義_lifecycle/CommitChaincodeDefinition: /Channel/Application/Writers# _lifecycle系統鏈碼的QueryChaincodeDefinition函數的ACL定義_lifecycle/QueryChaincodeDefinition: /Channel/Application/Readers# _lifecycle系統鏈碼的QueryNamespaceDefinitions函數的ACL定義_lifecycle/QueryNamespaceDefinitions: /Channel/Application/Readers#---Lifecycle System Chaincode (lscc) function to policy mapping for access control---## lscc系統鏈碼的getid函數的ACL定義lscc/ChaincodeExists: /Channel/Application/Readers# lscc系統鏈碼的getdepspec函數的ACL定義lscc/GetDeploymentSpec: /Channel/Application/Readers# lscc系統鏈碼的getccdata函數的ACL定義lscc/GetChaincodeData: /Channel/Application/Readers# lscc系統鏈碼的getchaincodes函數的ACL定義lscc/GetInstantiatedChaincodes: /Channel/Application/Readers#---Query System Chaincode (qscc) function to policy mapping for access control---## qscc系統鏈碼的GetChainInfo函數的ACL定義qscc/GetChainInfo: /Channel/Application/Readers# qscc系統鏈碼的GetBlockByNumber函數的ACL定義qscc/GetBlockByNumber: /Channel/Application/Readers# qscc系統 鏈碼的GetBlockByHash函數的ACL定義qscc/GetBlockByHash: /Channel/Application/Readers# qscc系統鏈碼的GetTransactionByID函數的ACL定義qscc/GetTransactionByID: /Channel/Application/Readers# qscc系統鏈碼GetBlockByTxID函數的ACL定義qscc/GetBlockByTxID: /Channel/Application/Readers#---Configuration System Chaincode (cscc) function to policy mapping for access control---## cscc系統鏈碼的GetConfigBlock函數的ACl定義cscc/GetConfigBlock: /Channel/Application/Readers# cscc系統鏈碼的GetConfigTree函數的ACL定義cscc/GetConfigTree: /Channel/Application/Readers# cscc系統鏈碼的SimulateConfigTreeUpdate函數的ACL定義cscc/SimulateConfigTreeUpdate: /Channel/Application/Readers#---Miscellanesous peer function to policy mapping for access control---## 訪問對等節點上的鏈碼的ACL策略定義peer/Propose: /Channel/Application/Writers# 從鏈碼中訪問其他鏈碼的ACL策略定義peer/ChaincodeToChaincode: /Channel/Application/Readers#---Events resource to policy mapping for access control###---## 發送區塊事件的ACL策略定義event/Block: /Channel/Application/Readers# 發送過濾的區塊事件的ACL策略定義event/FilteredBlock: /Channel/Application/Readers# Organizations配置列出參與到網絡中的機構清單Organizations:# 定義本層級的應用控制策略,其權威路徑為 /Channel/Application/<PolicyName>Policies: &ApplicationDefaultPoliciesReaders:Type: ImplicitMetaRule: "ANY Readers"Writers:Type: ImplicitMetaRule: "ANY Writers"Admins:Type: ImplicitMetaRule: "MAJORITY Admins"LifecycleEndorsement:Type: ImplicitMetaRule: "ANY Endorsement"Endorsement:Type: ImplicitMetaRule: "ANY Endorsement"# Capabilities配置描述應用層級的能力需求,這里直接引用# 前面Capabilities配置段中的ApplicationCapabilities配置項Capabilities:<<: *ApplicationCapabilities

Profiles / 配置入口

Profiles配置段用來定義用于configtxgen工具的配置入口。包含委員會(consortium)的配置入口可以用來生成排序節點的創世區塊。如果在排序節點的創世區塊中正確定義了consortium的成員,那么可以僅使用機構成員名稱和委員會的名稱來生成通道創建請求。

Profiles:# SampleInsecureSolo定義了一個使用Solo排序節點的簡單配置SampleInsecureSolo:<<: *ChannelDefaultsOrderer:<<: *OrdererDefaultsOrganizations:- *ExampleComCapabilities:<<: *OrdererCapabilitiesApplication:<<: *ApplicationDefaultsOrganizations:- *ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY EndorsementConsortiums:SampleConsortium:Organizations:- *Org1ExampleCom- *Org2ExampleCom# SampleInsecureKafka定義了一個使用Kfaka排序節點的配置SampleInsecureKafka:<<: *ChannelDefaultsOrderer:<<: *OrdererDefaultsOrdererType: kafkaAddresses:- orderer0.example.com:7050- orderer1.example.com:7050- orderer2.example.com:7050Organizations:- *ExampleComCapabilities:<<: *OrdererCapabilitiesApplication:<<: *ApplicationDefaultsOrganizations:- *ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY EndorsementConsortiums:SampleConsortium:Organizations:- *ExampleCom- *Org1ExampleCom- *Org2ExampleCom# SampleSingleMSPSolo定義了一個使用Solo排序節點、包含單一MSP的配置SampleSingleMSPSolo:Orderer:<<: *OrdererDefaultsOrganizations:- *ExampleComCapabilities:<<: *OrdererCapabilitiesApplication:<<: *ApplicationDefaultsOrganizations:- *ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY EndorsementConsortiums:SampleConsortium:Organizations:- *ExampleCom- *Org1ExampleCom- *Org2ExampleCom# SampleEmptyInsecureChannel定義了一個不包含成員與訪問控制策略的通道SampleEmptyInsecureChannel:Capabilities:<<: *ChannelCapabilitiesConsortium: SampleConsortiumApplication:Organizations:- *ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY Endorsement# SysTestChannel定義了一個用于測試的通道SysTestChannel:<<: *ChannelDefaultsCapabilities:<<: *ChannelCapabilitiesConsortium: SampleConsortiumApplication:<<: *ApplicationDefaultsOrganizations:- *Org1ExampleCom- *Org2ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY Endorsement# SampleSingleMSPChannel定義了一個僅包含單一成員機構的通道。# 該配置通常與SampleSingleMSPSolo或SampleSingleMSPKafka同時使用SampleSingleMSPChannel:<<: *ChannelDefaultsCapabilities:<<: *ChannelCapabilitiesConsortium: SampleConsortiumApplication:<<: *ApplicationDefaultsOrganizations:- *Org1ExampleCom- *Org2ExampleComCapabilities:<<: *ApplicationCapabilitiesPolicies:Readers:Type: ImplicitMetaRule: ANY ReadersWriters:Type: ImplicitMetaRule: ANY WritersAdmins:Type: ImplicitMetaRule: MAJORITY AdminsLifecycleEndorsement:Type: ImplicitMetaRule: ANY EndorsementEndorsement:Type: ImplicitMetaRule: ANY Endorsement

匯智網原創,轉載請標明出處。

轉載于:https://blog.51cto.com/xxzhi/2384780

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js閉包??

<script>var name "The Window";var object {name : "My Object",getNameFunc : function(){console.log("11111");console.log(this); //this object //調用該匿名函數的是對象return function(){console.log("22222");co…

JavaScript----BOM(瀏覽器對象模型)

BOM 瀏覽器對象模型 BOM 的全稱為 Browser Object Model,被譯為瀏覽器對象模型。BOM提供了獨立于 HTML 頁面內容&#xff0c;而與瀏覽器相關的一系列對象。主要被用于管理瀏覽器窗口及與瀏覽器窗口之間通信等功能。 1、Window 對象 window對象是BOM中最頂層對象&#xff1b;表示…

JWT協議學習筆記

2019獨角獸企業重金招聘Python工程師標準>>> 官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻譯 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token&#xff08;JWT&#xff09;是…

DOM操作2

一、API和WebAPI API就是接口&#xff0c;就是通道&#xff0c;負責一個程序和其他軟件的溝通&#xff0c;本質是預先定義的函數。Web API是網絡應用程序接口。包含了廣泛的功能&#xff0c;網絡應用通過API接口&#xff0c;可以實現存儲服務、消息服務、計算服務等能力&#x…

浮動布局demo

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>浮動布局</title><style type"text/css">*{margin: 0;padding: 0;}header{height: 150px;background: yellow;}nav{height: 30px;background: green;…

UI行業發展預測 系列規劃的調整

我又雙叒叕拖更了&#xff0c;上一篇還是1月22號更新的&#xff0c;這都3月9號了……前面幾期把職業規劃、能力分析、幾個分析用的設計理論都寫完了&#xff0c;當然實際工作中用到的方法論不止上面這些&#xff0c;后續會接著學習&#xff1b;如果你的目標是一線團隊&#xff…

出現Press ENTER or type command to continue的原因

cd 然后 vim .vimrc 寫入 set nu 保存 退出轉載于:https://www.cnblogs.com/520qtf/p/8968441.html

基于Flask實現后臺權限管理系統 - 導言

網上有這樣一個段子&#xff0c;在評論語言好壞的時候&#xff0c;都會有人評論說PHP是世界上最好的語言&#xff0c;人生苦短我用Python&#xff0c;這里姑且不去評論語言的好壞&#xff0c;每一個語言存在都有它的價值&#xff0c;譬如C語言適合底層開發&#xff0c;整個Linu…

5-1 unittest框架使用

unittest是python的一個單元測試框架&#xff0c;內置的&#xff0c;不需要pip install 什么什么的。直接在py文件里面調用 import unittest。 他這個框架是怎么回事呢&#xff0c;他可以對數據初始化&#xff0c;然后執行測試&#xff08;里面有斷言功能就是判斷返回是否正確…

bzoj 4573: [Zjoi2016]大森林

Description 小Y家里有一個大森林&#xff0c;里面有n棵樹&#xff0c;編號從1到n。一開始這些樹都只是樹苗&#xff0c;只有一個節點&#xff0c;標號為1。這些樹 都有一個特殊的節點&#xff0c;我們稱之為生長節點&#xff0c;這些節點有生長出子節點的能力。小Y掌握了一種魔…

Unity3D在C#編程中的一些命名空間的引用及說明

System包含用于定義常用值和引用數據類型、事件和事件處理程序、接口、屬性和處理異常的基礎類和基類。其他類提供支持下列操作的服務&#xff1a;數據類型轉換&#xff0c;方法參數操作&#xff0c;數學計算&#xff0c;遠程和本地程序調用&#xff0c;應用程序環境管理以及對…

docker入門簡介

簡介docker(容器技術)是實現虛擬化技術的一種方案,通過利用linux中命名空間,控制組和聯合文件系統這個三個主要技術,來實現應用程序空間的隔離.通過對應用程序運行環境的封裝來生成鏡像并部署來實現跨平臺,一定程度上加快了服務交付的整體流程.這篇文章主要介紹docker的一些基本…

Highcharts 配置選項詳細說明

http://www.runoob.com/highcharts/highcharts-setting-detail.html 轉載于:https://www.cnblogs.com/mengfangui/p/8969121.html

linux下的啟停腳本

linux下的根據項目名稱&#xff0c;進行進程的啟停腳本 #!/bin/bashJAVA/usr/bin/java APP_HOME/opt/program/qa/wechat APP_NAMEprogramname.jar APP_PARAM"--spring.config.location${APP_HOME}/application.properties --logging.path${APP_HOME}"case $1 in star…

python 網頁爬取數據生成文字云圖

1. 需要的三個包&#xff1a; from wordcloud import WordCloud #詞云庫 import matplotlib.pyplot as plt #數學繪圖庫 import jieba; 2. 定義變量&#xff08;將對于的變量到一個全局的文件中&#xff09;&#xff1a; import re; pdurl_firsthttps://movie.do…

python---重點(設計模式)

前戲&#xff1a;設計模式簡介 設計模式是面向對象設計的解決方案&#xff0c;是復用性程序設計的經驗總結。&#xff08;與語言無關&#xff0c;任何語言都可以實現設計模式&#xff09; 設計模式根據使用目的的不同而分為創建型模式&#xff08;Creational Pattern&#xff0…

洛谷 題解 P2010 【回文日期】

因為有8個字符&#xff0c;所以可得出每一年只有一個回文日期。 因此只要判斷每一年就行了。 做法&#xff1a; 我們先把年倒過來&#xff0c;例如2018年就倒為8102&#xff0c;就得出8102就是回文日期的后四個字符&#xff0c;我們只要判斷一下有沒有這個月份和這個日期。 具體…

線程相關

1、啟動線程1.11 new Handler()形式new Handler(mContext.getMainLooper()).post(newOnekeyBindFrameActivity.NetworkThread());1.12new Handler().postDelayed(new StatusCheckLoginBindFrameThread(), IoTCultivatePlantConfig.START_ACTIVITY_POST_DELAYED);1.2 new Thread…

驗證Oracle收集統計信息參數granularity數據分析的力度

最近在學習Oracle的統計信息這一塊&#xff0c;收集統計信息的方法如下&#xff1a; DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分區名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 與axis=1)區分

Python之NumPy&#xff08;axis0 與axis1&#xff09;區分 轉載于:https://www.cnblogs.com/greatljg/p/10802392.html