Documentation Index
Fetch the complete documentation index at: https://sidiorresearchlabs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Single Node
Following this page, you can run a single node local network manually or by using the already prepared automated script. Running a single node setup is useful for developers who want to test their applications and protocol features because of its simplicity and speed. For more complex setups, please refer to the Multi Node Setup page.Prerequisite Readings
Automated Script
The simplest way to start a local Paxeer Network node is by using the provided helper script on the base level of the Paxeer Network repository, which will create a sensible default configuration for testing purposes:~/.tmp-hyperpaxd instead of the default ~/.hyperpaxd.
:::
When working with the local_node.sh script, it is necessary to extend all hyperpaxd commands, that target the local test node, with the --home ~/.tmp-hyperpaxd flag. This is mandatory, because the home directory cannot be stored in the hyperpaxd configuration, which can be seen in the output below. For ease of use, it might be sensible to export this directory path as an environment variable:
Manual Deployment
This guide helps you create a single validator node that runs a network locally for testing and other development related uses.Initialize the chain
Before actually running the node, we need to initialize the chain, and most importantly its genesis file. This is done with theinit subcommand:
moniker later by updating the config.toml file.
:::
The command above creates all the configuration files needed for your node and validator to run, as well as a default
genesis file, which defines the initial state of the network. All these
configuration files are in ~/.hyperpaxd by default, but you can overwrite the
location of this folder by passing the --home flag.
Genesis Procedure
Adding Genesis Accounts
Before starting the chain, you need to populate the state with at least one account using the keyring:ahpx tokens in your chain’s genesis file. Doing
so will also make sure your chain is aware of this account’s existence:
init command above) as a validator of your chain.
Validators can be declared before a chain is first started via a special transaction included in the genesis
file called a gentx:
gentx does three things:
- Registers the
validatoraccount you created as a validator operator account (i.e. the account that controls the validator). - Self-delegates the provided
amountof staking tokens. - Link the operator account with a Tendermint node pubkey that will be used for signing blocks. If no
--pubkeyflag is provided, it defaults to the local node pubkey created via thehyperpaxd initcommand above.
gentx, use the following command:
Collecting gentx
By default, the genesis file do not contain any gentxs. A gentx is a transaction that bonds
staking token present in the genesis file under accounts to a validator, essentially creating a
validator at genesis. The chain will start as soon as more than 2/3rds of the validators (weighted
by voting power) that are the recipient of a valid gentx come online after genesis_time.
A gentx can be added manually to the genesis file, or via the following command:
gentxs stored in ~/.hyperpaxd/config/gentx to the genesis file.
Run Single Node
Finally, check the correctness of thegenesis.json file:
--help flag.
:::
You should see blocks come in.
The previous command allow you to run a single node. This is enough for the next section on interacting with this node,
but you may wish to run multiple nodes at the same time, and see how consensus happens between them.
You can then stop the node using Ctrl+C.
Further Configuration
Key Management
To run a node with the same key every time: replacehyperpaxd keys add $KEY in ./local_node.sh with:
--help flag
Keyring backend options
The instructions above include commands to usetest as the keyring-backend. This is an unsecured
keyring that doesn’t require entering a password and should not be used in production. Otherwise,
Paxeer Network supports using a file or OS keyring backend for key storage. To create and use a file
stored key instead of defaulting to the OS keyring, add the flag --keyring-backend file to any
relevant command and the password prompt will occur through the command line. This can also be saved
as a CLI config option with:
Enable Tracing
To enable tracing when running the node, modify the last line of thelocal_node.sh script to be the following command,
where:
$TRACERis the EVM tracer type to collect execution traces from the EVM transaction execution (eg.json|struct|access_list|markdown)$TRACESTOREis the output file which contains KVStore tracing (eg.store.txt)
Clearing data from chain
Reset Data
Alternatively, you can reset the blockchain database, remove the node’s address book files, and reset thepriv_validator.json to the genesis state.
:::danger
If you are running a validator node, always be careful when doing hyperpaxd unsafe-reset-all. You should never use
this command if you are not switching chain-id.
:::
:::danger
IMPORTANT: Make sure that every node has a unique priv_validator.json. Do not copy the priv_validator.json
from an old node to multiple new nodes. Running two nodes with the same priv_validator.json will cause you to double sign!
:::
First, remove the outdated files and reset the data.
priv_validator.json and config.toml.
If you had any sentry nodes or full nodes setup before, your node will still try to connect to them,
but may fail if they haven’t also been upgraded.
Delete Data
Data for thehyperpaxd binary should be stored at ~/.hyperpaxd,
respectively by default. To delete the existing binaries and configuration, run:
Recording Transactions Per Second (TPS)
In order to get a progressive value of the transactions per second, we use Prometheus to return the values. The Prometheus exporter runs at addresshttp://localhost:8877 so please add this
section to your Prometheus installation config.yaml file like this