website logo
Join the CommunityContact Us
Navigate through spaces
⌘K
Palm Network Developer Portal
The Palm Network
Submit an Article
Network Details
Validators
Network Update
Transition runbook
Testing
JSON-RPC API changes
Validators
Self-hosted nodes
Developer updates
FAQs
Support
Get Started
Get PALM Tokens
Gas Fees
Connect to Palm network
Run a Transaction Node
How To Tutorials
MetaMask Wallet Setup
Deploy NFT Contracts
Verifying NFT Contracts
Mint NFTs with Hardhat
Bridge
Use the Bridge
Integrate With the Bridge
Bridge Component Addresses
Deprecated
Use Supported Tools
Block Explorer
Moralis
Palm Safe
The Graph
Covalent API
Docs powered by
Archbee
Network Update

Self-hosted nodes

11min

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:

  • https://wiki.polygon.technology/docs/supernets/operate/supernets-requirements/

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 with at least version 1.20 from https://go.dev/dl/
  • Clone the repo here https://github.com/gateway-fm/polygon-edge
  • 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 shadowfork to your data-dir and name it genesis.json. The file can be found in the repo at the root called genesis-testnet-shadowfork.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:

  • 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
|
./polygon-edge polybft-secrets --insecure --data-dir="/path/to/your/datadir"


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
|
./polygon-edge server --data-dir=/path/to/your/datadir --chain=/path/to/your/genesis.json --libp2p "0.0.0.0:30301" --devp2p "0.0.0.0:30302" --jsonrpc="0.0.0.0:8545"


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 15 Sep 2023
Did this page help you?
PREVIOUS
Validators
NEXT
Developer updates
Docs powered by
Archbee
TABLE OF CONTENTS
Overview
System requirements
JSON-RPC API changes
Installation
Operating your node
Docs powered by
Archbee