OKB.VN
Node · Infrastructure

RPC Node là gì?

Cầu nối dApp với blockchain — Infura, Alchemy và decentralized alternatives

⏱ 10 phút đọc🎯 Beginner–Intermediate📅 2025

TÓM TẮT

RPC Node là Full Node chạy RPC server, cho phép dApp và wallet giao tiếp với blockchain qua JSON-RPC API. Hầu hết developer dùng hosted service như Infura hoặc Alchemy — tiện lợi nhưng là trusted third party với rủi ro centralization đã từng xảy ra thực tế. Self-hosted node hoặc decentralized RPC network là giải pháp sovereign hơn.

IRPC Node là gì?

RPC (Remote Procedure Call) Node là một Full Node chạy thêm RPC server — một API endpoint cho phép ứng dụng bên ngoài (dApp, wallet, script) gửi request để đọc data từ blockchain hoặc broadcast transaction.

Khi bạn dùng MetaMask kiểm tra balance ETH, swap token trên Uniswap, hoặc mint NFT — tất cả đi qua RPC Node. MetaMask mặc định dùng Infura RPC, Uniswap dùng nhiều provider kết hợp. Không có RPC Node, frontend web3 không thể kết nối blockchain.

Analogy: Full Node = database server. RPC Node = database server + REST API. Bạn cần API để ứng dụng web query database — không thể kết nối database trực tiếp từ browser vì lý do bảo mật và network.

IIJSON-RPC Protocol

Ethereum node giao tiếp qua JSON-RPC 2.0 — giao thức request/response đơn giản dùng JSON. Client gửi JSON object với methodparams, node trả về JSON response. Mọi Ethereum client (Geth, Nethermind, Besu) đều implement cùng một JSON-RPC spec chuẩn.

Các method JSON-RPC phổ biến

MethodChức năng
eth_getBalanceLấy balance ETH của address
eth_callSimulate smart contract call (read-only)
eth_sendRawTransactionBroadcast signed transaction
eth_getTransactionReceiptLấy receipt của transaction đã confirmed
eth_getLogsQuery event logs của contract
eth_blockNumberLấy block number hiện tại
eth_getCodeLấy bytecode của smart contract

Ngoài HTTP, RPC Node còn hỗ trợ WebSocket — cho phép subscribe real-time event như new block, pending transaction, contract event. WebSocket dùng cho dApp cần cập nhật live mà không cần polling.

IIITại sao cần RPC Node?

Browser và mobile app không thể chạy Full Node trực tiếp vì quá tốn tài nguyên (500GB+ storage, sync vài ngày). RPC Node giải quyết vấn đề này: developer chạy một Full Node tập trung, expose API — nhiều ứng dụng cùng dùng chung.

RPC Node trong Web3 Stack

  • Frontend dApp (React, Next.js) → gọi ethers.js / viem → kết nối RPC endpoint → query Full Node → đọc blockchain state
  • MetaMask → dùng Infura RPC để broadcast transaction và kiểm tra balance
  • Hardhat/Foundry (developer tools) → fork mainnet qua RPC để test locally

Không có RPC endpoint, toàn bộ web3 ecosystem sẽ dừng lại. Đây là lý do RPC infrastructure là layer quan trọng nhưng thường bị bỏ qua trong blockchain architecture.

IVHosted RPC Providers lớn nhất

Infura (ConsenSys)

Lớn nhất và lâu đời nhất — ra mắt 2016, là provider mặc định của MetaMask. Phục vụ hàng tỷ request/ngày. Free tier 100K request/ngày, paid plan từ $50/tháng. Hỗ trợ Ethereum, Polygon, Optimism, Arbitrum, Linea.

Alchemy

Được coi là "AWS của Web3" — ngoài RPC cơ bản, Alchemy cung cấp enhanced API như Transfers API (query lịch sử transfer của address), NFT API, Webhooks. Tin tưởng bởi OpenSea, Aave, dYdX. Free tier 300M compute units/tháng.

QuickNode

Tập trung vào tốc độ và multi-chain — hỗ trợ 60+ blockchain. Latency thấp hơn Infura/Alchemy nhờ globally distributed nodes. Phổ biến với MEV bot và high-frequency dApp cần latency thấp nhất.

Ankr, Blast API, GetBlock

Các provider nhỏ hơn với pricing cạnh tranh hơn, phù hợp cho project budget hạn chế hoặc chain ít phổ biến không được Infura/Alchemy hỗ trợ.

VVấn đề tập trung hóa RPC

Sự cố thực tế — Infura Outage 2020: Ngày 11/11/2020, Infura gặp sự cố kỹ thuật do hard fork configuration. Hầu hết dApp Ethereum ngừng hoạt động trong vài giờ — MetaMask, Uniswap, Compound, và hàng nghìn dApp khác. Đây là bằng chứng rõ ràng về rủi ro single point of failure của RPC infrastructure.

Ước tính 70%+ Ethereum request đi qua Infura và Alchemy — mức độ tập trung cao đáng lo ngại cho mạng lưới được thiết kế để phi tập trung. Các rủi ro cụ thể:

  • Censorship: Provider có thể từ chối serve request từ địa chỉ cụ thể hoặc theo yêu cầu pháp lý
  • Data privacy: Provider biết IP của bạn, địa chỉ wallet bạn query, và pattern giao dịch
  • Downtime: Infura, Alchemy đã từng có outage ảnh hưởng toàn ecosystem
  • Wrong data: Provider có thể trả về data sai mà bạn không verify được (không như Full Node)

VISelf-hosted RPC Node

Chạy Full Node của riêng bạn và expose RPC endpoint — giải pháp trustless và privacy-preserving nhất. Bạn không phụ thuộc bất kỳ provider nào, không ai biết bạn đang query gì.

Clients phổ biến để self-host

  • Geth (Go Ethereum): Client phổ biến nhất, battle-tested, cộng đồng lớn
  • Nethermind (.NET): Performance cao, tối ưu cho validator và dApp
  • Besu (Java): Enterprise-grade, phổ biến trong private blockchain
  • Reth (Rust): Client mới nhất, tốc độ sync nhanh hơn, đang được adopt nhanh

Chi phí tự chạy Ethereum Full Node với RPC: VPS ~$50–100/tháng (4 CPU, 16GB RAM, 1TB NVMe SSD). Nhiều validator tự chạy RPC cho bản thân và chia sẻ với cộng đồng.

VIIDecentralized RPC Networks

Giải pháp trung gian giữa self-hosted và trusted centralized provider: mạng lưới node operators phân tán, không có single entity kiểm soát.

  • Pocket Network (POKT): Marketplace phi tập trung cho RPC — node operator stake POKT token, serve request, nhận reward. Hàng nghìn independent node operators trên toàn cầu.
  • Lava Network: Modular RPC marketplace mới hơn, hỗ trợ nhiều chain, cơ chế incentive linh hoạt hơn POKT.
  • dRPC: Provider phi tập trung tập hợp nhiều independent RPC providers, load balance tự động.
Trade-off: Decentralized RPC thường có latency cao hơn và ít tính năng nâng cao hơn Infura/Alchemy. Nhưng resilience và censorship-resistance tốt hơn đáng kể — đặc biệt quan trọng cho production dApp critical.

VIIIChọn RPC Provider phù hợp

Use caseKhuyến nghịLý do
Học tập / prototypeInfura hoặc Alchemy free tierNhanh, dễ setup, free
Production dAppMulti-provider (Alchemy + QuickNode)Redundancy, không single point of failure
Validator nodeSelf-hosted Full NodeTrustless, không phụ thuộc bên ngoài
MEV bot / latencyQuickNode hoặc self-hosted gần beaconLatency thấp nhất
Maximum privacySelf-hosted hoặc Pocket NetworkKhông log IP, không censor
Archive queriesAlchemy hoặc self-hosted Archive NodeHistorical state cần Archive

Xem thêm về các loại node tại Full Node vs Light NodeArchive Node là gì.

Câu Hỏi Thường Gặp

RPC Node là Full Node chạy thêm RPC server, cho phép dApp và wallet giao tiếp với blockchain qua JSON-RPC API. Thay vì tự chạy node, hầu hết developer dùng hosted service như Infura hoặc Alchemy — tiện lợi nhưng là trusted third party.

Infura tiện lợi nhưng là trusted third party — có thể censor transaction, trả data sai, hoặc bị outage (đã xảy ra 2020). Production dApp nên dùng nhiều RPC provider để tăng redundancy. Với privacy tối đa, tự chạy Full Node là tốt nhất.

JSON-RPC là giao thức giao tiếp giữa client (dApp/wallet) và Ethereum node. Client gửi JSON request với method và params, node trả về JSON response. Ví dụ: eth_getBalance, eth_sendRawTransaction, eth_call. Mọi Ethereum client đều implement cùng spec chuẩn.

HTTP RPC là request/response một chiều — client hỏi, node trả lời. WebSocket là kết nối hai chiều persistent — node có thể chủ động push event (new block, pending transaction, contract event) đến client mà không cần client polling. WebSocket phù hợp cho dApp cần real-time update.

📚Tài liệu tham khảo

  1. Ethereum Foundation. JSON-RPC API. ethereum.org/en/developers/docs/apis/json-rpc/
  2. Infura. Infura Documentation. docs.infura.io
  3. Alchemy. Alchemy Docs — Enhanced APIs. docs.alchemy.com
  4. Pocket Network. Decentralized RPC protocol. pokt.network
📚 Khám phá thêm theo chủ đề
113 bài phân tích kỹ thuật — Blockchain Infrastructure từ nền tảng đến nâng cao
📋 Xem tất cả bài viết →