- Docs
- Run a node
- Node installation
Node installation
This guide provides instructions on how to install and run a full node on the Archway blockchain network.
Use the pre-built binary
Download the binary
You can download the latest release of the pre-built binary from the releases page.
For Linux, and depending on your architecture:
amd64
arm64
wget https://github.com/archway-network/archway/releases/download/v9.0.0/archwayd_linux_amd64
Verify the integrity of the binary
You can now verify the download by generating the sha256 hash for the downloaded file:
amd64
arm64
sha256sum archwayd_linux_amd64
Using the sha256sum should give you a string (i.e. 04fac46745579a7e8b22fc3b1f83dcf5c1aa2b03e303823eb54d2328e7c1fa05).
You can then download the sha256 checksum file relative to the release file:
wget archwaysha256.txt https://github.com/archway-network/archway/releases/download/v9.0.0/archwayd_v9.0.0_checksums.txt
and you can compare that the sha256 hash strings match, By doing so, you are ensuring that the downloaded file matches the actual release file.
Add executable permissions
After downloading the file, you can add executable permissions to it using the chmod command:
chmod +x archwayd_linux_amd64
The above command makes the binary executable.
Move the binary to the chosen directory
You can now move the binary to a directory in your PATH. The /usr/local/bin directory is commonly used for custom user programs not managed by the distribution package manager and is usually included in the PATH. You can move your file there with the mv command and also rename it to archwayd at the same time:
sudo mv archwayd_linux_amd64 /usr/local/bin/archwayd
Use the archwayd docker image
For this option you will need to have Docker installed.
Warning
For Linux users, it's recommended to run the Docker daemon in Rootless Mode.
Pull the docker image
You can pull the docker image from the following repository. Make sure to pull the docker image relative to the latest Archway release.
For example, to connect to the Tromphe (mainnet or Constantine (testnet), issue the following command:
docker pull ghcr.io/archway-network/archwayd-dev:v9.0.0
Info
Make sure to always use the image tag that is being used on the network you want to connect to.
Set up the PATH
By default, the Docker image runs the archwayd
binary, so you should specify the arguments for archwayd
right after the image name. For better usage, mount an external volume at /root/.archway
to persist the daemon home path across different runs. For example, if you want to add a key:
docker run --rm -it \ -v ~/.archway:/root/.archway \ ghcr.io/archway-network/archwayd-dev:v9.0.0 \ keys add test-key
And then list all keys:
docker run --rm -it \ -v ~/.archway:/root/.archway \ ghcr.io/archway-network/archwayd-dev:v9.0.0 \ keys list
It's also important to notice that, when running a node in a network, you'll need to expose the container ports for external connectivity. The image exposes the following ports:
- 1317: Rest server
- 26656: Tendermint P2P
- 26657: Tendermint RPC
Info
To simplify using the Docker container, you can set an alias with the home path and the proper image tag, like:
alias archwayd="docker run --rm -it -v ~/.archway:/root/.archway ghcr.io/archway-network/archwayd-dev:v9.0.0"
After setting the alias with the above tip, you can use the other archwayd commands without typing the verbose Docker run command.
For the sake of comprehensive documentation, the full Docker command is shown. Just remember that by setting the alias you can simply use archwayd instead of the Docker command.
Build archwayd from source (not recommended)
If you cannot use the pre-built binary or the docker image, you can build the binary yourself. This might be the ideal solution for users on MacOS running M1/M2 chips if they are not willing to utilize our Docker solution above.
Clone the repository
Alternatively, you can clone the source code from the Archway repository. Go to https://github.com/archway-network/archway/releases to find the latest releases. You will then switch the <version-tag> below with the latest release version.
git clone https://github.com/archway-network/archway.gitcd archwaygit fetchgit checkout v9.0.0
Set the GOPATH
Make sure to correctly set up the GOPATH, by either adding it to the ~/.bashrc file or launching the following commands from the shell:
export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
And then update your terminal shell by launching:
source ~/.profile
Build archwayd
Do the following to build and install the archwayd daemon:
make install
Confirm that the installation has been completed by running the following command:
archwayd version
Try it:
archwayd version
Info
It is not recommended to build binary yourself, unless no other option is available.
Ensure that archwayd is installed
You can now verify that archwayd has been correctly installed by launching:
archwayd
Try it:
archwayd
The following information should be shown:
Archway Daemon (server)Usage: archwayd [command]Available Commands: config Create or query an application CLI configuration file debug Tool for helping with debugging your application ensure-binary ensures the binary is correctly built export Export state to JSON genesis Application's genesis-related subcommands help Help about any command init Initialize private validator, p2p, genesis, and application configuration files keys Manage your application's keys query Querying subcommands rollback rollback cosmos-sdk and tendermint state by one height rosetta spin up a rosetta server start Run the full node status Query remote node for status tendermint Tendermint subcommands tx Transactions subcommands version Print the application binary version informationFlags: -h, --help help for archwayd --home string directory for config and data (default "/Users/adrianthompson/.archway") --log_format string The logging format (json|plain) (default "plain") --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) (default "info") --log_no_color Disable colored logs --trace print out full stack trace on errorsUse "archwayd [command] --help" for more information about a command.
Next steps
Now it is time to initialize your node.