Updated on March 1, 2020


Using Bootnodes is a method for initially discovering peers. Bootnodes are regular nodes used to discover other nodes.


Bootnodes and static nodes are parallel methods for finding peers. Depending on your use case, you can use only bootnodes, only static nodes, or both bootnodes and statics nodes. For example, you run multiple nodes on MainNet (discovery using bootnodes), but want to ensure your nodes are always connected (using static nodes).

To find peers, configure one or more bootnodes as described below. To configure a specific set of peer connections, use static nodes.

MainNet and public testnets

For MainNet and the Rinkeby, Ropsten, and Görli testnets, Hyperledger Besu predefines a list of enode URLs and uses this list automatically when you specify the --network option.

Private networks

In private networks for development or testing purposes, specify at least one bootnode.

In production networks, configure two or more nodes as bootnodes.

Specify a bootnode

To start a node, specifying a bootnode enode for P2P discovery, using the --bootnodes option.


besu --genesis-file=privateNetworkGenesis.json --data-path=nodeDataPath --bootnodes=enode://c35c3ec90a8a51fd5703594c6303382f3ae6b2ecb99bab2c04b3794f2bc3fc2631dabb0c08af795787a6c004d8f532230ae6e9925cbbefb0b28b79295d615f@

The default host and port advertised to other peers for P2P peer discovery is To specify a different host or port, use the --p2p-host and --p2p-port options.

By default, peer discovery listens on all available network interfaces. If the device Besu is running on must bind to a specific network interface, specify the interface using the --p2p-interface option.