Operator API
pNode CLI Usage
31 min
complete reference for all command line arguments and configuration options basic usage start with default settings pod starts the pnode with default configuration prpc server on 127 0 0 1 6000 (private) stats server on 127 0 0 1 80 (private) uses default bootstrap node for peer discovery check version pod version \# output pod 1 0 0 get help pod help \# shows complete usage information with all options and examples output xandeum pnode is a high performance blockchain node that provides json rpc api, peer to peer communication via gossip protocol, and real time statistics monitoring ports 6000 prpc api (configurable ip binding) 80 stats dashboard (localhost only) 9001 gossip protocol (peer communication) 5000 atlas connection (outbound) documentation for complete documentation, visit /usr/share/doc/pod/ after installation usage pod \[options] options \ rpc ip \<ip address> set rpc server ip binding \[default 127 0 0 1 for private] \ entrypoint \<ip\ port> bootstrap node for peer discovery \[default 173 212 207 32 9001] \ no entrypoint disable peer discovery (run in isolation) \ atlas ip \<ip\ port> atlas server address for data streaming \[default 95 217 229 171 5000] h, help print help (see a summary with ' h') v, version print version command line arguments \ rpc ip \<ip address> optional specifies the ip address for the prpc server to bind to default 127 0 0 1 (private, localhost only) \=== "examples" ```bash \# private access (default) pod rpc ip 127 0 0 1 \# public access from any interface pod rpc ip 0 0 0 0 \# bind to specific network interface pod rpc ip 192 168 1 100 \# ipv6 localhost pod rpc ip 1 ``` !!! warning "security note" using 0 0 0 0 makes your prpc api accessible from any network interface only use this if you understand the security implications \ entrypoint \<ip\ port> optional specifies a bootstrap node to connect to for initial peer discovery default 173 212 207 32 9001 (default bootstrap node) \=== "examples" ```bash \# connect to specific bootstrap node pod entrypoint 192 168 1 50 9001 \# connect to custom port pod entrypoint 10 0 0 5 9002 ``` \ no entrypoint optional disables bootstrap peer discovery the pnode will start without attempting to connect to any initial peers \=== "example" ```bash \# start without peer discovery pod no entrypoint ``` !!! info "isolated mode" when using no entrypoint , your pnode will operate in isolation until other pnodes connect to it directly \ atlas ip \<ip\ port> optional specifies the atlas server address for data streaming and synchronization default 95 217 229 171 5000 (devnet) \=== "examples" ```bash \# connect to local atlas server pod atlas ip 127 0 0 1 5000 \# connect to custom atlas server pod atlas ip 10 0 0 10 5000 ``` \ version standalone displays the pnode software version and exits immediately pod version \# output pod 1 0 0 \ help standalone displays complete usage information including all options, examples, and port information pod help \# shows complete usage information with all options and examples common usage patterns ๐ private development setup pod no entrypoint perfect for local development and testing no external connections, prpc only accessible locally ๐ public node pod rpc ip 0 0 0 0 runs a public node with prpc api accessible from any network interface uses default bootstrap for peer discovery ๐ข enterprise/private network pod rpc ip 192 168 1 100 entrypoint 192 168 1 50 9001 atlas ip 192 168 1 10 5000 configured for private corporate networks with custom atlas server and internal bootstrap node ๐งช local testing with custom atlas pod atlas ip 127 0 0 1 5000 no entrypoint for testing with a local atlas server without peer discovery port information service default port configurable description prpc api 6000 ip only json rpc api endpoint stats dashboard 80 โ fixed web based statistics dashboard (localhost only) gossip protocol 9001 โ fixed peer to peer communication and bootstrap discovery atlas connection 5000 โ fixed connection to atlas server for data streaming firewall configuration for public nodes, ensure these ports are accessible port 6000 prpc api (if using rpc ip 0 0 0 0 ) port 9001 gossip protocol (always required for peer communication and discovery) port 5000 atlas connection (outbound to atlas server) error handling invalid ip address pod rpc ip invalid ip \# error invalid ip address 'invalid ip' invalid ip address syntax ip address not available pod rpc ip 192 168 1 200 \# error cannot bind to ip address 192 168 1 200 on port 6000 address not available \# make sure the ip address is available on this system missing argument value pod rpc ip \# error a value is required for ' rpc ip \<ip address>' but none was supplied \# \# for more information, try ' help' unknown argument pod invalid option \# error unexpected argument ' invalid option' found \# \# usage pod \[options] \# \# for more information, try ' help' configuration examples development environment \# start isolated pnode for development pod no entrypoint \# test prpc locally curl x post http //127 0 0 1 6000/rpc \\ h "content type application/json" \\ d '{"jsonrpc" "2 0","method" "get version","id" 1}' production public node \# start public node with proper logging rust log=info pod rpc ip 0 0 0 0 \# verify prpc is accessible curl x post http //your public ip 6000/rpc \\ h "content type application/json" \\ d '{"jsonrpc" "2 0","method" "get version","id" 1}' private network setup \# configure for private network pod \\ \ rpc ip 10 0 1 100 \\ \ entrypoint 10 0 1 50 9001 \\ \ atlas ip 10 0 1 10 5000 environment variables you can also configure logging and other runtime behavior \# set log level export rust log=debug pod \# enable specific module logging export rust log=pod rpc=debug,pod gossip=info pod systemd service for production deployments, the pnode can be managed as a systemd service when installed via apt, the service file is automatically configured \[unit] description=xandeum pod system service after=network target \[service] execstart=/usr/bin/pod rpc ip 0 0 0 0 restart=always user=pod environment=node env=production environment=rust log=info standardoutput=syslog standarderror=syslog syslogidentifier=xandeum pod \[install] wantedby=multi user target \# enable and start the service sudo systemctl enable pod sudo systemctl start pod \# check status sudo systemctl status pod \# view logs sudo journalctl u pod f troubleshooting port already in use \# check what's using port 6000 sudo lsof i 6000 \# kill process using the port sudo kill 9 \<pid> network interface issues \# list available network interfaces ip addr show \# test if ip is accessible ping \<your ip> peer discovery problems \# test connectivity to bootstrap node nc u 173 212 207 32 9001 \# check local gossip port sudo netstat ulnp | grep 9001 !!! tip "logging" use rust log=debug to get detailed logs for troubleshooting network and configuration issues