Creditcoin Docs
Creditcoin Docs
  • What is Creditcoin
    • CTC Token 101
    • Acquiring Creditcoin Assets
  • SwapCTC Quick Guide
  • Wallets
    • How to Connect Your Wallet to Creditcoin
      • Polkadot-JS Extension
      • Metamask
      • Command-line Interface
        • Subkey
        • Creditcoin CLI
    • Advanced
      • Substrate & EVM accounts
      • Proxy Accounts
        • Setting up a Staking Proxy Account
        • Setting up a Validator
    • Using Testnet Faucet
  • Staking
    • Bonded Tokens
    • Validator Elections
      • Elections Example
    • Eras and Sessions
    • Staking Rewards
    • Slashing
  • Nominator Guides
    • Nominating with Staking Pools
      • Choosing a Pool
      • Joining a Pool
      • Creating a Pool
      • Exiting a Pool
      • Managing a Pool
    • Nominating without Staking Pools
    • Claiming Rewards
  • Validator Guides
    • Minimum requirements
    • Using a Docker container
    • Stake using Creditcoin CLI
  • EVM-compatibility
  • Smart Contract Guides
    • Creditcoin Endpoints
    • Deploying contracts with Remix
    • Hardhat Smart Contract Development
    • Creating Dapps with ethers.js
  • Environments
    • Mainnet
    • Testnet
  • Releases
  • LEGAL
    • Terms of Use
    • Privacy Policy
Powered by GitBook
On this page
  • Using Docker to run a Mainnet node
  • Using Docker to run a Testnet node
  1. Validator Guides

Using a Docker container

PreviousMinimum requirementsNextStake using Creditcoin CLI

Last updated 3 months ago

Sync Chain Data

Ensure Docker is installed (or ) and run the gluwa/creditcoin3 Docker image.

Using Docker to run a Mainnet node

Docker should automatically pull the specified gluwa/creditcoin3 image. If not, you can try pulling it yourself from DockerHub by running docker pull gluwa/creditcoin3:3.39.0-mainnet and then re-running the command below.

PowerShell does not support comments on multiline commands, please use the uncommented version.

docker run \
 --name creditcoin-validator \
 -p 30333:30333 \
 -v <your local data path>:/creditcoin-node/data  \
 gluwa/creditcoin3:3.39.0-mainnet `# Enter latest mainnet image` \
 --name "validator name" `# name the validator` \
 --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `# (optional) opt in to telemetry` \
 --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `# REPLACE <yourhostname or ip> with the public IP address or host name at which your node can be reached` \
 --chain /mainnetSpecRaw.json `# we want to connect to mainnet` \
 --bootnodes "/dns4/cc3-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWLGyvbdQ3wTGjRAEueFsDnstZnV8fN3iyPTmHeyswSPGy" \
 --validator `# if we want to run a validator node` \
 --base-path /creditcoin-node/data `# the base path to store the node's data` \
 --port 30333 # the port to use for node-to-node communications
docker run \
 --name creditcoin-validator \
 -p 30333:30333 \
 -v <your local data path>:/creditcoin-node/data  \
 gluwa/creditcoin3:3.39.0-mainnet \
 --name "validator name" \
 --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0"  \
 --public-addr "/dns4/<yourhostname or ip>/tcp/30333" \
 --chain /mainnetSpecRaw.json \
 --bootnodes "/dns4/cc3-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWLGyvbdQ3wTGjRAEueFsDnstZnV8fN3iyPTmHeyswSPGy" \
 --validator \
 --base-path /creditcoin-node/data \
 --port 30333
docker run `
  --name creditcoin-validator `
  -p 30333:30333 `
  -v <your local data path>:/creditcoin-node/data `
# Enter mainnet image
  gluwa/creditcoin3:3.39.0-mainnet `
# name the validator
  --name "validator name" `
# (optional) opt in to telemetry
  --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `
# REPLACE <yourhostname or ip> with the public IP address or host name that your node can be reached at
  --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `
# we want to connect to mainnet
  --chain /mainnetSpecRaw.json `
# we want to run a validator node
  --bootnodes "/dns4/cc3-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWLGyvbdQ3wTGjRAEueFsDnstZnV8fN3iyPTmHeyswSPGy" `
  --validator `
# the base path to store the node's data
  --base-path /creditcoin-node/data `
# the port to use for node-to-node communication
  --port 30333
docker run `
  --name creditcoin-validator `
  -p 30333:30333 `
  -v <your local data path>:/creditcoin-node/data `
  gluwa/creditcoin3:3.39.0-mainnet `
  --name "validator name" `
  --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `
  --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `
  --chain /mainnetSpecRaw.json `
  --bootnodes "/dns4/cc3-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWLGyvbdQ3wTGjRAEueFsDnstZnV8fN3iyPTmHeyswSPGy" `
  --validator `
  --base-path /creditcoin-node/data `
  --port 30333

In the command above, notice the -v flag that takes a local directory as the first part of the parameter. It's import that docker has the ability to write to this directory, otherwise you will see errors such as Error: Service(Client(Backend("IO Error: Permission denied (os error 13)"))). Your command will likely use a path similar to -v /home/validator/data:/creditcoin-node/data.

Here is an example command to run a validator that connects to the Creditcoin Mainnet:

docker run \
-p 30333:30333 \
-v ~/chain_data:/data \
gluwa/creditcoin3:3.39.0-mainnet \
--bootnodes "/dns4/cc3-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWLGyvbdQ3wTGjRAEueFsDnstZnV8fN3iyPTmHeyswSPGy" \
--chain /mainnetSpecRaw.json \
--validator \
--base-path /data \
--port 30333

Using Docker to run a Testnet node

Docker should automatically pull the specified gluwa/creditcoin3 image. If not, you can try pulling it yourself from DockerHub by running docker pull gluwa/creditcoin3:3.39.0-testnet and then re-running the command below.

PowerShell does not support comments on multiline commands, please use the uncommented version.

docker run \
 --name creditcoin-validator \
 -p 30333:30333 \
 -v <your local data path>:/creditcoin-node/data  \
 gluwa/creditcoin3:3.39.0-testnet `# Enter latest testnet image` \
 --name "validator name" `# name the validator` \
 --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `# (optional) opt in to telemetry` \
 --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `# REPLACE <yourhostname or ip> with the public IP address or host name at which your node can be reached` \
 --chain testnet `# we want to connect to the testnet` \
 --bootnodes "/dns4/cc3-test-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAxmsWr6iEjFyLqQBzfLvbCRTAhYBeszyr8UWgQx6Zu7K" \
 --validator `# we want to run a validator node` \
 --base-path /creditcoin-node/data `# the base path to store the node's data` \
 --port 30333 # the port to use for node-to-node communications
docker run \
 --name creditcoin-validator \
 -p 30333:30333 \
 -v <your local data path>:/creditcoin-node/data  \
 gluwa/creditcoin3:3.39.0-testnet \
 --name "validator name" \
 --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" \
 --public-addr "/dns4/<yourhostname or ip>/tcp/30333" \
 --chain testnet \
 --bootnodes "/dns4/cc3-test-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAxmsWr6iEjFyLqQBzfLvbCRTAhYBeszyr8UWgQx6Zu7K" \
 --validator \
 --base-path /creditcoin-node/data \
 --port 30333
docker run `
  --name creditcoin-validator `
  -p 30333:30333 `
  -v <your local data path>:/creditcoin-node/data `
# Enter testnet image
  gluwa/creditcoin3:3.39.0-testnet `
# name the validator
  --name "validator name" `
# (optional) opt in to telemetry
  --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `
# REPLACE <yourhostname or ip> with the public IP address or host name that your node can be reached at
  --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `
# we want to connect to the testnet
  --chain testnet `
# we want to run a validator node
  --bootnodes "/dns4/cc3-test-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAxmsWr6iEjFyLqQBzfLvbCRTAhYBeszyr8UWgQx6Zu7K" `
  --validator `
# the base path to store the node's data
  --base-path /creditcoin-node/data `
# the port to use for node-to-node communication
  --port 30333
docker run `
  --name creditcoin-validator `
  -p 30333:30333 `
  -v <your local data path>:/creditcoin-node/data `
  gluwa/creditcoin3:3.39.0-testnet `
  --name "validator name" `
  --telemetry-url "wss://telemetry.creditcoin.network/submit/ 0" `
  --public-addr "/dns4/<yourhostname or ip>/tcp/30333" `
  --chain testnet `
  --bootnodes "/dns4/cc3-test-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAxmsWr6iEjFyLqQBzfLvbCRTAhYBeszyr8UWgQx6Zu7K" `
  --validator `
  --base-path /creditcoin-node/data `
  --port 30333

In the command above, notice the -v flag that takes a local directory as the first part of the parameter. It's import that docker has the ability to write to this directory, otherwise you will see errors such as Error: Service(Client(Backend("IO Error: Permission denied (os error 13)"))). Your command will likely use a path similar to -v /home/validator/data:/creditcoin-node/data.

Here is an example command to run a validator that connects to the Creditcoin Testnet:

docker run \
-p 30333:30333 \
-v ~/chain_data:/data \
gluwa/creditcoin3:3.39.0-testnet \
--bootnodes "/dns4/cc3-test-bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAxmsWr6iEjFyLqQBzfLvbCRTAhYBeszyr8UWgQx6Zu7K" \
--chain testnet \
--validator \
--base-path /data \
--port 30333
install it in your OS of choice