# 鎼缓IBC妯″紡璐︽埛浣撶郴 ## 鎼缓闀垮畨閾剧綉缁� 鏈珷鑺傛垜浠皢璇︾粏浠嬬粛濡備綍鎼缓瀹屾暣鐨勯暱瀹夐摼PermissionWithIBC妯″紡鐨勮处鎴蜂綋绯伙紝浠ュ強濡備綍绠$悊璇ユā寮忎笅鐨勯摼璐︽埛锛屽寘鎷粍缁囪处鎴枫€佽妭鐐硅处鎴枫€佺敤鎴疯处鎴风殑澧炲垹绛夈€傚叧浜庨暱瀹夐摼 IBC 韬唤浣撶郴鐨勬妧鏈粏鑺傦紝璇峰弬闃匸IBC 鎶€鏈枃妗(../tech/IBC鎶€鏈枃妗�.md) 鏈枃绀轰緥璇存槑锛� - 鍒涘缓鏂伴摼锛�4缁勭粐锛�1鍏辫瘑鑺傜偣/姣忕粍缁囷紝1绠$悊鍛�/姣忕粍缁� - 閾剧鐞嗭細缁勭粐绠$悊銆佽妭鐐圭鐞嗐€佺敤鎴风鐞� ### 婧愮爜涓嬭浇 - 涓嬭浇ibc鐗堟湰鐨刞chainmaker-go`婧愮爜鍒版湰鍦� ```bash $ git clone -b v2.3.0_ibc --depth=1 https://git.chainmaker.org.cn/chainmaker/chainmaker-go.git ``` - 涓嬭浇ibc鐗堟湰鐨刞璇佷功鐢熸垚宸ュ叿`婧愮爜鍒版湰鍦� ```bash $ git clone -b v2.3.0_ibc --depth=1 https://git.chainmaker.org.cn/chainmaker/chainmaker-cryptogen.git ``` ### 婧愮爜缂栬瘧 - 缂栬瘧璇佷功鐢熸垚宸ュ叿 ```bash $ cd chainmaker-cryptogen $ make ``` ### 鐢熸垚閰嶇疆鏂囦欢 - 灏嗙紪璇戝ソ鐨刞chainmaker-cryptogen`锛岃蒋杩炴帴鍒癭chainmaker-go/tools`鐩綍 ```bash # 杩涘叆宸ュ叿鐩綍 $ cd chainmaker-go/tools # 杞繛鎺hainmaker-cryptogen鍒皌ools鐩綍涓� $ ln -s ../../chainmaker-cryptogen/ . ``` 杩涘叆`chainmaker-go/scripts`鐩綍锛屾墽琛宍prepare_ibc.sh`鑴氭湰鐢熸垚鍗曢摼4鑺傜偣闆嗙兢閰嶇疆锛屽瓨浜庤矾寰刞chainmaker-go/build`涓� ```bash # 杩涘叆鑴氭湰鐩綍 $ cd ../scripts # 鐢熸垚鍗曢摼4鑺傜偣闆嗙兢鐨勮瘉涔﹀拰閰嶇疆 $ ./prepare_ibc.sh 4 1 begin check params... begin generate certs, cnt: 4 input consensus type (1-TBFT(default),3-MAXBFT,4-RAFT): input log level (DEBUG|INFO(default)|WARN|ERROR): enable vm go (YES|NO(default)) config node total 4 begin generate node1 config... begin node1 chain1 cert config... begin node1 trust config... begin generate node2 config... begin node2 chain1 cert config... begin node2 trust config... begin generate node3 config... begin node3 chain1 cert config... begin node3 trust config... begin generate node4 config... begin node4 chain1 cert config... begin node4 trust config... ``` ### 缂栬瘧鍙婂畨瑁呭寘鍒朵綔 - 鐢熸垚璇佷功锛坧repare_ibc.sh鑴氭湰锛夊悗鎵ц`build_release.sh`鑴氭湰锛屽皢缂栬瘧`chainmaker-go`妯″潡锛屽苟鎵撳寘鐢熸垚瀹夎锛屽瓨浜庤矾寰刞chainmaker-go/build/release`涓� ```bash $ ./build_release.sh $ tree ../build/release/ ../build/release/ 鈹溾攢鈹€ chainmaker-v2.3.0-wx-org1.chainmaker.org-20221228155928-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v2.3.0-wx-org2.chainmaker.org-20221228155928-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v2.3.0-wx-org3.chainmaker.org-20221228155928-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v2.3.0-wx-org4.chainmaker.org-20221228155928-x86_64.tar.gz 鈹斺攢鈹€ crypto-config-20221228155928.tar.gz ``` ### 鍚姩鑺傜偣闆嗙兢 - 鎵ц`cluster_quick_start.sh`鑴氭湰锛屼細瑙e帇鍚勪釜瀹夎鍖咃紝璋冪敤`bin`鐩綍涓殑`start.sh`鑴氭湰锛屽惎鍔╜chainmaker`鑺傜偣 ```bash $ ./cluster_quick_start.sh normal ``` > 鑻ラ渶瑕佸叧闂泦缇わ紝浣跨敤鑴氭湰锛� > > ```bash > $ ./cluster_quick_stop.sh > ``` ### 鏌ョ湅鑺傜偣鍚姩鏄惁姝e父 - 鏌ョ湅杩涚▼鏄惁瀛樺湪 ```bash $ ps -ef|grep chainmaker | grep -v grep 25261 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org1.chainmaker.org/chainmaker.yml 25286 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org2.chainmaker.org/chainmaker.yml 25309 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org3.chainmaker.org/chainmaker.yml 25335 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org4.chainmaker.org/chainmaker.yml ``` - 鏌ョ湅绔彛鏄惁鐩戝惉 ```bash $ netstat -lptn | grep 1230 tcp6 0 0 :::12301 :::* LISTEN 25261/./chainmaker tcp6 0 0 :::12302 :::* LISTEN 25286/./chainmaker tcp6 0 0 :::12303 :::* LISTEN 25309/./chainmaker tcp6 0 0 :::12304 :::* LISTEN 25335/./chainmaker ``` - 妫€鏌ヨ妭鐐规槸鍚︽湁`ERROR`鏃ュ織 ```bash $ cat ../build/release/*/bin/panic.log $ cat ../build/release/*/log/system.log $ cat ../build/release/*/log/system.log |grep "ERROR\|put block\|all necessary" //鑻ョ湅鍒癮ll necessary peers connected鍒欒〃绀鸿妭鐐瑰凡缁忓噯澶囧氨缁€� ``` ### 閮ㄧ讲/璋冪敤鏅鸿兘鍚堢害 閾鹃儴缃插悗锛屽湪杩涜閮ㄧ讲/璋冪敤鍚堢害娴嬭瘯锛屼互楠岃瘉閾炬槸鍚︽甯歌繍琛屻€� ### 缂栬瘧 cmc宸ュ叿鐨勭紪璇�&杩愯鏂瑰紡濡備笅锛� > 鍒涘缓宸ヤ綔鐩綍 $WORKDIR 姣斿 ~/chainmaker<br> > 鍚姩娴嬭瘯閾� [鍦ㄥ伐浣滅洰褰曚笅 浣跨敤鑴氭湰鎼缓](../quickstart/閫氳繃鍛戒护琛屼綋楠岄摼.md)<br> ```bash # 缂栬瘧cmc $ cd $WORKDIR/chainmaker-go/tools/cmc $ go build # 閰嶇疆娴嬭瘯鏁版嵁 $ cp -rf ../../build/crypto-config ../../tools/cmc/testdata/ # 浣跨敤chainmaker-cryptogen鐢熸垚鐨勬祴璇曢摼鐨勮瘉涔� # 鏌ョ湅help $ cd ../../chainmaker-go/tools/cmc $ ./cmc --help ``` #### 閮ㄧ讲绀轰緥鍚堢害 - 鍒涘缓wasm鍚堢害 ```bash $ ./cmc client contract user create \ --contract-name=fact \ --runtime-type=WASMER \ --byte-code-path=./testdata/claim-wasm-demo/rust-fact-2.0.0.wasm \ --version=1.0 \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --sync-result=true \ --params="{}" ``` - 璋冪敤wasm鍚堢害 ```bash $ ./cmc client contract user invoke \ --contract-name=fact \ --method=save \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --params="{\"file_name\":\"name007\",\"file_hash\":\"ab3456df5799b87c77e7f88\",\"time\":\"6543234\"}" \ --sync-result=true ``` - 鏌ヨ鍚堢害 ```bash $ ./cmc client contract user get \ --contract-name=fact \ --method=find_by_file_hash \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --params="{\"file_hash\":\"ab3456df5799b87c77e7f88\"}" ``` ## 閾剧鐞� 鍦ㄩ暱瀹夐摼涓紝涓嶅悓鐨勮处鎴蜂竴鑸粦瀹氫笉鍚岀殑瑙掕壊锛屽叿鏈変笉鍚岀殑鏉冮檺銆� 涓轰簡鎻愰珮瀹夊叏鎬э紝闀垮畨閾鹃粯璁よ缃簡璁稿鏉冮檺锛岄儴鍒嗘搷浣滈渶瑕佸涓鐞嗗憳澶氱鎵嶈兘瀹屾垚銆� ### 缁勭粐绠$悊 #### 鍏辫瘑鑺傜偣Org绠$悊 - 娣诲姞鍏辫瘑鑺傜偣Org ``` ./cmc client chainconfig consensusnodeorg add \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-ids=QmcQHCuAXaFkbcsPUj7e37hXXfZ9DdN7bozseo5oX4qiC4,QmaWrR72CbT51nFVpNDS8NaqUZjVuD4Ezf8xcHcFW9SJWF \ --node-org-id=wx-org4.chainmaker.org ``` - 鍒犻櫎鍏辫瘑鑺傜偣Org ``` ./cmc client chainconfig consensusnodeorg remove \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-org-id=wx-org4.chainmaker.org ``` - 鏇存柊鍏辫瘑鑺傜偣Org ``` ./cmc client chainconfig consensusnodeorg update \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-ids=QmcQHCuAXaFkbcsPUj7e37hXXfZ9DdN7bozseo5oX4qiC4 \ --node-org-id=wx-org4.chainmaker.org ``` #### 缁勭粐涓诲叕閽ョ鐞� - 澧炲姞缁勭粐涓诲叕閽� 鍙互鐢� common 鍖呭伐鍏风敓鎴愭柊鐨勪富鍏挜銆傛垜浠亣璁剧敓鎴愬ソ鐨勪富鍏挜璺緞涓篶hainmaker-go/tools/cmc/master_public.key ``` ./cmc client chainconfig masterkey add \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --master-key-org-id=wx-org5.chainmaker.org \ --master-key-path=./master_public.key ``` - 鍒犻櫎缁勭粐涓诲叕閽� ``` ./cmc client chainconfig masterkey remove \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --master-key-org-id=wx-org5.chainmaker.org ``` - 鏇存柊缁勭粐涓诲叕閽� ``` ./cmc client chainconfig masterkey update \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.sign.key \ --master-key-org-id=wx-org4.chainmaker.org \ --master-key-path=./master_public.key ``` #### 缁勭粐淇℃伅鏌ヨ 缁勭粐淇℃伅鍙互閫氳繃閾鹃厤缃煡璇紝鍦╜master_keys`瀛楁涓嬩細杩斿洖褰撳墠鍖哄潡閾剧綉缁滀腑鐨勭粍缁囧垪琛ㄤ互鍙婂悇涓粍缁囦笅鐨勭粍缁囦富瀵嗛挜锛屽悓鏃� 鍦╜consensus`涓嬶紝浼氳繑鍥炲悇涓粍缁囦笅鐨勫叡璇嗚妭鐐瑰垪琛紝鍛戒护濡備笅锛� ``` ./cmc client chainconfig query \ --sdk-conf-path=./testdata/sdk_config_ibc.yml ``` ### 鑺傜偣绠$悊 - 澧炲姞鍏辫瘑鑺傜偣 ``` ./cmc client chainconfig consensusnodeid add \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-id=QmcQHCuAXaFkbcsPUj7e37hXXfZ9DdN7bozseo5oX4qiC4 \ --node-org-id=wx-org4.chainmaker.org ``` - 鏇存柊鍏辫瘑鑺傜偣Id ``` ./cmc client chainconfig consensusnodeid update \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --org-id=wx-org1.chainmaker.org \ --user-tlscrt-file-path=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.crt \ --user-tlskey-file-path=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.key \ --user-signcrt-file-path=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.crt \ --user-signkey-file-path=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.key \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-id=QmXxeLkNTcvySPKMkv3FUqQgpVZ3t85KMo5E4cmcmrexrC \ --node-id-old=QmcQHCuAXaFkbcsPUj7e37hXXfZ9DdN7bozseo5oX4qiC4 \ --node-org-id=wx-org5.chainmaker.org ``` - 鍒犻櫎鍏辫瘑鑺傜偣 ``` ./cmc client chainconfig consensusnodeid remove \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --node-id=QmZJuj1SyGKyU5FffzVHBwoz1QN8StjaBhpAEYFwK1wYEu \ --node-org-id=wx-org4.chainmaker.org ``` - 鏌ヨ鍏辫瘑鑺傜偣 鍏辫瘑鑺傜偣鍙互閫氳繃閾鹃厤缃煡璇紝鍦╜consensus`瀛楁涓嬩細杩斿洖褰撳墠鍖哄潡閾剧綉缁滀腑鐨勫叡璇嗚妭鐐瑰垪琛紝鍛戒护濡備笅锛� ``` ./cmc client chainconfig query \ --sdk-conf-path=./testdata/sdk_config_ibc.yml ``` ### 鏉冮檺绠$悊 闀垮畨閾剧洰鍓嶆敮鎸佽祫婧愮骇鍒殑鏉冮檺绠$悊锛屽彲浠ラ€氳繃cmc鍛戒护琛屽伐鍏锋垨鑰卻dk鏉ユ煡璇€€佹柊澧炪€佷慨鏀逛互鍙婂垹闄よ祫婧愭潈闄愩€� - 鏉冮檺鍒楄〃鏌ヨ ``` ./cmc client chainconfig permission list \ --sdk-conf-path=./testdata/sdk_config_ibc.yml ``` - 璁剧疆璐︽埛鏉冮檺 鏉冮檺淇敼鐩稿叧鐨勬搷浣滀竴鑸渶瑕�**澶氭暟绠$悊鍛樺绛�**鎺堟潈锛屽亣濡傛垜浠湁涓祫婧愬悕鍙細TEST_SUM, 闇€瑕佽缃负鈥濅换涓€鐢ㄦ埛鍙互璁块棶鈥濓紝 浣跨敤cmc鍛戒护璁剧疆鏉冮檺鏉冮檺濡備笅锛� ``` ./cmc client chainconfig permission add \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-org-ids=wx-org1.chainmaker.org,wx-org2.chainmaker.org,wx-org3.chainmaker.org \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --sync-result=true \ --permission-resource-name="TEST_SUM" \ --permission-resource-policy-rule=ANY \ --permission-resource-policy-roleList=CLIENT ``` - 淇敼璐︽埛鏉冮檺 浣跨敤cmc鍛戒护淇敼TEST_SUM璧勬簮鏉冮檺涓哄鏁扮鐞嗗憳澶氱鎿嶄綔 ``` ./cmc client chainconfig permission update \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-org-ids=wx-org1.chainmaker.org,wx-org2.chainmaker.org,wx-org3.chainmaker.org \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --sync-result=true \ --permission-resource-name="TEST_SUM" \ --permission-resource-policy-rule=MAJORITY \ --permission-resource-policy-roleList=ADMIN ``` - 鍒犻櫎璐︽埛鏉冮檺 浣跨敤cmc鍛戒护鍒犻櫎TEST_SUM璧勬簮鐨勬潈闄愰檺鍒讹紝鍒犻櫎鍚庤妭鐐规潈闄愭牎楠屾ā鍧椾笉浼氬璇ヨ祫婧愯繘琛屾潈闄愭鏌� ``` ./cmc client chainconfig permission delete \ --sdk-conf-path=./testdata/sdk_config_ibc.yml \ --admin-org-ids=wx-org1.chainmaker.org,wx-org2.chainmaker.org,wx-org3.chainmaker.org \ --admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key \ --admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt \ --sync-result=true \ --permission-resource-name="TEST_SUM" ```