Skip to content

coti-io/coti-full-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

COTI Website image image image image

COTI Full Node

This repository contains the necessary files and scripts to easily set up and manage a COTI Full Node for the COTI blockchain network.

Documentation

Visit the Running a COTI Node section of the COTI Documentation for full instructions. The node ecosystem installation guides describe wizard flows in more detail.

Automated install (install_coti-full-node.sh)

Run from an empty directory. Set <network> to testnet or mainnet.

Linux / WSL (Ubuntu 24.04 LTS, or WSL with a Linux home path — not /mnt/c/) — as root:

curl -sL https://fullnode.<network>.coti.io/install-linux | sudo bash -s -- "0x<PRIVATE_KEY>" "<FQDN>" [options]

macOS — do not use sudo:

curl -sL https://fullnode.<network>.coti.io/install-mac | bash -s -- "0x<PRIVATE_KEY>" "<FQDN>" [options]

Required arguments: 64-character hex private key (optional 0x prefix) and FQDN hostname.

Flag Purpose
--with-frp COTI wizard tunnel: enables FRPC, disables host Nginx/Let’s Encrypt, relaxes inbound 80/443/7400 firewall checks.
--with-nginx Your domain: Nginx + Let’s Encrypt on the host (/rpc, /ws, /metrics).
--staging Let’s Encrypt staging CA (with --with-nginx only).
--frpc-custom-domain=, --frpc-auth-token=, --frps-server-addr-1=, etc. Optional FRPC tuning (see script).

Nginx/TLS and FRPC are off by default. Use --with-nginx or --with-frp to enable them (not both on one install).

macOS: use install_coti-full-node-mac.sh (see script header for curl examples).

Configuration files

After install, two env files live in the clone:

File Purpose
installer.env Installation / packaging defaults: DOCKER_FULL_NODE_IMAGE_VERSION, NETWORK, CLONE_BRANCH, disk requirement.
.env This host: FULLNODE_FQDN, FULLNODE_EXT_IP, NGINX_ENABLED, FRPC_ENABLED, FRPS hosts, keys.

start_coti-full-node.sh and stop_coti-full-node.sh load installer.env first, then .env (host values win on overlap).

Upgrade the node image: edit DOCKER_FULL_NODE_IMAGE_VERSION or set IMAGE= in installer.env, then ./stop_coti-full-node.sh and ./start_coti-full-node.sh.

Per-variable reference: .env.example and installer.env (template beside the install script before clone).

Updating to the latest version

To update your node to the latest version, follow these steps:

  1. Clone or Pull Changes: If you don't have the repository cloned, clone it. If you already have it, navigate to the directory and pull the latest changes.

    • Clone: git clone https://github.com/coti-io/coti-full-node.git
    • Pull: cd ~/coti-full-node and then git pull
  2. Checkout the Tag: Ensure you are on the correct version by checking out the new tag. git checkout tags/v1.1.4-testnet

  3. Bump image tag (if needed): set DOCKER_FULL_NODE_IMAGE_VERSION or IMAGE in installer.env.

  4. Stop Old Containers: Stop the existing containers by running the stop script. ./stop_coti-full-node.sh

  5. Start New Containers: Start the new containers with the updated Docker Compose file. ./start_coti-full-node.sh

Reporting Issues

If you encounter any bugs or issues, please report them by opening an issue on GitHub. Include as much detail as possible, including steps to reproduce the bug, the environment you encountered it in, and any other relevant information.

FRPC RPC relay (testnet gateway)

Enable with --with-frp (wizard tunnel). The stack runs two frpc containers (regional gateways; defaults in .env.example).

  • Outbound-only tunnel to FRPS (FRPS_SERVER_ADDR_1 / _2, port 7000 by default).
  • Edge paths on your FRPC_CUSTOM_DOMAIN: /rpc → JSON-RPC (8545), /ws → WebSocket (8546), /operator/ → local operator dashboard.
  • P2P still uses bootnodes and host port 7400; wizard tunnel mode does not require inbound 80/443/7400 from the internet.
  • Host Nginx and FRPC are mutually exclusive on the same install.

Relevant variables: .env.example. FRPC is off by default; use --with-frp to enable it.

Operator status page

After ./start_coti-full-node.sh, a small local web dashboard helps non-technical operators see whether the node is running, has peers, is syncing, and (when configured) whether DNS/HTTPS or the FRPC gateway look healthy. On the machine where Docker runs, open http://127.0.0.1:8090. It is bound to localhost only and auto-refreshes about every 15 seconds.

If you manage the server over SSH, use port forwarding, for example: ssh -L 8090:127.0.0.1:8090 user@your-node then open http://127.0.0.1:8090 in your desktop browser.

About

Official setup and scripts for easily running and managing a decentralized Full Node for the COTI blockchain network.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors