RPC 指遠端程式呼叫(Remote Procedure Call), 是一種軟體通訊技術。透過 RPC 一台電腦呼叫另一台電腦上的程式並執行。 RPC 是 API(應用程式介面)的一種。
舉個?:你買了一個智慧電飯煲。你可以在手機上遠端操控這個電鍋。也就是說,當你人在辦公室的時候也可以透過手機 App 讓電鍋開始自動煮飯。這個過程就是透過 RPC 來實現的。
RPC是一個請求-回應協定(request-response protocol)。呼叫者發送請求,在遠端電腦上執行一個帶有指定參數的程式。然後,執行者執行,並將結果傳回給呼叫者。
在 Web2 中,RPC 可用於遠端檔案存取、遠端軟體任務管理、遠端監控程式控制和遠端錯誤日誌等。
而對於區塊鏈而言,RPC 是一種節點與節點之間或是節點與虛擬機器之間的通訊方式。具體來說就是,每個節點都可以透過 RPC API 來向其他節點發送指令,或從其他節點處查詢區塊鏈網路中的資料(就像一個交流的入口)。
什麼是虛擬機器?什麼是以太坊虛擬機器?請參考「什麼是以太坊虛擬機器」章節。
去中心化應用(DApp)想要連接區塊鏈網路就需要先連接到節點,然後再透過節點與區塊鏈網路互動(例如讀寫資料或執行智能合約)。而 DApp 連接節點也需要用到 RPC 技術。
DApp 開發者可以透過兩種方式連接節點。第一,自己運行一個節點,透過自己的節點與區塊鏈網路互動。第二,與其他節點合作,尤其是節點服務供應商,使用他們的節點。相對於第一種方式,選擇服務商會在一定程度上降低開發者的時間和開發成本。但是,選擇服務商也相當於將部分產品的運作與第三方服務商掛鉤,會存在一定的中心化風險。
Infura 是一家區塊鏈相關的工具和基礎設施服務供應商。其是一家中心化的公司,在2019年被 Consensys 收購。
節點服務是 Infura 的主要產品之一,支援 Ethereum、Polygon、Optimism、Arbitrum、Avalanche、Near 等。
MetaMask(最大的加密貨幣錢包)也是 Infura 的用戶,透過 Infura 節點來存取區塊鏈。因此,當使用 MetaMask 時,你實際上是在使用 Infura 提供的基礎設施服務。 (值得注意的是,MetaMask 也屬於 Consensys)。
你可能也對以下內容感興趣:
- 什麼是 MetaMask?
- 什麼是以太坊?