Deploying a Polygon Node
We deploy production Polygon nodes for dApps that require a reliable private RPC. When your application hits the rate limit of public providers (25 req/s on free tiers), running your own node becomes a necessity, not an option. Our team has 5+ years of blockchain infrastructure experience and has deployed over 30 Polygon nodes — from DeFi pools to NFT marketplaces. Error 429 is costly: every second of downtime means lost transactions and users.
Why a Private Node Instead of Public RPC?
Public RPC providers always come with limitations: rate limits and risk of downtime. If your application handles thousands of transactions per hour, relying on public RPC becomes a bottleneck. Moreover, you are vulnerable to censorship — the provider might block certain transactions. A private node gives you complete control over your infrastructure. At high loads, you can save hundreds of dollars per month compared to paid public RPC plans.
Architecture of a Polygon PoS Node
A Polygon PoS node consists of two components that must run in sync:
Heimdall — the consensus layer based on Tendermint. It creates checkpoints on Ethereum, manages validators, and handles the bridge. It runs on ports 26656 (P2P) and 1317 (REST API).
Bor — the execution layer, a fork of go-ethereum. It executes transactions and smart contracts. It is compatible with the Ethereum JSON-RPC API via ports 8545 (HTTP) and 8546 (WebSocket).
A common mistake during initial deployment is starting Bor before Heimdall is fully synchronized. This leads to a state mismatch, and the node cannot join the network. Check Heimdall sync status with curl localhost:26657/status — if catching_up is false, Heimdall is synced.
Minimum Server Requirements
| Node Type | CPU | RAM | Disk | Network |
|---|---|---|---|---|
| Full node (archive) | 16+ vCPU | 64+ GB | 8+ TB NVMe | 1 Gbps |
| Full node (pruned) | 8 vCPU | 32 GB | 500 GB NVMe | 500 Mbps |
| Sentry node | 4 vCPU | 16 GB | 200 GB NVMe | 250 Mbps |
An archive node stores the full history of all states, necessary for analytics and historical data queries. A pruned node is sufficient for most dApps. Keep in mind that storage grows, so allocate disk with headroom.
Snapshot download method comparison:
| Method | Speed | Recommendation |
|---|---|---|
| wget | ~50 MB/s | Basic, may drop connections |
| aria2c (6 threads) | ~200 MB/s | Stable multi-threaded download |
| rsync | ~150 MB/s | Requires an active mirror |
Using aria2c with 6 threads speeds up snapshot download by 3–4× compared to wget.
How to Quickly Sync Your Node Using Snapshots
Syncing from genesis takes weeks. Snapshots reduce this to 1–3 days — a 10–20× improvement. The Polygon Foundation publishes snapshots on S3. Use multi-threaded download:
# Heimdall snapshot aria2c -x6 -s6 "https://snapshot-download.polygon.technology/snapshots/heimdall/mainnet/latest.tar.gz" # Bor snapshot (several TB for archive) aria2c -x6 -s6 "https://snapshot-download.polygon.technology/snapshots/bor/mainnet/..." After download, extract the snapshot into the Heimdall and Bor data directories. Ensure that the snapshot version matches your network (mainnet/testnet).
Bor Configuration for Production
# config.toml [jsonrpc] enabled = true host = "0.0.0.0" # in production — only localhost, behind nginx port = 8545 [jsonrpc.ws] enabled = true port = 8546 [p2p] maxpeers = 50 [cache] cache = 4096 # MB, increase if you have lots of RAM Never expose RPC directly. Put nginx in front with rate limiting and IP whitelist. Otherwise, the node will quickly exhaust resources due to external requests.
How to Monitor Lag?
// Check status via JSON-RPC const latestBlock = await provider.getBlockNumber() // your node const publicBlock = await publicProvider.getBlockNumber() // Alchemy const lag = publicBlock - latestBlock if (lag > 10) alert('Node is lagging!') Heimdall status: curl localhost:26657/status — catching_up: false means full synchronization. For deep monitoring, we use Grafana with dashboards based on Bor metrics (exported via Prometheus). This helps spot deviations early and prevent downtime.
More about the architecture can be found in the official Polygon documentation.
What Our Service Includes
- Architectural design: selecting the server and node type for your tasks.
- Installation and configuration of Heimdall + Bor with the latest versions.
- Download and application of snapshots for fast synchronization.
- Setup of systemd services for automatic start on reboot.
- RPC protection: nginx, rate limiting, IP whitelist.
- Monitoring: Grafana + Prometheus with Bor and Heimdall metrics.
- Documentation: we provide ready-to-use instructions and API endpoints for integration.
Additional Info on Sentry Nodes
For maximum security, a separate sentry node is often deployed to hide the validator's IP. The sentry node does not sign blocks; it only relays traffic. This is standard for serious DeFi projects.Contact us for a preliminary assessment of your project. Order a node deployment and get a ready-made infrastructure in 1–3 days. Savings on public RPC can amount to hundreds of dollars per month.







