# 节点管理
## 简介
ChainMaker区块链网络中有三类节点 `共识节点` `同步节点` `轻节点`
下面详细介绍各类型节点的管理操作。
也可使用 [SDK](../dev/SDK.md) 开发自定义管理工具。
## 目录
- [共识节点](#consensusNode)
- [加入网络](#addConsensusNode)
- [退出网络](#delConsensusNode)
- [更新共识节点的 NodeID](#updateConsensusNodeId)
- [同步节点](#syncNode)
- [开始同步](#startSync)
- [停止同步](#stopSync)
- [轻节点](#spvNode)
- [链配置](#chainConfig)
### 共识节点
- [加入网络](#addConsensusNode)
- [退出网络](#delConsensusNode)
- [更新共识节点的 NodeID](#updateConsensusNodeId)
#### 加入网络
如果新增共识节点所属的组织根证书不存在与区块链网络中,那么请先参考[证书管理](./证书管理.md)获得证书后,从第1步开始。
具体步骤如下:
- 1.[使用cmc添加组织根证书](../dev/命令行工具.html#chainConfig.addOrgRootCA)
- 2.[使用cmc添加共识节点Org](../dev/命令行工具.html#chainConfig.addConsensusNodeOrg)
- 3.启动节点程序
```shell
$ chainmaker start -c /path/to/chainmaker.yml
```
给现有组织新增第二个或第N个共识节点。
具体步骤如下:
- 1.[使用cmc添加共识节点Id](../dev/命令行工具.html#chainConfig.addConsensusNodeId)
- 2.启动节点程序
```shell
$ chainmaker start -c /path/to/chainmaker.yml
```
#### 退出网络
具体步骤如下:
- 1.[使用cmc删除共识节点](../dev/命令行工具.html#chainConfig.delConsensusNodeId)
- 2.停止节点程序
```shell
$ kill -15 <节点程序pid>
```
#### 更新共识节点的 NodeID
使用cmc更新共识节点的 NodeID 后,无需重启节点程序。
具体步骤如下:
- 1.[使用cmc更新共识节点的 NodeID](../dev/命令行工具.html#chainConfig.updateConsensusNodeId)
### 同步节点
- [开始同步](#startSync)
- [停止同步](#stopSync)
#### 开始同步
具体步骤如下:
- 1.生成同步节点的证书
通过 [chainmaker-cryptogen](../dev/证书生成工具.html#extendCA) 或者自建的 [CA证书服务](./CA证书服务.md) 生成同步节点证书
- 2.以 [节点配置模版](https://git.chainmaker.org.cn/chainmaker/chainmaker-go/-/blob/master/config/config_tpl/chainmaker.yml) 为模版
其中blockchain.genesis与同一组织下的共识节点保持一致。
修改其中node证书和tls证书为上一步新生成的证书。
- 3.启动节点程序
```shell
$ chainmaker start -c /path/to/chainmaker.yml
```
#### 停止同步
停止节点程序即可停止同步。
具体步骤如下:
- 1.停止节点程序
```shell
$ kill -15 <节点程序pid>
```
### 轻节点SPV
[轻节点SPV详细文档](./轻节点SPV使用.md)
### 链配置
ChainMaker区块链网络在部署并启动完成后,使用 [cmc](../dev/命令行工具.md) 命令行工具进行链配置的查询、更新。
也可以使用 [SDK](../dev/SDK.md) 开发自定义客户端进行链配置的相关操作。
#### 查询类
- [使用cmc查询链配置](../dev/命令行工具.html#chainConfig.query)
#### 更新类
- [使用cmc更新出块时间](../dev/命令行工具.html#chainConfig.updateBlockInterval)