跳至內容
0%

如何設定替代 RPC

Alchemy team headshot

作者 Alchemy

發布於 2022年8月10日閱讀時間 1 分鐘

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

遠端程序呼叫(RPC)是一種讓軟體能夠與同一網路上的其他系統遠端通訊,以存取軟體或資料的技術。在 RPC 的運作方式中,客戶端會請求某項資源(例如資料),伺服器則在遠端完成該請求。

在區塊鏈中,這項技術以 RPC 節點的形式被採用,這是一種 API,讓區塊鏈開發者能夠與區塊鏈伺服器(即節點)互動。因此,區塊鏈開發者才能打造像是應用程式這類需要透過 RPC 節點連接區塊鏈的 web3 軟體。

在這篇文章中,我們會說明使用區塊鏈節點供應商以及設定備援 RPC 端點的重要性,並列出需要備援或替代 RPC 端點的各種原因。

此外,我們也會說明幾種設定備援 RPC 端點的方式,方便你將備援 RPC 端點整合進現有的區塊鏈專案中。

什麼是備援 RPC 端點?

備援遠端程序呼叫(RPC)端點是在主要 RPC 端點故障或無法運作時使用的備用端點。RPC 端點故障的風險,可能意味著數千甚至數百萬筆交易失敗。

因此,開發者開始尋找主要 RPC 端點故障時的應變方案。其中一個解法是設定備援 RPC 端點,在主要 RPC 端點無法正常運作時作為故障保護機制。

備援 RPC 端點與私有 RPC 端點類似,後者是為應用程式或錢包專用的端點,但兩者在實作方式上不同。備援 RPC 端點指的是備用方案,而私有 RPC 端點單純代表非公開的端點。

什麼時候適合使用備援 RPC 端點?

備援 RPC 端點對區塊鏈開發者來說有多種潛在用途,從公開 RPC 端點不穩定,到修正常見的交易問題,例如資料不準確等。在這個段落,我們會討論幾種備援 RPC 端點可能派上用場的常見情況。

1. 主要 RPC 供應商故障

設定備援 RPC 端點的主要用途之一,就是在主要 RPC 完全故障、導致具區塊鏈功能的軟體與區塊鏈連線中斷時,作為備用選項。如果沒有立即可用的替代 RPC,這可能導致以區塊鏈驅動的軟體暫時無法運作。

舉例來說,2022 年 7 月,由 Ankr 代管的 Polygon 公開 RPC 端點發生全網故障,資訊安全長(CISO)Mudit Gupta 建議改用像 Alchemy 這樣未受影響的替代 Polygon RPC 供應商。

2022 年 7 月,公用 RPC 供應商 Ankr 遭駭時,Polygon 建議改用 Alchemy。
2022 年 7 月,公用 RPC 供應商 Ankr 遭駭時,Polygon 建議改用 Alchemy。

2. 交易無法透過主要 RPC 供應商送出

備援 RPC 端點另一個重要用途,是在主要 RPC 端點壅塞或速度過慢、導致交易延遲時作為備用選項。對於高度仰賴即時與區塊鏈通訊的應用程式來說,這種情況可能特別致命。

在選擇備援供應商之前,可以先比較 Alchemy 的 RPC 供應商效能評測中目前的延遲與成功率數據。

當交易失敗時,使用備援 RPC 端點是不錯的應變方式,可確保 web3 使用者體驗不會因為不穩定的節點而受到影響。

3. 主要 RPC 供應商的資料不準確

由於區塊鏈是全球分散式系統,部分節點供應商回傳的區塊鏈資料並不準確,原因是其節點網路與公開區塊鏈的資料不同步。

當節點供應商的伺服器叢集不同步時,會導致使用者收到不準確的資料,例如錯誤的餘額、遺失的 NFT,整體使用者體驗因此變差。

在這種情況下,若在區塊鏈應用程式中整合備援 RPC 端點,就能輕鬆地從主要節點供應商切換到次要的備援節點供應商,避免回傳不準確的資料。

4. 主要 RPC 供應商無法擴充

最後,當主要 RPC 端點在高流量時期(例如代幣空投、高關注度的 NFT 發行,或有獎勵機制的鏈上活動)出現擴充性問題時,備援 RPC 端點也能派上用場。

如此一來,備援 RPC 端點就能分擔高流量,避免主要 RPC 端點因擴充性壓力而崩潰。

處理故障端點的 3 種方式

當你遇到故障的 RPC 端點時,主要有三種處理方式:在同一個端點重試交易、在多個 RPC 端點清單間輪流嘗試交易,或是更換你的主要 RPC 供應商。

1. 在同一個 RPC 端點重試交易

處理故障 RPC 端點的其中一種方式,是向同一個 RPC 端點發送額外的請求。在這種做法中,開發者會以較短的間隔時間,反覆向同一個 RPC 端點發送請求。這種技巧最適合用在 RPC 端點只是暫時短暫故障的情況,讓開發者能持續發送請求,直到該 RPC 端點恢復上線。

2. 在多個 RPC 端點清單間輪替

另一種做法是連接一個或多個備援 RPC 端點,並在不同 RPC 端點清單間依序發送一系列 RPC 請求。透過這種技巧,開發者可以準備多個選項來重試交易,而不是在同一個故障端點上反覆重試同一筆交易,藉此避免單一故障的 RPC 端點拖垮整個區塊鏈應用程式。

當 RPC 端點發生故障時,使用備援 RPC 供應商清單的開發者只需連接清單中另一個已核可的端點即可。

如何在 Ethereum 上設定備援 RPC 供應商

由於建立一份備援 RPC 端點清單可能相當繁瑣,視你的應用程式架構而定,較簡單的做法是將主要 RPC 端點換成更可靠的備援供應商,例如 Alchemy。

採用這種做法時,你不需要在多個端點間輪流嘗試,也不必在同一個端點上重試交易,而是可以直接把 RPC 端點網址完全替換成一個可靠的備援選項。

Background gradient

打造區塊鏈魔法

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