> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/vi/phat-trien/co-ban/ket-noi-voi-chiliz-chain/chay-mot-node-chiliz-chain.md).

# Chạy một Node Chiliz Chain

Việc chạy node Chiliz Chain của riêng bạn mang lại khả năng kiểm soát, quyền riêng tư và độ tin cậy cao hơn, nhưng đòi hỏi nhiều chuyên môn kỹ thuật và tài nguyên hơn so với việc sử dụng một RPC endpoint có sẵn.

Nó cho phép bạn giao dịch và tương tác với các smart contract trên Chiliz Chain

{% hint style="info" %}
Lưu ý rằng có một trang tài liệu riêng dành cho việc chạy node của Validator: [chay-mot-node-nha-xac-thuc.md](/vi/hoc-tap/tro-thanh-nha-xac-thuc/chay-mot-node-nha-xac-thuc.md)
{% endhint %}

## **Điều kiện tiên quyết**

Để chạy node Chiliz Chain, bạn phải cài đặt [Docker](https://www.docker.com/), trên máy tính hoặc trên máy chủ của bạn. Do đó, vui lòng hoàn tất [cài đặt Docker](https://docs.docker.com/engine/install/) trước khi tiếp tục.

### **Docker image dựng sẵn**

Bạn có thể sử dụng các Docker image dựng sẵn từ [kho lưu trữ công khai Chiliz Chain 2.0 trên Docker hub](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

## **Khởi chạy một node và bắt đầu đồng bộ**

Điểm khởi đầu được khuyến nghị để chạy một node Chiliz Chain là sử dụng data volume được gắn (mounted). Nếu phương pháp này được dùng để tái tạo một Docker container, dữ liệu sẽ được lưu trong thư mục và có thể dễ dàng tái sử dụng hoặc nhân bản sang một node khác.

### **Bước 1: Tạo một thư mục**

Tạo một thư mục và trỏ tới nó trong tham số `-v` của lệnh sau:

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 8545:8545 \
-p 8546:8546 \
chilizchain/ccv2-geth:latest \
--chiliz # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
--datadir=/datadir \
--ipcdisable
```

### **Bước 2: Kết nối Client**

Để kết nối một client với một node, bạn phải bật RPC HTTP và/hoặc các WebSocket server bằng cách chỉ định nhóm tham số `--http` và/hoặc `--ws` tương ứng.

Ví dụ:

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 8545:8545 \
-p 8546:8546 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
--datadir=/datadir \
--ipcdisable \
--http \
--http.addr=0.0.0.0 \
--http.api=eth,net,web3,debug,txpool \
--http.port=8545 \
--http.corsdomain="*" \
--http.vhosts="*" \
--ws \
--ws.addr=0.0.0.0 \
--ws.api=eth,net,web3,debug,txpool \
--ws.port=8546 \
--ws.origins="*" \
```

{% hint style="warning" %}
**THẬN TRỌNG**

Vì lý do bảo mật, hãy đảm bảo bạn đặt các giá trị phù hợp cho những tham số sau:

`--http.corsdomain`

`--http.vhosts`

`--ws.origins`
{% endhint %}

## **Thông tin bảo trì Node**

### Thay đổi độ chi tiết (verbosity) khi gỡ lỗi

Trong một số trường hợp, bạn có thể muốn tăng độ chi tiết của node, tức là khi bạn cần gỡ lỗi cho node hoặc cho chính client đang kết nối.

Để làm điều đó, bạn có thể định nghĩa một tham số `--verbosity`. Nó có thể nhận các tùy chọn sau (mặc định là 3):

* 0=silent
* 1=error
* 2=warn
* 3=info
* 4=debug
* 5=detail

### Dừng node và dọn dẹp

Nếu bạn đã khởi chạy node bằng một trong các lệnh trên thì tiến trình node của bạn tiếp tục chạy ở foreground. Để dừng tiến trình này, hãy nhấn CTRL+C.

Chạy lệnh sau để xóa Docker container:

```bash
docker rm ccv2-node
```

### **Xóa thư mục**

Chạy lệnh sau để xóa một thư mục:

```bash
rm my-datadir
```

## Cập nhật Node của bạn

Đội ngũ Chiliz Chain nỗ lực giữ cho Chiliz Chain an toàn và hiện đại, và do đó thỉnh thoảng chúng tôi sẽ thực hiện hard fork hàng năm, chẳng hạn như hard fork Dragon8.

Trong trường hợp xảy ra hard fork, node của bạn sẽ không còn đồng bộ với mạng lưới. Vì vậy, điều quan trọng là phải theo dõi các thông báo của chúng tôi và cập nhật node của bạn.

Để giữ cho node của bạn được cập nhật, bạn có thể làm theo các bước sau.

**Nếu bạn dùng Docker:**

1. Đảm bảo bạn dừng và xóa Docker container hiện có của mình trong khi vẫn giữ lại các volume chứa cơ sở dữ liệu của bạn.
2. Khởi chạy node của bạn bằng [Docker image dựng sẵn mới nhất hiện có](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

**Nếu bạn dùng binary của riêng mình:**

1. [Tải bản phát hành mới nhất từ kho lưu trữ GitHub của chúng tôi](https://github.com/chiliz-chain/v2/releases).
2. Build từ đó bằng bộ công cụ của bạn.

## Chạy một archive node

Để chạy một node ở chế độ archive, bạn nên thêm 2 tham số sau vào lệnh `ccv2-geth` được trình bày ở trên:

```bash
--syncmode=full \
--gcmode=archive \
```

## Chạy một Node Chiliz Chain từ Snapshot hoặc Backup

Để tăng tốc quá trình đồng bộ của node Chiliz Chain, bạn có thể dựa vào một snapshot — một bản sao gần đây (hoặc archive/backup) của thư mục dữ liệu blockchain (`datadir`). Phương pháp này cho phép node của bạn đi vào hoạt động nhanh hơn so với việc đồng bộ từ đầu.

{% hint style="info" %}
Khuyến nghị giữ lại các snapshot cho các thiết lập node mới.\
Việc ghi đè một datadir hiện có bằng một snapshot có thể dẫn đến những điểm không nhất quán.
{% endhint %}

### Các Snapshot có sẵn

Mỗi mạng lưới có một snapshot riêng:

* Spicy Testnet: [chaindata\_snapshot.tar.gz](https://s3.eu-west-3.amazonaws.com/spicy-snapshots.chiliz.com/chaindata_snapshot.tar.gz)
* Chiliz Chain Mainnet: [chaindata\_snapshot.tar.gz](https://s3.eu-west-3.amazonaws.com/snapshots.chiliz.com/chaindata_snapshot.tar.gz)

{% hint style="info" %}
**Dọn dẹp dữ liệu hiện có**

Nếu bạn có ý định áp dụng một snapshot cho một node hiện có, hãy đảm bảo bạn xóa các thư mục và tệp sau bên trong datadir của bạn trước khi khởi động lại node:

```bash
rm -rf blobpool transactions.rlp LOCK lightchaindata triecache
```

Bước này giúp ngăn ngừa các xung đột tiềm ẩn phát sinh từ dữ liệu còn sót lại.
{% endhint %}

### Các bước để chạy một Node từ Snapshot:

1. Tạo một thư mục dữ liệu:

```bash
mkdir -p ~/chiliz-node/my-datadir
```

2. Tải xuống Snapshot:

Thay thế URL bằng URL snapshot Mainnet nếu cần.

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd ~/chiliz-node/my-datadir
nohup curl -L --retry 5 -o chaindata.tar.gz https://s3.eu-west-3.amazonaws.com/spicy-snapshots.chiliz.com/chaindata_snapshot.tar.gz > download.log 2>&1 &
```

{% endcode %}

{% hint style="info" %}
Để theo dõi tiến độ tải xuống, hãy dùng:\
`tail -f download.log`
{% endhint %}

3. Giải nén Snapshot:

```bash
tar -xzf chaindata.tar.gz
```

4. Chạy Node Chiliz Chain:

{% code lineNumbers="true" %}

```bash
docker run \
  -v ~/chiliz-node/my-datadir:/datadir \
  --name ccv2-node \
  -p 8545:8545 \
  -p 8546:8546 \
  chilizchain/ccv2-geth:latest \
  --spicy \  # Use --chiliz for Mainnet
  --datadir=/datadir \
  --ipcdisable \
  --http \
  --http.addr=0.0.0.0 \
  --http.api=eth,net,web3,debug,txpool \
  --http.port=8545 \
  --http.corsdomain="*" \
  --http.vhosts="*" \
  --ws \
  --ws.addr=0.0.0.0 \
  --ws.api=eth,net,web3,debug,txpool \
  --ws.port=8546 \
  --ws.origins="*"
```

{% endcode %}

## Thông tin bổ sung về Geth

Truy cập [các tùy chọn dòng lệnh](https://geth.ethereum.org/docs/fundamentals/command-line-options) của Geth để xem danh sách đầy đủ các tham số Geth có sẵn.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chiliz.com/vi/phat-trien/co-ban/ket-noi-voi-chiliz-chain/chay-mot-node-chiliz-chain.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
