Building from Source

Install Rust

Install the latest version of Rust.
curl https://sh.rustup.rs -sSf | sh -s -- -y
If Rust is already installed, make sure to add the nightly version and the WebAssembly target:
# Ensure the current shell has cargo
source ~/.cargo/env
# Update the Rust toolchain
rustup default stable
rustup update
# Add the nightly and WebAssembly targets:
rustup update nightly-2023-04-16
rustup target add wasm32-unknown-unknown --toolchain nightly-2023-04-16
Verify your installation.
rustup show

Install dependencies

Make sure you have all the necessary dependencies for compiling and running the Creditcoin node software.
sudo apt install make clang pkg-config libssl-dev build-essential protobuf-compiler
You may need to install & configure Network Time Protocol (NTP) Client.

Building & Installing the Creditcoin binary

You will be building the latest creditcoin binary from gluwa/creditcoin repository on Github using the source code in the main branch.
Download the repository by cloning it.
git clone https://github.com/gluwa/creditcoin
Move into the creditcoin folder and checkout to the main branch by running the following command.
cd creditcoin git checkout main
Build the binary with cargo.
cargo build -r
This step might take 10 - 40 minutes to finish.

Sync Chain Data

Synchronize your node by running the binary inside the target/release folder.
./target/release/creditcoin-node \
--prometheus-external \
# (optional) opt in to telemetry
--telemetry-url "wss://telemetry.creditcoin.io/submit/ 0" \
# node to connect to on boot, in order to join the network
--bootnodes "/dns4/bootnode.creditcoin.network/tcp/30333/p2p/12D3KooWAEgDL126EUFxFfdQKiUhmx3BJPdszQHu9PsYsLCuavhb" "/dns4/bootnode2.creditcoin.network/tcp/30333/p2p/12D3KooWSQye3uN3bZQRRC4oZbpiAZXkP2o5UZh6S8pqyh24bF3k" "/dns4/bootnode3.creditcoin.network/tcp/30333/p2p/12D3KooWFrsEZ2aSfiigAxs6ir2kU6en4BewotyCXPhrJ7T1AzjN" \
# 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 mainnet
--chain mainnet \
# the base path to store the node's data
--base-path /data \
# the port to use for node-to-node communication
--port 30333