Hosting a node on Provenance Blockchain mainnet, testnet, or for local development.
Nodes on the Provenance Blockchain network are simply servers started by the
provenanced
executable with a specific configuration. There are several types of configurations such as seeding, data archival, or validation that may be used to assist in application development. These configuration types may be helpful in deciding what type of node is best suited for the different use cases.Node Configurations
provenanced
is an all-encompassing command that may operate as any type of node, depending on how it has been configured. When determining how a particular node should be configured, it is necessary to take a deeper look at Provenance Blockchain and how it is structured.Seed Node
A seed node is configured to provide an IP/port address book for other nodes to initially find and connect to peers. This node acts as a service directory for connections to sentry nodes on the network.
Sentry Node
A sentry node is configured to provide data and connectivity to the mesh network. Sentries may be configured to provide RPC-based p2p communication to other network participants, archive blockchain data, query access to blockchain data, and provide a secured gateway that can communicate with and protect a validator node. This is the most used node type and will be the first node with which most network participants will interact.
Validator Node
A validator node is configured to participate in the consensus algorithm and is responsible for signing and proposing blocks to commit to the blockchain. It also holds Hash as stake, and receives Hash for its services.
More Information
Tendermint is an excellent resource for information regarding node configuration and details. For a detailed overview of the different types of nodes supported, see Tendermint Node Types.
Running a mainnet node
The steps for running mainnet are for the most part, the same as Joining Testnet except that the github repo is here https://github.com/provenance-io/mainnet and the chain id is
pio-mainnet-1
javascriptStep 1:download the latest quickysync via https://provenance.io/quicksync and latest provenanced version. At the time of writing this document latest version on mainnet was v1.16.0. Download release from https://github.com/provenance-io/provenance/releases/ For e.g for version v1.16.0 url is https://github.com/provenance-io/provenance/releases/tag/v1.16.0 Step 2:Untar data directory from the quicksync download and replacing the untarred data directory to $PIO_HOME/data Step 3: Run the below commands export PIO_HOME=~/.provenanced // or directory of your choosing. provenanced init choose-a-moniker --chain-id pio-mainnet-1 curl https://raw.githubusercontent.com/provenance-io/mainnet/main/pio-mainnet-1/genesis.json> genesis.json mv genesis.json $PIO_HOME/config Step 4: provenanced start --p2p.seeds 40f9493fa7ab4259159240e9a8ba12f90743079b@seed.provenance.io:26656 --x-crisis-skip-assert-invariants