# 闀垮畨閾剧粍缁囧拰鑺傜偣绠$悊
## 闀垮畨閾剧粍缁囩鐞�

闀垮畨閾剧粍缁囩鐞嗗寘鎷涓嬫帴鍙o細

- 娣诲姞缁勭粐鏍硅瘉涔︼細娣诲姞涓€涓粍缁囩殑鏍硅瘉涔︼紝姣忎釜缁勭粐鍙互鏈夊涓笉閲嶅鐨勬牴璇佷功銆�
- 鏇存柊缁勭粐鏍硅瘉涔︼細鏇存柊鏌愪釜缁勭粐鐨勬牴璇佷功锛屾洿鏂版牴璇佷功涔嬪墠锛岄渶淇濊瘉璇ョ粍缁囨病鏈夊弬涓庡叡璇嗭紝鍗砪hainconfig鐨刢onsensus.node涓笉鍖呭惈璇ョ粍缁囩殑鍚嶇О銆�
- 鍒犻櫎缁勭粐鏍硅瘉涔︼細鍒犻櫎鏌愪釜缁勭粐鐨勬墍鏈夋牴璇佷功锛屽垹闄ゆ牴璇佷功涔嬪墠锛岄渶淇濊瘉璇ョ粍缁囨病鏈夊弬涓庡叡璇嗐€�

鍛戒护琛屽彂閫佷氦鏄撳弬鑰冿細[娣诲姞缁勭粐鏍硅瘉涔(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addOrgRootCA)



## 鑺傜偣绠$悊

### 鑺傜偣绠€浠�

ChainMaker鍖哄潡閾剧綉缁滀腑鏈変笁绫昏妭鐐� `鍏辫瘑鑺傜偣` `鍚屾鑺傜偣` `杞昏妭鐐筦 <br>
涓嬮潰璇︾粏浠嬬粛鍚勭被鍨嬭妭鐐圭殑绠$悊鎿嶄綔銆�<br>
涔熷彲浣跨敤 [SDK](../dev/SDK.md) 寮€鍙戣嚜瀹氫箟绠$悊宸ュ叿銆�

## 鐩綍

- [鍏辫瘑鑺傜偣](#consensusNode)
  - [鍔犲叆缃戠粶](#addConsensusNode)
  - [閫€鍑虹綉缁淽(#delConsensusNode)
  - [鏇存柊鍏辫瘑鑺傜偣鐨� NodeID](#updateConsensusNodeId)
- [鍚屾鑺傜偣](#syncNode)
  - [寮€濮嬪悓姝(#startSync)
  - [鍋滄鍚屾](#stopSync)
- [閾鹃厤缃甝(#chainConfig)

<span id="consensusNode"></span>

### 鍏辫瘑鑺傜偣

- [鍔犲叆缃戠粶](#addConsensusNode)
- [閫€鍑虹綉缁淽(#delConsensusNode)
- [鏇存柊鍏辫瘑鑺傜偣鐨� NodeID](#updateConsensusNodeId)

<span id="addConsensusNode"></span>

#### 鍔犲叆缃戠粶

##### BFT绫�(TBFT銆丮axbft)鍏辫瘑銆丷AFT鍏辫瘑

鍏充簬鏂板鑺傜偣鐨勫叿浣撴搷浣滅ず渚嬶紝鍙傝€僛鏋勯€犳柊鑺傜偣鍔犲叆缃戠粶](./鍏稿瀷鍦烘櫙绀轰緥.md)

濡傛灉鏂板鍏辫瘑鑺傜偣鎵€灞炵殑缁勭粐鏍硅瘉涔︿笉瀛樺湪涓庡尯鍧楅摼缃戠粶涓紝閭d箞璇峰厛鍙傝€僛璇佷功绠$悊](./璇佷功绠$悊.md)鑾峰緱璇佷功鍚庯紝浠庣1姝ュ紑濮嬨€�<br>
浠ュ垱寤烘柊缁勭粐wx-org5.chainmaker.org涓轰緥锛屽叿浣撴楠ゅ涓�:

- 1.[浣跨敤cmc娣诲姞缁勭粐鏍硅瘉涔(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addOrgRootCA)
- 2.鍑嗗鐗╂枡鍖咃紝鍚姩鑺傜偣绋嬪簭锛岀瓑寰呰妭鐐瑰悓姝ヨ嚦鏈€鏂伴珮搴﹀尯鍧�
  
  ```sh
  1. 澶嶅埗閮ㄧ讲鍖�
  $ cd build/release
  $ cp -rf chainmaker-v2.0.0-wx-org1.chainmaker.org chainmaker-v2.0.0-wx-org5.chainmaker.org
  2. 鎶奵hainmaker-v2.0.0-wx-org5.chainmaker.org/bin涓嬫墍鏈夌殑.sh鑴氭湰涓墍鏈墂x-org1.chainmaker.org鏇挎崲涓簑x-org5.chainmaker.org
  3. 閲嶅懡鍚�
  $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/config
  $ mv wx-org1.chainmaker.org wx-org5.chainmaker.org
  4. 浣跨敤chainmaker-cryptogen鐢熸垚鐨剋x-org5.chainmaker.org涓嬬殑node鍜寀ser鍒嗗埆瑕嗙洊鎺塩hainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/certs涓嬬殑node鍜寀ser
  5. 淇敼chainmaker.yml
     鎶奵hainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/chainmaker.yml涓墍鏈墂x-org1.chainmaker.org鏇挎崲涓簑x-org5.chainmaker.org
     淇敼net妯″潡锛屾妸 listen_addr: /ip4/0.0.0.0/tcp/11301 淇敼涓� listen_addr: /ip4/0.0.0.0/tcp/11305
     淇敼rpc妯″潡锛屾妸 port: 12301 淇敼涓� port: 12305
     淇敼monitor妯″潡锛屾妸 port: 14321 淇敼涓� port: 14325
     淇敼pprof妯″潡锛屾妸 port: 24321 淇敼涓� port: 24325
  6. 淇敼chainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/chainconfig/bc1.yml涓殑trust_roots妯″潡銆�
     鎶婃墍鏈� ../config/wx-org1.chainmaker.org 淇敼涓� ../config/wx-org5.chainmaker.org
  7. 鍚姩鑺傜偣
  $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/bin
  $ ./start.sh
  8. 閫氳繃鏃ュ織瑙傚療鑺傜偣鍚屾鐨勫尯鍧楅珮搴�
  $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/log
  $ tail -f system.log | grep "commit block \["
  ```
- 3.[浣跨敤cmc娣诲姞涓哄叡璇嗚妭鐐筣(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addConsensusNodeOrg)

##### DPoS 鍏辫瘑

鍥犱负銆怌hainmaker v1.2.0+銆戠殑DPoS鍩轰簬璇佷功浣撶郴鏋勫缓鐨勶紝鎵€浠ワ紝褰撴坊鍔犳柊鐨勫叡璇嗚妭鐐规椂锛岄渶瑕佸厛浣跨敤鍛戒护灏嗘柊鑺傜偣娣诲姞鍒拌瘉涔︿綋绯讳腑銆�

濡傛灉鏂板鑺傜偣宸茬粡娣诲姞鍒伴摼涓婄殑璇佷功浣撶郴锛岃浠庣3姝ュ紑濮嬨€�<br>
鍏蜂綋姝ラ濡備笅:

- 1.[浣跨敤cmc娣诲姞缁勭粐鏍硅瘉涔(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addOrgRootCA)
- 2.鍑嗗鐗╂枡鍖咃紝鍚姩鑺傜偣绋嬪簭锛岀瓑寰呰妭鐐瑰悓姝ヨ嚦鏈€鏂伴珮搴﹀尯鍧楋紙鍏蜂綋鎿嶄綔瑙佷笂鑺傦級
- 3.[浣跨敤cmc娣诲姞鍏辫瘑鑺傜偣](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addConsensusNodeOrg)
- 4.[浣跨敤宸ュ叿浠庢柊鐢ㄦ埛璇佷功璁$畻鐢ㄦ埛鐨勫湴鍧€](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.addrFromCert)
- 5.[浣跨敤ERC20鐨勭鐞嗗憳璇佷功鍚戞柊澧炶妭鐐圭殑鐢ㄦ埛鍦板潃澧炲彂鏉冪泭](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposMint)
- 6.[鏌ヨ鏂板鑺傜偣鐨勭敤鎴峰湴鍧€鐨勮处鎴蜂綑棰漖(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposBalanceOf)
- 7.[鍦╯take鍚堢害涓缃柊鑺傜偣鐨勭嚎涓奍D](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposSetNodeID)
- 8.[鏌ヨ鏂拌妭鐐圭殑绾夸笂ID](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposGetNodeID)
- 9.[鏂拌妭鐐归€氳繃鎶垫娂鍙樹负鍊欓€変汉鍙備笌鍏辫瘑](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposDelegate)


<span id="delConsensusNode"></span>

#### 閫€鍑虹綉缁�

##### BFT绫�(TBFT銆丮axbft)鍏辫瘑銆丷AFT鍏辫瘑

鍏蜂綋姝ラ濡備笅:
- 1.[浣跨敤cmc鍒犻櫎鍏辫瘑鑺傜偣](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.delConsensusNodeId)
- 2.鍋滄鑺傜偣绋嬪簭
```shell
$ kill -15 <鑺傜偣绋嬪簭pid>
```

***娉�**

* 閫€鍑虹綉缁滄椂锛屽鏋滆鍒犻櫎缁勭粐鏍硅瘉涔︼紝鍒欏繀椤诲厛鍒犻櫎鍏辫瘑鑺傜偣锛屾墠鑳藉垹闄ょ粍缁囨牴璇佷功銆�



##### DPoS鍏辫瘑

- 1.[鏌ヨ缃戠粶楠岃瘉浜鸿妭鐐圭殑鏈€灏戞姷鎶兼暟閲忚姹俔(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposMinSelfDelegation)
- 2.[鏌ヨ楠岃瘉浜烘暟鎹甝(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposValidatorInfo)
- 3.[瑙i櫎鍏辫瘑鑺傜偣鐨勬姷鎶糫(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.dposUndelegate)
- 4.鍋滄鑺傜偣绋嬪簭
```shell
$ kill -15 <鑺傜偣绋嬪簭pid>
```

<span id="updateConsensusNodeId"></span>

#### 鏇存柊鍏辫瘑鑺傜偣鐨� NodeID
浣跨敤cmc鏇存柊鍏辫瘑鑺傜偣鐨� NodeID 鍚庯紝鏃犻渶閲嶅惎鑺傜偣绋嬪簭銆�<br>
鍏蜂綋姝ラ濡備笅:

- 1.[浣跨敤cmc鏇存柊鍏辫瘑鑺傜偣鐨� NodeID](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.updateConsensusNodeId)


<span id="syncNode"></span>
### 鍚屾鑺傜偣

- [寮€濮嬪悓姝(#startSync)
- [鍋滄鍚屾](#stopSync)

<span id="startSync"></span>
#### 寮€濮嬪悓姝�
浠ヤ负缁勭粐wx-org1.chainmaker.org鏂板涓€涓悓姝ヨ妭鐐逛负渚嬶紝鍏蜂綋姝ラ濡備笅:
- 1.鐢熸垚鍚屾鑺傜偣鐨勮瘉涔�
  閫氳繃 [chainmaker-cryptogen](../instructions/璇佷功鐢熸垚宸ュ叿.html#extendCA) 鎴栬€呰嚜寤虹殑 [CA璇佷功鏈嶅姟](./CA璇佷功鏈嶅姟.md) 鐢熸垚鍚屾鑺傜偣璇佷功
- 2.鍚姩鑺傜偣绋嬪簭
  ```sh
  1. 澶嶅埗閮ㄧ讲鍖�
  $ cd build/release
  $ cp -rf chainmaker-v2.0.0-wx-org1.chainmaker.org chainmaker-v2.0.0-wx-org1.chainmaker.org_common2
  2. 鎶奵hainmaker-v2.0.0-wx-org1.chainmaker.org_common2/bin涓嬫墍鏈夌殑.sh鑴氭湰涓墍鏈墂x-org1.chainmaker.org鏇挎崲涓簑x-org1.chainmaker.org_common2
  3. 閲嶅懡鍚�
  $ cd build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config
  $ mv wx-org1.chainmaker.org wx-org1.chainmaker.org_common2
  4. 鎷疯礉chainmaker-cryptogen鎵╁睍鐢熸垚鐨刢rypto-config/wx-org1.chainmaker.org/node/common2 鍒� chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/certs/node涓�
  5. 淇敼chainmaker.yml
     鎶奵hainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/chainmaker.yml涓墍鏈夎矾寰勪腑鍖呭惈鐨剋x-org1.chainmaker.org鏇挎崲涓簑x-org1.chainmaker.org_common2
     淇敼node妯″潡锛屾妸 certs/node/consensus1/consensus1.sign.key 淇敼涓� certs/node/common2/common2.sign.key
     淇敼node妯″潡锛屾妸 certs/node/consensus1/consensus1.sign.crt 淇敼涓� certs/node/common2/common2.sign.crt
     淇敼net妯″潡锛屾妸 certs/node/consensus1/consensus1.tls.key 淇敼涓� certs/node/common2/common2.tls.key
     淇敼net妯″潡锛屾妸 certs/node/consensus1/consensus1.tls.crt 淇敼涓� certs/node/common2/common2.tls.crt
     淇敼net妯″潡锛屾妸 listen_addr: /ip4/0.0.0.0/tcp/11301 淇敼涓� listen_addr: /ip4/0.0.0.0/tcp/11306
     淇敼rpc妯″潡锛屾妸 port: 12301 淇敼涓� port: 12306
     淇敼monitor妯″潡锛屾妸 port: 14321 淇敼涓� port: 14326
     淇敼pprof妯″潡锛屾妸 port: 24321 淇敼涓� port: 24326
  6. 淇敼chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/chainconfig/bc1.yml涓殑trust_roots妯″潡銆�
     鎶婃墍鏈� ../config/wx-org1.chainmaker.org 淇敼涓� ../config/wx-org1.chainmaker.org_common2
  7. 鍚姩鑺傜偣
  $ cd build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/bin
  $ ./start.sh
  8. End
  ```

<span id="stopSync"></span>
#### 鍋滄鍚屾
鍋滄鑺傜偣绋嬪簭鍗冲彲鍋滄鍚屾銆�<br>
鍏蜂綋姝ラ濡備笅:
- 1.鍋滄鑺傜偣绋嬪簭
```shell
$ kill -15 <鑺傜偣绋嬪簭pid>
```

<!--
<span id="spvNode"></span>
### 杞昏妭鐐筍PV
[杞昏妭鐐筍PV璇︾粏鏂囨。](./杞昏妭鐐筍PV浣跨敤.md)
-->

<span id="chainConfig"></span>
### 閾鹃厤缃�

ChainMaker鍖哄潡閾剧綉缁滃湪閮ㄧ讲骞跺惎鍔ㄥ畬鎴愬悗锛屼娇鐢� [cmc](../dev/鍛戒护琛屽伐鍏�.md) 鍛戒护琛屽伐鍏疯繘琛岄摼閰嶇疆鐨勬煡璇€€佹洿鏂般€�<br>
涔熷彲浠ヤ娇鐢� [SDK](../dev/SDK.md) 寮€鍙戣嚜瀹氫箟瀹㈡埛绔繘琛岄摼閰嶇疆鐨勭浉鍏虫搷浣溿€�

#### 鏌ヨ绫�
- [浣跨敤cmc鏌ヨ閾鹃厤缃甝(../dev/鍛戒护琛屽伐鍏�.html#chainConfig.query)

#### 鏇存柊绫�
- [浣跨敤cmc鏇存柊鍑哄潡鏃堕棿](../dev/鍛戒护琛屽伐鍏�.html#chainConfig.updateBlockInterval)

<br><br>