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_URL
where 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 cometbft
In 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-all
This will delete the entire network data directory, after which you can re-join.
You should only run this command after stopping pd
and cometbft
.