Joining a network
We provide instructions for running both fullnode deployments and validator deployments. A fullnode will sync with the network but will not have any voting power, and will not be eligible for staking or funding stream rewards. For more information on what a fullnode is, see the CometBFT documentation (opens in a new tab).
A regular validator will participate in voting and rewards, if it becomes part of the consensus set.
Generating configs
To join a network as a fullnode, install the most recent version of pd, run
pd network join to generate configs, then use those configs to run pd and
cometbft.
pd network join \
--moniker MY_NODE_NAME \
--external-address IP_ADDRESS:26656 \
NODE_URLwhere MY_NODE_NAME is a moniker identifying your node, and IP_ADDRESS (like 1.2.3.4)
is the public IP address of the node you're running. Other peers will try to connect
to your node over port 26656/TCP. Finally, the NODE_URL flag specified the CometBFT RPC
for the remote node you wish to bootstrap from.
If your node is behind a firewall or not publicly routable for some other reason,
skip the --external-address flag, so that other peers won't try to connect to it.
You can also skip the --moniker flag to use a randomized moniker instead of selecting one.
This command fetches the genesis file for the target network, and writes
configs to a network data directory (by default, ~/.penumbra/network_data).
If any data exists in the network data directory, this command will fail. See
the section above on resetting node state.
Finally, if the network you're joining has undergone a chain upgrade before,
you'll need to fetch historical blocks from an archive. Here's an example for
how to do that for the penumbra-1 chain:
curl -O https://artifacts.plinfra.net/penumbra-1/penumbra-node-archive-latest.tar.gz
tar -xzf penumbra-node-archive-latest.tar.gz -C ~/.penumbra/network_data/node0/Running pd and cometbft
Copy the systemd service configs into place from the project git repo (opens in a new tab):
cd deployments/systemd/
sudo cp *.service /etc/systemd/system/
# edit service files to customize for your system
sudo systemctl daemon-reload
sudo systemctl restart penumbra cometbftIn particular, if you have DNS configured for your node, you should edit the ExecStart line for pd
to use the --grpc-auto-https option.
Resetting state
If you have previously joined a network before, and want to purge those configs, use:
pd network unsafe-reset-allThis will delete the entire network data directory, after which you can re-join.
You should only run this command after stopping pd and cometbft.