Validator Node

A Validator Node monitors the progress of the rollup protocol and actively participates to ensure the secure advancement of the chain state.

1. Prerequisites Before Deployment

Several requirements must be met before operating a Validator Node. These include:

  • A Validator Account

  • A Wallet Contract associated with the Validator Account

  • An approval and authorization process for the Wallet Contract

1-1. Creating a Validator Wallet Contract

To deploy a Validator Node, users must create their own contract wallet using their account.

  • The contract can only be controlled by the deploying account.

  • At this stage, the validator has not yet been granted authorization and must go through an additional approval process.

  • A Wallet Contract can be deployed multiple times using the same account. However, if an account owns multiple wallets, it cannot be used to run a node. Please take caution when managing multiple wallets.

For detailed instructions on wallet creation, refer to the following repository:

1-2. Authorization Process

After creating the Wallet Contract, its address must be submitted to obtain authorization.

dKargo will review the request and grant Validator permissions upon approval.

For any questions or inquiries, please contact us through the dKargo support page.

2. Mainnet

Scheduled for public release in 2025.

3. Warehouse (Testnet)

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

3-1. Public L2 Arbitrum RPC EndPoints

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

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

3-2. Docker Images

  • Latest Docker Image: repo.dkargo.io:59083/warehouse-validator:v0.0.1

3-3. Required Custom Options

  • --node.staker.parent-chain-wallet.private-key

    • Private key of the wallet that operates the validator.

  • --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).

3-4. Running a Node via Docker

docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-validator:v0.0.1 --node.staker.parent-chain-wallet.private-key=<PRIVATE_KEY>

LOCAL_DATA_PATH: The local PC path where the validator node’s data is stored. PRIVATE_KEY: The private key of the wallet used to operate the validator node.

3-5. Snapshot Sync

docker run -d -p 8547:8547 -p 8548:8548 -v "<LOCAL_DATA_PATH>:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-validator:v0.0.1 --node.staker.parent-chain-wallet.private-key=<PRIVATE_KEY> --init.url=<SNAPSHOT_URL>

SNAPSHOT_URL: The URL where the snapshot data is provided. For more details, please refer to Chain Snapshot.

3-6. Example (with snapshot)

docker run -d -p 8547:8547 -p 8548:8548 -v "/Users/shjang/nw-test/validator:/home/user/.arbitrum" repo.dkargo.io:59083/warehouse-validator:v0.0.1 --node.staker.parent-chain-wallet.private-key=<PRIVATE_KEY> --init.url="https://warehouse-snapshot.s3.ap-northeast-2.amazonaws.com/prune/latest/pruned.tar.gz"

Last updated