跳至內容
0%

什麼是 RPC 節點?

Alchemy team headshot

作者 Alchemy

發布於 2025年4月11日閱讀時間 3 分鐘

每當你的應用程式查詢鏈上餘額、送出交易或讀取合約事件時,它都在提出一個只有區塊鏈節點才能回答的問題。這個問題送往哪裡、由誰回答,決定了使用者感受到的應用程式速度與可靠性。負責這項工作的就是 RPC 節點:一台執行區塊鏈用戶端軟體、以區塊鏈資料回應應用程式請求的伺服器。

什麼是遠端程序呼叫(RPC)?

遠端程序呼叫(RPC)是一種協定,讓一台機器上的程式能請求另一台機器上的程式執行某項操作並傳回結果,而發出請求的程式不需要了解遠端系統內部如何運作。在區塊鏈中,你的應用程式是用戶端,回應其請求的節點是伺服器。

什麼是 RPC 節點?

RPC 節點是一台執行區塊鏈用戶端軟體的電腦,能接收 JSON-RPC 請求並回傳區塊鏈資料:餘額、區塊資料、交易收據、合約狀態,或廣播已簽署交易的結果。

在 Ethereum 上,節點會同時執行兩個用戶端:一個執行用戶端(例如 Geth)和一個共識用戶端(例如 Lighthouse)。Ethereum 節點有幾種類型:輕節點只保存區塊標頭,全節點保存目前狀態,封存節點保存所有歷史狀態。在 Solana 上,角色的劃分方式不同:Solana RPC 節點執行與驗證者相同的軟體,除了對區塊的有效性投票之外,驗證者能做的事它都會做。它們不投票,也不會獲得獎勵。它們的工作是為應用程式提供資料。

什麼是 RPC 端點?

RPC 端點是程式為了存取伺服器資料而傳送 RPC 請求的網路位置,例如 Ethereum RPC 端點。由於每個 RPC 端點都在節點上執行,大多數文件會把節點和端點混用。差別在使用供應商時才會出現:一個端點 URL 背後是一整群節點,所以你的請求不會綁定在某一台機器上。

RPC 是應用程式發問的方式,節點是回答的一方,端點則是請求的去處。

術語
意義
範例

RPC

請求另一台機器上的程式執行操作並傳回結果的協定

應用程式查詢某個錢包的餘額

RPC 節點

執行區塊鏈用戶端軟體、以鏈上資料回應 RPC 請求的伺服器

執行 Geth 和 Lighthouse 的機器,或 Solana RPC 節點

RPC 端點

應用程式傳送 RPC 請求的 URL

https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY

RPC 節點如何運作?

你的應用程式向節點的端點傳送請求,節點在它保存的鏈副本上執行該請求,然後傳回結果。這些請求以 JSON-RPC 撰寫,它是區塊鏈使用的標準 RPC 規範,由 JSON-RPC 2.0 規範定義。每個請求都是一個小型 JSON 物件,指明方法及其參數。

JSON-RPC 請求就是一般的 HTTP POST。下面這個請求向 Ethereum 端點查詢最新的區塊編號:

bash
Copied
curl https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

每個網路都會公布自己的方法清單:Ethereum 有 JSON-RPC API 文件,Solana 有 RPC API 文件。Ethereum 將核心方法分為三類:

  1. Gossip 方法追蹤區塊鏈的最新區塊,用於尋找區塊。
  2. 狀態方法傳回區塊鏈資料的目前狀態,例如餘額和合約儲存。
  3. 歷史方法擷取鏈上任一區塊的歷史紀錄。

應該使用公開 RPC 端點還是私有 RPC 端點?

測試時使用公開端點,服務真實使用者的應用程式則使用私有端點。公開端點是共用的、有速率限制,而且免費。拿來快速測試或跑教學沒有問題,但它們沒有可用性保證,也沒有技術支援,所以真實使用者的正式環境流量遲早會碰到限制。

私有端點讓你的應用程式擁有專屬存取權,可以是你自行執行的節點,也可以是供應商發給你的帶金鑰 URL。使用供應商時,你會得到專屬的速率限制、公開的可用性資料,以及出問題時能聯絡的團隊。URL 只屬於你,但它背後的節點是共用的。如果你需要只為單一客戶保留的硬體,可以使用 Dedicated Clusters。正式環境的應用程式應該在私有端點上執行。

哪些因素會影響 RPC 延遲?

應用程式感受到的延遲,大部分來自以下三個因素:

  • 區域距離。 從新加坡送往維吉尼亞節點的請求,不論那個節點多快,都得付出往返時間。
  • 共用容量與保留容量。 公開端點會讓你的請求排在其他所有人的請求後面。私有端點有自己的速率限制,專用基礎設施則完全消除共用。
  • 方法類型。 針對目前狀態的 eth_call 和跨越大範圍區塊的 eth_getLogs 是不同的工作負載,延遲也不同。

Alchemy 發布了衡量這一點的公開基準測試。每個方法都讓所有供應商收到相同的 JSON-RPC 酬載、鏈、區域、逾時設定與成功標準,請求從共用的執行區域、以標準付費帳戶送出。延遲只計算成功的回應,失敗則另外記錄。即時可用性請見 status.alchemy.com,Alchemy vs QuickNode 則逐一比較各家供應商。

如何選擇合適的 RPC 方案?

這個決定大多可以用三個問題來釐清:

  1. 你需要支援哪些鏈? 自行架設代表每條鏈都需要一套獨立的節點系統。供應商則用一個帳戶就能涵蓋所有鏈。
  2. 尖峰時段你預期有多少請求量、需要多低的延遲? 依照最忙碌的時段規劃容量,而不是平均的一天。公開端點偏偏會在流量暴增時限流。
  3. 你的業務實際需要多少技術支援和可用性保證? 如果一小時的停機會讓你損失營收或使用者,你就需要公開的可用性資料和能聯絡的人。
你的工作負載
建議方案

本機開發、測試套件、教學

公開端點即可

有真實使用者的正式環境應用程式

供應商提供的私有端點

橫跨多條鏈的應用程式

使用供應商,每條鏈一個端點

日誌量大的索引與歷史資料讀取

私有端點,並在能取代大量呼叫的地方使用 Data API

嚴格的資料落地要求或自訂用戶端設定

自行架設節點,或 Dedicated Clusters

在多條鏈上開發、或已經超出業餘專案階段的團隊,通常會選擇供應商。基礎設施需求非常特殊的團隊,有時會在使用供應商的同時自行執行節點。如果你正在比較兩者,如何選擇區塊鏈節點供應商提供完整的檢查清單,下方的指南則試算了自行建置的成本。

Build vs. Buy: Blockchain Infrastructure ebook cover
免費指南

自建 vs. 採購:Blockchain Infrastructure

在你聘請 infra 團隊之前,先讀這篇:自建 in-house 基礎設施在服務第一筆正式請求之前,一年可能就要花費 $850K–$1.4M。查看完整成本細項。

下載指南

開始使用 Alchemy Node RPC

Alchemy Node RPC 支援 70 多條鏈,包括 Ethereum、Solana、Base 和 Robinhood Chain。鏈目錄列出每個網路的 RPC URL、鏈 ID 和支援的產品。

  1. 建立 Alchemy 帳戶。
  2. 建立應用程式,並選擇你的鏈和網路。儀表板會一步步帶你完成。
  3. 複製你的端點 URL,送出第一個請求。設定好 API 金鑰後,上面的 eth_blockNumber 呼叫就能直接使用。

需要為團隊保留的硬體,或超出標準方案的限額嗎?和我們的團隊聊聊 Dedicated Clusters。

常見問題

什麼是 RPC 節點?

RPC 節點是一台執行區塊鏈用戶端軟體的電腦,透過 JSON-RPC 回應應用程式對區塊鏈資料的請求。它會傳回餘額、區塊、交易收據和合約狀態,並把已簽署的交易廣播到網路。

什麼是 RPC 端點?

RPC 端點是程式為了存取伺服器資料而傳送 RPC 請求的網路位置。實際上它就是一個 URL,例如 https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY,由一個或多個 RPC 節點提供服務。

RPC 節點和 RPC 端點有什麼差別?

節點是執行區塊鏈用戶端軟體的伺服器。端點是應用程式傳送請求的 URL。如果你自行執行節點,端點就指向那一台機器。使用供應商時,一個端點 URL 背後是一群節點。

RPC 節點如何運作?

你的應用程式向節點的端點傳送一個指明方法(例如 eth_getBalance)的 JSON-RPC 請求。節點在它保存的鏈副本上執行該方法,並以 JSON 格式傳回結果。

什麼是 JSON-RPC 協定?

JSON-RPC 是區塊鏈使用的標準 RPC 規範:每個請求都是一個包含方法名稱、參數和 ID 的小型 JSON 物件。Ethereum 將核心方法分為 gossip 方法(尋找新區塊)、狀態方法(目前的餘額與儲存)和歷史方法(過去的區塊與交易)。

RPC 節點和全節點有什麼差別?

全節點儲存並驗證區塊鏈的歷史。RPC 節點是任何設定為接受並回應 RPC 請求的節點,不論它是不是全節點。大多數 RPC 節點都是全節點,但這兩個詞描述的是不同的事:一個關於節點保存哪些資料,另一個關於節點是否回應請求。

RPC 節點和驗證者是一樣的嗎?

不是。驗證者參與共識,對區塊投票並因此獲得獎勵,RPC 節點則為應用程式提供資料。在 Solana 上,RPC 節點執行與驗證者相同的軟體,除了對區塊的有效性投票之外,驗證者能做的事它都會做,因此它不會獲得獎勵。

RPC 端點有哪些類型?

主要有兩種。公開端點是共用的、免費的、有速率限制,私有端點則讓你的應用程式擁有專屬存取權。許多正式環境的團隊也會設定一個備用 RPC 端點,以防主要端點發生故障。

為什麼我需要私有端點,而不是公開端點?

私有端點提供專屬的速率限制、公開的可用性資料和技術支援,公開端點則完全沒有這些。少了私有端點,有真實使用者的應用程式會剛好在流量暴增的那一刻被限流。

免費的公開端點能用在正式環境嗎?

不能。它們適合本機開發、教學和測試套件,但它們是共用的、有速率限制,也沒有可用性保證或技術支援。任何服務真實使用者的應用程式都應該在私有端點上執行。

一個 RPC 端點能服務多條鏈嗎?

不能,一個 RPC 端點只對應一個網路。多鏈應用程式需要為每條鏈連接獨立的端點,不過供應商可以給你一個儀表板來統一管理。

RPC 延遲會如何影響我的應用程式?

介面中的每一次鏈上讀取都要等待 RPC 回應,所以節點延遲會直接變成使用者看到的頁面載入與確認延遲。影響最大的因素是請求傳輸的距離、容量是共用還是保留,以及你呼叫的是哪個方法。

什麼時候該用原始 JSON-RPC,什麼時候該用 Data API?

需要特定的節點方法時使用原始 JSON-RPC,例如用 eth_call 讀取目前的合約狀態,或廣播已簽署的交易。原本必須串接大量 JSON-RPC 呼叫時則使用 Data API,例如彙整一個錢包的所有代幣餘額或交易紀錄,一個請求就能取代幾十個呼叫。

自行執行 RPC 節點和使用節點供應商有什麼差別?

自行執行節點能完全掌控,但硬體、耗時數天到數週的同步、用戶端升級和值班待命都得由你負責。像 Alchemy 這樣的供應商會處理這一切,讓你在幾分鐘內就能向多條鏈傳送請求。

哪些區塊鏈支援 RPC 節點?

所有主流區塊鏈都提供 RPC 介面,包括 Ethereum、Solana、Base、Arbitrum、Optimism 和 Monad。Alchemy Node RPC 用一個帳戶支援 70 多條鏈,其中包括 Robinhood Chain。

RPC 端點為什麼對開發者很重要?

RPC 端點是應用程式不必執行自有基礎設施,就能讀寫鏈上資料的途徑。你的應用程式發出的每一次餘額查詢、合約讀取和交易,都會經過 RPC 端點。

如何開始使用 RPC 節點?

建立 Alchemy 帳戶,為你的鏈和網路建立應用程式,然後從儀表板複製端點 URL。設定好 API 金鑰後,你就能送出第一個請求。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。