Installation

Running a Change Chain Node from Source

Before you begin, ensure your system meets the following software requirements:

  • Operating System: Ubuntu 18.04 or later (Linux), macOS, or Windows Subsystem for Linux (WSL)

  • Go Programming Language: Version 1.16 or later

  • Git: Latest version

  • gcc (GNU Compiler Collection): For compiling source code

1. Install Go

Linux/macOS

Download and install Go:

# For Linux
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz

# For macOS
brew install go

Add Go to your PATH:

bashCopy codeecho "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

Verify the installation:

bashCopy codego version

Windows

Download the Windows installer from the official Go website and follow the installation instructions.

2. Install Git

Linux

bashCopy codesudo apt-get update
sudo apt-get install git

macOS

bashCopy codebrew install git

Windows

Download and install Git from the official website.

3. Install gcc

Linux

bashCopy codesudo apt-get install build-essential

macOS

bashCopy codexcode-select --install

Build and Start the Change Chain Node

1. Set the GOPATH

Set your Go workspace directory:

bashCopy codeexport GOPATH=$HOME/go
echo "export GOPATH=$HOME/go" >> ~/.bashrc
source ~/.bashrc

2. Create a Directory in Your GOPATH

Create the necessary directories:

bashCopy codemkdir -p $GOPATH/src/github.com/changechain

3. Clone the Change Chain Repository

Navigate to the directory and clone the repository:

bashCopy codecd $GOPATH/src/github.com/changechain
git clone https://github.com/changechain/changechain.git

4. Run the Build Script

Navigate to the cloned repository and run the build script:

bashCopy codecd $GOPATH/src/github.com/changechain/changechain
./scripts/build.sh

This script compiles the Change Chain node and places the executable in the build directory.

5. Start the Node

On Change Chain Mainnet

bashCopy codecd $GOPATH/src/github.com/changechain/changechain
./build/changechain

On Testnet

bashCopy codecd $GOPATH/src/github.com/changechain/changechain
./build/changechain --network-id=testnet

Note: To stop the node, press Ctrl + C.


Run with a Pre-Built Binary

If you prefer to use a pre-built binary instead of building from source, follow these steps:

1. Download

Visit the Change Chain Releases page and download the appropriate version for your operating system.

MacOS

  • Download: changechain-macos-<VERSION>.zip

  • Unzip:

    bashCopy codeunzip changechain-macos-<VERSION>.zip

    The resulting folder changechain-<VERSION> contains the binaries.

Linux (x86_64 PCs or Cloud Providers)

  • Download: changechain-linux-amd64-<VERSION>.tar.gz

  • Unzip:

    bashCopy codetar -xvf changechain-linux-amd64-<VERSION>.tar.gz

    The resulting folder changechain-<VERSION>-linux contains the binaries.

2. Start the Node

MacOS

Mainnet:

bashCopy code./changechain-<VERSION>/build/changechain

Testnet:

bashCopy code./changechain-<VERSION>/build/changechain --network-id=testnet

Linux

Mainnet:

bashCopy code./changechain-<VERSION>-linux/changechain

Testnet:

bashCopy code./changechain-<VERSION>-linux/changechain --network-id=testnet

Networking

To successfully run the Change Chain node and participate in the network, ensure that your node can accept connections on network port 9651.

Running on a Cloud Provider

If you're running your node on a cloud service like AWS, Azure, or Google Cloud:

  • Configure your cloud instance's firewall settings to allow inbound and outbound traffic on port 9651.

  • Ensure your security groups and network access control lists (ACLs) permit traffic on this port.

Running on a Home Connection

If you're running your node from home:

  • Set up port forwarding on your router to forward external traffic on port 9651 to your machine's local IP address.

  • Check your computer's firewall settings to allow traffic on port 9651.

Note: To make API calls to your node from other machines, include the argument --http-host=0.0.0.0 when starting the node:

bashCopy code./build/changechain --http-host=0.0.0.0

Bootstrapping

When starting your node for the first time, it needs to catch up with the latest network state, a process known as bootstrapping. This may take several hours depending on your internet connection and hardware performance.

Check Bootstrapping Progress

You can check if your node has finished bootstrapping a particular chain by using the info.isBootstrapped API method.

Example Command

bashCopy codecurl -X POST --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "info.isBootstrapped",
    "params": {
        "chain": "C"
    }
}' -H 'content-type:application/json;' 127.0.0.1:9651/ext/info

Replace "chain": "C" with "X" or "P" to check the status of the other chains.

Interpreting the Response

  • If the response returns true, the chain has finished bootstrapping.

  • If the response returns false, the chain is still bootstrapping.


RPC Endpoints

Once your node has bootstrapped, the following RPC endpoints become available:

  • Change Chain: http://localhost:9651/ext/bc/C

If accessing remotely, replace localhost with your node's public IP address.

For detailed API documentation, refer to the Change Chain API Reference.

Last updated