Using Pre-compiled Binary
Deploy a PFN using Pre-compiled binary
To deploy a Preferred Full Node (PFN) using pre-compiled binary, follow these steps:
Obtain the Endless-Core Software:
Using Pre-Compiled Binaries: Download the endless-node pre-compiled binary from endless-releases.
Prepare Your System:
Ensure Executable Access: Place the compiled or downloaded
endless-nodebinary in a directory included in your system's executable PATH.Create Directories: Establish a base directory (e.g.,
/home/endless/) and within it, create a directory for your full node, such as/home/endless/mainnetfor mainnet deployments.
Set Up the Full Node Environment
Navigate to the base directory and create necessary subdirectories:
cd `/home/endless/mainnet` mkdir -p data genesis configDownload Network Files:
For Mainnet:
curl -o ./genesis/genesis.blob \ https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/mainnet/genesis.blob curl -o ./genesis/genesis_waypoint.txt \ https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/mainnet/genesis_waypoint.txtFor Testnet:
curl -o ./genesis/genesis.blob \ https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/testnet/genesis.blob curl -o ./genesis/genesis_waypoint.txt \ https://raw.githubusercontent.com/endless-labs/endless-release/main/endless-networks/testnet/genesis_waypoint.txtFor Other Networks: Access the appropriate genesis.blob and genesis_waypoint.txt files from the endless-networks and download them into the genesis directory.
Configure the Full Node: Create the Configuration File: In the
configdirectory, create afullnode.yamlfile. Edit Configuration Settings:Specify the Genesis File Location: Set the path to the downloaded
genesis.blobby modifying theexecution.genesis_file_locationparameter infullnode.yaml. Ensure it points to the correct location, such as/home/endless/mainnet/genesis/genesis.blob.Set the Waypoint File: Update the configuration to reference the
genesis_waypoint.txtfile, ensuring synchronization with the chosen network.Define Data Storage Path: Configure the node to store synchronized blockchain data in the
datadirectory you created earlier.
Start your local public fullnode by running the below command:
endless-node --config ./config/fullnode.yamlYou have now successfully configured and started running a PFN in the Endless mainnet.
To inspect the current synchronization status by running the below command:
curl http://localhost:8080/v1
{"chain_id":220,"epoch":"16","ledger_version":"427179",...,"node_role":"full_node",...,"block_height":"213270",...}The chain_id indicates the specific Endless network(current network is Endless Mainnet) to which you are connected.
The epoch and block_height represent the current synchronization progress, with block_height continually increasing as new blocks are added.
Sample Configuration of PFN
A sample fullnode.yaml configuration file for typical full node
base:
role: "full_node"
data_dir: "/home/endless/mainnet/data"
waypoint:
from_file: "/home/endless/mainnet/genesis/genesis_waypoint.txt"
execution:
genesis_file_location: "/home/endless/mainnet/genesis/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"Sample configuration with index GRPC enabled
When user need to integrate endless node with endless indexer, it's necessary to enable the index GRPC feature on endless node.
Please add the following lines to configuration of full node, to enable index GRPC.
state_sync:
state_sync_driver:
bootstrapping_mode: ExecuteOrApplyFromGenesis
continuous_syncing_mode: ExecuteTransactionsOrApplyOutputs
storage:
enable_indexer: true
indexer_grpc:
enabled: true
use_data_service_interface: true
address: "0.0.0.0:50051" # change to specified ipaddr:port where endless indexer is deployed Last updated