Deploy a PFN using Docker
This section describes how to configure and run your PFN using Docker.
Ensure Docker Cli and service are available. If not, install
Next, the user chooses whether to run the Docker container with the default configuration or a customized configuration.
Default configuration
The default configurations:
endless-node
program is located at /usr/local/bin/
The working directory is located under /opt/endless/
The data directory stores synchronization /opt/endless/data
The genesis and waypoint files are located in the /opt/endless/genesis
directory
The P2P synchronization port is set to 0.0.0.0:6182
The GRPC stream service is disabled by default.
Customized Configuration
If the user wishes to run with a customized configuration, the following steps are required:
We presume user construct the following directory: base_dir, eg. /opt/endless/
Copy base_dir/
|- fullnode.yaml
|- data/
|- mainnet/
|- genesis.blob, waypoint.txt
User select run the following script to prepare your local configuration and data directory for mainnet. This will download the fullnode.yaml
configuration file, the genesis.blob
and waypoint.txt
files for your PFN, and create a data
directory to store the blockchain database:
Copy mkdir -p /opt/endless/mainnet && mkdir -p /opt/endless/data
cd /opt/endless/mainnet && \
curl -o /opt/endless/mainnet/waypoint.txt https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/mainnet/genesis_waypoint.txt && \
curl -o /opt/endless/mainnet/genesis.blob https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/mainnet/genesis.blob
Your fullnode.yaml
should look like the following:
Copy base:
role: "full_node"
data_dir: "/opt/endless/data"
waypoint:
from_file: "/opt/endless/mainnet/waypoint.txt"
execution:
genesis_file_location: "/opt/endless/mainnet/genesis.blob"
full_node_networks:
- network_id: public
seed_addrs:
0x415ef8d74118495935e60961806f24a8b502072378c73bdd87661d41a486ce1b:
- /dns/chain-r-1.endless.link/tcp/6182/noise-ik/0x415ef8d74118495935e60961806f24a8b502072378c73bdd87661d41a486ce1b/handshake/0
0xd8025b203853e3253393c80d8e81184983a4a00dfc23b432112e72ce1f827d69:
- /dns/chain-r-2.endless.link/tcp/6182/noise-ik/0xd8025b203853e3253393c80d8e81184983a4a00dfc23b432112e72ce1f827d69/handshake/0
0x52d09187b0bcc2e24f5aea940910ac42a645c231e6c0c9eebc65676350f1e94e:
- /dns/chain-r-3.endless.link/tcp/6182/noise-ik/0x52d09187b0bcc2e24f5aea940910ac42a645c231e6c0c9eebc65676350f1e94e/handshake/0
0x40cc7d84ecaf0b4afd364d7d5bb260aa71f31812c4c8f46be6fd68cccaba1d49:
- /dns/chain-r-4.endless.link/tcp/6182/noise-ik/0x40cc7d84ecaf0b4afd364d7d5bb260aa71f31812c4c8f46be6fd68cccaba1d49/handshake/0
0x2f9aac167b64843718a362bb2e4188b031ffcec500e80fd17582cde9437ffb07:
- /dns/chain-r-5.endless.link/tcp/6182/noise-ik/0x2f9aac167b64843718a362bb2e4188b031ffcec500e80fd17582cde9437ffb07/handshake/0
listen_address: /ip4/0.0.0.0/tcp/6182
api:
enabled: true
address: "0.0.0.0:8080"
Run the following docker
command:
Copy docker run --pull=always \
--rm -p 8080:8080 \
-p 9101:9101 -p 6180:6180 \
-v $(pwd):/opt/endless \
-v $(pwd)/data:/opt/endless/data \
--workdir /opt/endless \
--name=endless-fullnode endlesslab/endless-node:latest
You have now successfully configured and started running a PFN in the Endless mainnet.