Skip to main content

GateChain Full Node Setup Guide

Supported Platforms

GateChain full node currently supports Unix environments (macOS, Ubuntu, CentOS).

Hardware Requirements

Hardware must meet certain requirements to run a full node:

  • Operating System: Mac OS 10.14.6 or above, CentOS Linux release 7.7.1908 or above, or Ubuntu 18.04.2 or above
  • 4 CPU cores, 8GB+ RAM, and 100GB+ disk space
  • Stable internet connection with at least 1MB/s bandwidth

Installation Steps

Method 1: Automated Installation Script

Note: Please ensure "wget" is installed in your environment

We maintain an installation script ("install.sh") on GitHub that handles the setup of chain executables. This uses the following defaults:

Executables are placed in "/usr/local/bin" (i.e., "gated" "gatecli")

# One-click installation (requires proxy)
bash <(wget -qO- https://raw.githubusercontent.com/gatechain/node-binary/master/node/install.sh)

# One-click installation for users in China (no proxy needed)
bash <(wget -qO- https://gatechainbucket.oss-cn-beijing.aliyuncs.com/auto-install.sh)

Note: If you're installing for the second time or more, you need to manually delete the local gated/gatecli files first.

Method 2: Custom Installation 1

We currently use this repository to store historical versions of compiled node binaries.

  1. Install Git LFS Git LFS is a Git extension for managing large files. Please visit https://git-lfs.github.com/ for installation.

  2. Clone the repository:

git lfs clone https://github.com/gatechain/node-binary.git
  1. Select the corresponding version binary according to the changelog:
cd node-binary/node/{network}/{version}/{os_type}
  1. Copy binaries to "/usr/local/bin":
cp gated gatecli /usr/local/bin
  1. Create root directory for GateChain node $GATEHOME (i.e., ~/.gated):
mkdir ~/.gated
  1. Copy "config.json" and "genesis.json" from "node-binary/node/{network}/{version}/config/" to "$GATEHOME/"

Method 3: Custom Installation 2

Users can choose download links based on their system requirements.

Note: Please ensure "wget" is installed in your environment

For macOS:

# Download gated
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/binary/mac/gated

# Download gatecli
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/binary/mac/gatecli

For Linux:

# Download gated
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/binary/linux/gated

# Download gatecli
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/binary/linux/gatecli

Download Configuration Files:

# Download config.json
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/config/config.json

# Download genesis.json
wget https://gatechainbucket.oss-cn-beijing.aliyuncs.com/config/genesis.json

Copy downloaded binaries to "/usr/local/bin":

cp gated gatecli /usr/local/bin

Create node root directory:

mkdir ~/.gated

Copy configuration files to "$GATEHOME/"

Method 4: Docker Installation

Docker provides a convenient way to run GateChain nodes in containers. The official Docker image is available at GateChain Node Binary Repository.

Prerequisites

  • Docker installed on your system
  • Docker Compose installed on your system
  • At least 100GB of free disk space

Setup Steps

  1. Create a directory for Docker volumes:
mkdir -p ~/.gatechain_docker/{data,logs}
  1. Create a docker-compose.yml file with the following content:
version: '3'

services:
gated:
image: gatechain:latest
container_name: gatechain-node
volumes:
- ~/.gatechain_docker/data:/root/.gated
- ~/.gatechain_docker/logs:/root/log
command: sh -c "mkdir -p /root/log && gated start > /root/log/node.log 2>&1"
restart: always
ports:
- "8080:8080"
- "8081:8081"

evm-rest:
image: gatechain:latest
container_name: gatechain-evm-rest
volumes:
- ~/.gatechain_docker/data:/root/.gated
- ~/.gatechain_docker/data:/root/.gatecli
- ~/.gatechain_docker/logs:/root/log
depends_on:
- gated
command: sh -c "sleep 10 && gatecli evm rest-server --gm-websocket-port http://gatechain-node:8081 --chain-id gate-66 --laddr tcp://0.0.0.0:9545 --node http://gatechain-node:8080 --rpc-api web3,eth,personal,net,debug > /root/log/evm_rpc.log 2>&1"
restart: always
ports:
- "9545:9545"

rest-server:
image: gatechain:latest
container_name: gatechain-rest
volumes:
- ~/.gatechain_docker/data:/root/.gated
- ~/.gatechain_docker/data:/root/.gatecli
- ~/.gatechain_docker/logs:/root/log
depends_on:
- gated
- evm-rest
command: sh -c "gatecli rest-server --chain-id gate-66 --node http://gatechain-node:8080 --gm-websocket-port http://gatechain-node:8081 --laddr tcp://0.0.0.0:1317 > /root/log/rest.log 2>&1"
restart: always
ports:
- "1317:1317"
  1. Start the services:
docker-compose up -d
  1. Check the logs:
# View node logs
tail -f ~/.gatechain_docker/logs/node.log
# View EVM RPC logs
tail -f ~/.gatechain_docker/logs/evm_rpc.log
# View REST server logs
tail -f ~/.gatechain_docker/logs/rest.log

The setup includes three services:

  • gated: The main GateChain node
  • evm-rest: EVM RPC service for Ethereum compatibility
  • rest-server: REST API service for GateChain

Exposed Ports

  • 8080: Node P2P communication
  • 8081: WebSocket port
  • 9545: EVM RPC endpoint
  • 1317: REST API endpoint

Data Persistence

All data is persisted in ~/.gatechain_docker/data and logs in ~/.gatechain_docker/logs.

Starting the Node

Basic Start

gated start

Start with GC Mode

To start in GC mode, modify the start command:

gated start --pruning nothing

Start EVM RPC

gatecli evm rest-server --gm-websocket-port http://127.0.0.1:8085 --chain-id mainnet --laddr tcp://0.0.0.0:6060 --rpc-api web3,eth,personal,net,debug

For EVM RPC support, modify the following properties in config.json:

"WsPort": "tcp://0.0.0.0:8085"
"IsWebSocketServerActive": true

Save changes and restart gated.

Interact with a node

You can interact with your local node using either the gatecli command line interface or the RPC API.