Using Docker
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 Docker
Next, the user chooses whether to run the Docker container with the default configuration or a customized configuration.
Default configuration
The default configurations:
endless-nodeprogram is located at/usr/local/bin/The working directory is located under
/opt/endless/The data directory stores synchronization
/opt/endless/dataThe genesis and waypoint files are located in the
/opt/endless/genesisdirectoryThe P2P synchronization port is set to
0.0.0.0:6182The 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/
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.yamlconfiguration file, thegenesis.blobandwaypoint.txtfiles for your PFN, and create adatadirectory to store the blockchain database:
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.blobCreate
fullnode.yamlconfiguration file, please refer Sample Configuration of PFN:
Your fullnode.yaml should look like the following:
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
dockercommand:
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:latestYou have now successfully configured and started running a PFN in the Endless mainnet.
Last updated