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-node
binary 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/mainnet
for 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 config
Download 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.txt
For 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.txt
For 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
config
directory, create afullnode.yaml
file. Edit Configuration Settings:Specify the Genesis File Location: Set the path to the downloaded
genesis.blob
by modifying theexecution.genesis_file_location
parameter 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.txt
file, ensuring synchronization with the chosen network.Define Data Storage Path: Configure the node to store synchronized blockchain data in the
data
directory you created earlier.
Start your local public fullnode by running the below command:
endless-node --config ./config/fullnode.yaml
You 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