Nethermind Changes
The Merge brings changes to the JSON-RPC API. Such as the Engine API, JWT authentication, additional RPC ports, and additional block tags.
The Engine API adds new endpoints that allow the execution layer client to receive messages from the consensus layer client.
Port
8551
is the default port that Engine API communicates with the CL on.JWT Authentication is used on all ports with the
Engine
API Module enabled.JSON Web Token authentication was added to the JSON-RPC API for security reasons to ensure that nothing interferes with the communication between the Nethermind and the Consensus client. This requires you to create a
.txt
file containing a hexadecimal “secret” that will be passed to each client.Nethermind will create its own
jwtsecret
file if you do not specify a location or pass the wrong location.To create this “Secret File” use the following command.
openssl rand -hex 32 | tr -d "\n" > "/tmp/jwtsecret"
where
"/tmp/jwtsecret"
will be the file path and name when created.If you do not want to install OpenSSL, you may use a random hex generator website. All you need is a 64 character hex string saved to a
.txt
file.We strongly recommend you use OpenSSL to generate the secret locally because it is more secure
fcba4ab3138530cf233568bee2d518dd960da77355333d5ac856e1f27487dc9c
The merge also adds new configuration options such as:
JsonRpc.AdditionalRpcUrls
JsonRpc.JwtSecretFile
- New
Merge
module
Some requests on the JSON-RPC API require a block tag for additional context. Previously there were three block tags
earliest
, latest
, and pending
. The Merge adds an additional two tags finalized
and safe
.Block Tag | Description |
---|---|
earliest | The lowest numbered block the client has available |
safe | The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination |
finalized | The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination |
latest | The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions |
pending | A sample next block built by the client on top of latest and containing the set of transactions usually taken from local mempool |