mirror of https://github.com/hyperledger/besu
An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
4.4 KiB
91 lines
4.4 KiB
description: Managing Pantheon peers
|
|
<!--- END of page meta data -->
|
|
|
|
# Managing Peers
|
|
|
|
## Limiting Peers
|
|
|
|
Limiting peers reduces the bandwidth used by Pantheon. It also reduces the CPU time and disk access
|
|
used to manage and respond to peers.
|
|
|
|
Use the [`--max-peers`](../../Reference/Pantheon-CLI-Syntax.md#max-peers) command line option to reduce
|
|
the maximum number of peers. The default is 25.
|
|
|
|
## No Discovery
|
|
|
|
The [`--discovery-enabled`](../../Reference/Pantheon-CLI-Syntax.md#discovery-enabled) command line option
|
|
can be used to disable P2P peer discovery.
|
|
Set this option to `false` if you are running a test node or a network with [static nodes](#static-nodes).
|
|
|
|
## Static Nodes
|
|
|
|
Static nodes are configured nodes that remain connected rather than nodes connected through P2P discovery.
|
|
Static nodes attempt to maintain connectivity. If a connection goes down to a static node,
|
|
the node attempts to reconnect every 60 seconds.
|
|
|
|
To configure a network of static nodes:
|
|
|
|
1. List [enode URLs](../Node-Keys.md#enode-url) of the nodes in the [`static-nodes.json` file](#static-nodesjson-file).
|
|
|
|
1. Save the `static-nodes.json` file in the data directory of each node.
|
|
|
|
1. Start Pantheon with discovery disabled using [`--discovery-enabled=false`](../../Reference/Pantheon-CLI-Syntax.md#discovery-enabled).
|
|
|
|
To modify the static peers at run time, use the [`admin_addPeer`](../../Reference/Pantheon-API-Methods.md#admin_addpeer)
|
|
and [`admin_removePeer`](../../Reference/Pantheon-API-Methods.md#admin_removepeer) JSON-RPC API methods.
|
|
|
|
!!! note
|
|
Runtime modifications of static nodes are not persisted between runs. The `static-nodes.json` file
|
|
is not updated by `admin_addPeer` and `admin_removePeer` methods.
|
|
|
|
Nodes outside of the static nodes are not prevented from connecting. To prevent nodes from connecting,
|
|
use [Permissioning](../../Permissions/Permissioning-Overview.md).
|
|
|
|
!!! caution
|
|
If the added peer does not appear in the peer list (returned by [`admin_peers`](../../Reference/Pantheon-API-Methods.md#admin_peers)),
|
|
check the supplied [enode URL](../Node-Keys.md#enode-url) is correct, the node is running, the node is listening for
|
|
TCP connections on the endpoint, and has not reached the [maximum number of peers](#limiting-peers).
|
|
|
|
### static-nodes.json File
|
|
|
|
The `static-nodes.json` file must be located in the data directory (specified by [`--data-path`](../../Reference/Pantheon-CLI-Syntax.md#data-path))
|
|
and contain a JSON array of [enode URLs](../Node-Keys.md#enode-url).
|
|
|
|
!!! example
|
|
```json
|
|
[
|
|
"enode://cea71cb65a471037e01508cebcc178f176f9d5267bf29507ea1f6431eb6a5dc67d086dc8dc54358a72299dab1161febc5d7af49d1609c69b42b5e54544145d4f@127.0.0.1:30303",
|
|
"enode://ca05e940488614402705a6b6836288ea902169ecc67a89e1bd5ef94bc0d1933f20be16bc881ffb4be59f521afa8718fc26eec2b0e90f2cd0f44f99bc8103e60f@127.0.0.1:30304"
|
|
]
|
|
```
|
|
|
|
!!! note
|
|
Each node has a `static-nodes.json` file. We recommend each node in the network has the same `static-nodes.json` file.
|
|
|
|
## Monitoring Peer Connections
|
|
|
|
JSON-RPC API methods to monitor peer connections include:
|
|
|
|
* [`net_peerCount`](../../Reference/Pantheon-API-Methods.md#net_peercount)
|
|
* [`admin_peers`](../../Reference/Pantheon-API-Methods.md#admin_peers)
|
|
* [`debug_metrics`](../../Reference/Pantheon-API-Methods.md#debug_metrics)
|
|
|
|
## Node Connections
|
|
|
|
The default logging configuration does not list node connection and disconnection messages.
|
|
|
|
To enable listing of node connection and disconnection messages, specify the
|
|
[`--logging`](../../Reference/Pantheon-CLI-Syntax.md#logging) command line option `--logging=DEBUG`.
|
|
For more verbosity, specify `--logging=TRACE`.
|
|
|
|
The console logs connection and disconnection events when the log level is `DEBUG` or higher.
|
|
If `Successfully accepted connection from ...` is displayed, connections are getting through the firewalls.
|
|
|
|
!!! example "Example log output"
|
|
`2018-10-16 12:37:35.479-04:00 | nioEventLoopGroup-3-1 | INFO | NettyP2PNetwork | Successfully accepted connection from 0xa979fb575495b8d6db44f750317d0f4622bf4c2aa3365d6af7c284339968eef29b69ad0dce72a4d8db5ebb4968de0e3bec910127f134779fbcb0cb6d3331163c`
|
|
|
|
## Limiting Remote Connections
|
|
|
|
In private networks with a level of trust between peers, enabling the [remote connection limits](../../Reference/Pantheon-CLI-Syntax.md#remote-connections-limit-enabled)
|
|
is unnecessary and disabling may increase the speed at which nodes can join the network.
|
|
|
|
|