Network Update

Self-hosted nodes

8min

Overview

This page outlines the changes affecting existing and new node operators running their own JSON-RPC API services:

  • RPC API node software changes from Hyperledger Besu to Polygon Edge
  • JSON-RPC API call differences

System requirements

The system requirements for your node may vary from what was required for Hyperledger Besu. Please refer to the following which outlines the minimum and recommended specs for running the Polygon Edge node client:

Component

Minimum Requirement

Recommended

Processor

4-core CPU

8-core CPU

Memory

8 GB RAM

16 GB RAM

Storage

200 GB SSD [1]

1 TB SSD

Network

High-speed internet connection

Dedicated server with gigabit connection

[1] As of August 2023, Palm Mainnet currently requires 150 GB of storage, so the minimum storage requirement may need to be adjusted accordingly

JSON-RPC API changes

A full list of changes can be found here

Installation

  • Install Go at version 1.20 from https://go.dev/dl/ (1.21 is not currently compatible)
  • Check out the branch palm-migration
  • At the root of the repo run make build
  • You now have a binary called polygon-edge at the root of the repo
  • Copy this file where you plan to run the node
  • Create a new empty directory that will serve as the data-dir for the node
  • Copy the genesis file for the relevant network to your data-dir and name it genesis.json.
  • Genesis files can be found in the repo in the root folder called genesis-XXXX.json

Alternatively there are binary downloads available at https://github.com/gateway-fm/polygon-edge/releases

Docker images are also built alongside the binary releases and are available at gatewayfm/polygon-edge. Each version will have 3 tags assigned for the different environments, these are:

  • testnet-[version]
  • mainnet-[version]
  • testnet-shadowfork-[version]

Please ensure you use the correct tag for your environment as the genesis file is contained inside the image for each environment.

To prepare your environment for running the node you will need to ensure the following ports are configured. If you run other node software within the same subnet (e.g. to support other chains) you may need to update the default ports below so that your node has exclusive use of them.

  • 8545 - JSON RPC - can be left closed if you don't intend on exposing the RPC
  • 9632 - GRPC (for intercommunication between the validators) - this will need to be open for validators although an IP whitelist configured at the firewall level is recommended
  • 30302 - devp2p port - needs to be open to join the old Besu network
  • 30301 - libp2p port - needs to be open to allow discovery on the libp2p network
  • 30401 - egress needed to communicate with the Besu node (better yet, have all egress available as this port could change)

Operating your node

Once you have followed the steps above in the installation section you can run the following to create keys for your node.

Shell


Now run the following to start the node. This will start up the server, join the devp2p network / libp2p network depending on being pre/post the fork point, and start syncing.

Shell


Monitoring the latest block and checking the timestamp to determine how far behind your node is can be useful to see if block production has halted for any reason and prompt an investigation into the node. There is also a healthcheck endpoint to ensure that the node is alive available at http://your-address:8545/health a GET request to this endpoint will return a status 200 response with a body of OK if the node is healthy.

Upgrading the version of Polygon Edge is a simple procedure. Build the new binary and replace the existing version with this new binary and restart the node with the same flags as before.

Updated 25 Mar 2024
Doc contributor
Doc contributor
Did this page help you?