# Full Node

A Full Node manages the state of the chain and provides an API that allows other users to interact with the blockchain. It is particularly useful for users who intend to operate a node as a service provider.

## 1. Mainnet

### 1-1. Public L2 Arbitrum RPC EndPoints

URL information for communicating with Arbitrum, the base layer of dKargo’s L3.

* <https://arb1.arbitrum.io/rpc>

> To avoid rate limits, replace the Arbitrum One RPC URL with a private URL.

### 1-2. Docker Images

* Latest Docker Image: <mark style="color:blue;">`repo.dkargo.io:59083/mainnet-fullnode:v0.0.1`</mark>

### 1-3. L3 RPC EndPoints

* https endpoint: <mark style="color:blue;">`https://mainnet-rpc.dkargo.io`</mark>
* wss endpoint: <mark style="color:blue;">`wss://mainnet-ws.dkargo.io`</mark>

### 1-4. Required Custom Options

* `--init.url`
  * Snapshot URL for downloading initialization data to enable fast synchronization.

* `--parent-chain.connection.url`
  * Base layer endpoint URL (Default: Arbitrum public RPC endpoints).

* `--node.data-availability.parent-chain-node-url`
  * Base layer endpoint URL (Default: Arbitrum public RPC endpoints).

### 1-5. Running a Node via Docker

{% code overflow="wrap" %}

```shell
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/mainnet-fullnode:v0.0.1
```

{% endcode %}

> `LOCAL_DATA_PATH`: The local PC path where the node data is stored.

### 1-6. Snapshot Sync

{% code overflow="wrap" %}

```bash
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/mainnet-fullnode:v0.0.1 --init.url=<SNAPSHOT_URL>
```

{% endcode %}

> `SNAPSHOT_URL`: The URL where the [snapshot](https://docs.dkargo.io/docs2-eng/chain-snapshot) data is provided. For more details, please refer to Chain Snapshot.

### 1-7. Example(with snapshot)

{% code overflow="wrap" %}

```bash
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/mainnet-fullnode:v0.0.1 --init.url="https://dkargo-snapshot.s3.ap-northeast-2.amazonaws.com/prune/latest/pruned.tar.gz"
```

{% endcode %}

## 2. Warehouse (Testnet)

Warehouse is a **testnet** that allows users to experiment before the official launch of the dKargo Mainnet.

### 2-1. Public L2 Arbitrum RPC EndPoints

URL information for communicating with Arbitrum, the base layer of dKargo’s L3.

* [https://sepolia-rollup.arbitrum.io/rpc](https://sepolia-rollup.arbitrum.io/rpc**)

> To avoid rate limits, replace the Arbitrum One RPC URL with a private URL.

### 2-2. Docker Images

* Latest Docker Image: <mark style="color:blue;">`repo.dkargo.io:59083/warehouse-fullnode:v0.0.1`</mark>

### 2-3. L3 RPC EndPoints

* https endpoint: <mark style="color:blue;">`https://rpc.warehouse.dkargo.io`</mark>
* wss endpoint: <mark style="color:blue;">`wss://ws.warehouse.dkargo.io`</mark>

### 2-4. Required Custom Options

* `--init.url`
  * Snapshot URL for downloading initialization data to enable fast synchronization.

* `--parent-chain.connection.url`
  * Base layer endpoint URL (Default: Arbitrum public RPC endpoints).

* `--node.data-availability.parent-chain-node-url`
  * Base layer endpoint URL (Default: Arbitrum public RPC endpoints).

### 2-5. Running a Node via Docker

{% code overflow="wrap" %}

```shell
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-fullnode:v0.0.1
```

{% endcode %}

> `LOCAL_DATA_PATH`: The local PC path where the node data is stored.

### 2-6. Snapshot Sync

{% code overflow="wrap" %}

```bash
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-fullnode:v0.0.1 --init.url=<SNAPSHOT_URL>
```

{% endcode %}

> `SNAPSHOT_URL`: The URL where the [snapshot](https://docs.dkargo.io/docs2-eng/chain-snapshot) data is provided. For more details, please refer to Chain Snapshot.

### 2-7. Example(with snapshot)

{% code overflow="wrap" %}

```bash
docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-fullnode:v0.0.1 --init.url="https://warehouse-snapshot.s3.ap-northeast-2.amazonaws.com/prune/latest/pruned.tar.gz"
```

{% endcode %}
