RPC:連接Web3應用與鏈之間的橋梁

新手Sep 28, 2023
Metamask網絡添加時爲什麽要填寫RPC?爲什麽每個Dapp開髮都離不開RPC?爲什麽有些人能利用RPC搶先交易?RPC服務商都有哪些?本文將爲您解答更多RPC相關問題。
RPC:連接Web3應用與鏈之間的橋梁

什麽是RPC?

可能大部分人聽説RPC是在Metamask等錢包手動添加網絡RPC時,或者從未見過,但RPC是Dapp、Wallet、CEX等區塊鏈應用不可或缺的基礎技術之一。RPC實際是“遠程過程調用”(Remote Procedure Call)的首字母縮寫。 在Web2中, RPC是一颱計算機調用另一颱計算機上的程序併執行的通信技術,通過RPC遠程過程調用,調用方隻要傳遞調用服務名和參數就可以與對方通信,是一個很寬泛的概念。在區塊鏈環境中,RPC則是可讓客戶端與區塊鏈交互的協議。用戶通過RPC接口可查詢區塊鏈相關信息(如塊高、區塊、節點連接等)和髮送交易。

Metamask 網絡添加頁麵(來源:Metamask)

RPC的技術原理

首先我們需要了解RPC的三個主要角色:

1)服務提供者(RPC Server):運行在服務端,提供服務接口定義和服務實現類。在區塊鏈中,服務提供者就像區塊鏈網絡中的節點,負責提供特定的功能,例如存儲和驗證交易。

2)服務消費者(RPC Client):運行在客戶端的,通過遠程代理對象調用遠程服務。在區塊鏈中,註冊中心類似於一個節點管理繫統,它記録哪些節點提供了哪些服務,以便其他節點能夠找到併使用這些服務。

3)註冊中心(Registry):也是運行在服務端,負責把本地服務髮布成遠程的服務,它也要去管理,提供給服務消費者來使用。在區塊鏈中,服務消費者就像需要區塊鏈上信息的應用程序或用戶,它們通過RPC來請求特定的功能或數據,就像在團隊中請求任務一樣。

RPC調用圖(來源:Google)

詳細的技術架構如上圖所示,爲更清晰的曏大家闡述,我們以項目經理完成報告的過程爲例講解詳細調用過程:

想象你是一位項目經理,需要一個覆雜的報告,但你不懂技術,所以你需要協助專業的數據分析師來完成任務。在這個過程中你需要完成:

  • 委托任務:你將任務的要求和細節寫下來,然後通過一個信使傳遞給數據分析師。
    • 在計算機中:你就像服務消費者(RPC Client),想要穫取某項服務,但你自己無法執行,所以你委托給了專業人士。
  • 註冊任務:信使將任務詳細信息傳遞給一個協調員,協調員記録下任務併通知相應的分析師。
    • 在計算機中:信使就像註冊中心(Registry),它記録誰能夠提供什麽服務,然後通知服務提供者。
  • 提供服務:數據分析師接受任務併開始分析數據,這個分析過程就好比執行一個遠程函數。
    • 在計算機中:數據分析師就像服務提供者(RPC Server),能夠執行特定的任務,比如執行數據分析。
  • 執行任務: 數據分析師根據你的要求進行數據分析,完成任務。
    • 在計算機中:數據分析師執行任務,類似於遠程執行函數。
  • 登記結果: 數據分析師將分析結果交給協調員,協調員記録下結果。
    • 在計算機中:數據分析師將執行結果告知註冊中心。
  • 反饋結果: 信使帶著分析結果回到你這裡,你得到了完成的報告。
    • 在計算機中:信使將執行結果傳遞回給你,你得到了你所需的數據。

爲什麽需要RPC?

衆所周期,區塊鏈具有去中心化和分布式的屬性,數據儲存在各個節點中,想要運行節點參與網絡出塊等活動首先需要計算機符合一定的軟、硬件要求。在某些網絡,運行節點還需要質押一定量的網絡Token,比如ETH、ADA等網絡。

當然併不是每一個節點都可以使用RPC協議,一般運行區塊鏈客戶端軟件的計算機才能作爲RPC節點,安裝了適當軟件的節點將能夠響應RPC請求。在常見的開髮中,開髮人員會使用RPC客戶端-服務器模型進行開髮,其中dApp是客戶端,服務器是RPC節點。

作爲區塊鏈應用開髮者,想要穫取用戶的信息,提交用戶交易/活動到鏈上,都需要節點進行打包到鏈上。使用網絡提供的公共RPC節點會麵臨擁堵,沒有客戶支持服務,缺乏活躍的開髮人員基礎設施,併且無法擴展以滿足運行dApp的需求。而大部分項目無法負擔節點運營維護費用,因爲每一個節點背後都需要花費大量時間成本、人力成本、物質資源建立節點。所出現了專門建立RPC節點,併提供RPC服務的服務商。

RPC的用途是什麽?

從上節中可以看出,RPC的重要功能是在終端應用和區塊鏈間建立連接,所以RPC的主要用途就是在開髮過程中,採用合適的RPC服務提供商讓用戶在使用時能夠執行鏈上交易與查詢。

對於普通Web3用戶而言,最直接的一點用途就是,在網路擁堵時,切換成延遲較低的RPC入口,從而減少自己的延遲、加快交易速度。理論上,RPC可以應用於各種需要進行區塊鏈交易/信息查詢的項目。

私有RPC

絶大多數區塊鏈都會提供免費的公共的RPC供應用測試使用,但其速率受限,於是出現了私有RPC。私有RPC端點是具有唯一URL的RPC端點,隻有所有者才能使用該URL將交易髮送到公共內存池,從而爲個人提供與節點提供商的直接連接。其在實際使用中有以下好處:

  • 在獨家、先到先得的NFT鑄造期間更快髮送交易。
  • 髮送交易以利用時間敏感的套利機會。
  • 快速進行空投領取。

RPC操作示例

對於開髮過程中的RPC使用,需要開髮者根據文檔進行使用,本文主要以錢包中RPC切換爲例。以MetaMask爲例:點擊進入設置頁麵後選擇網絡,點擊想要更改RPC的網絡名稱,在最右側PRC URL處進行修改,然後點擊保存即可更換RPC。

MetaMask的RPC更改頁麵(來源:MetaMask網頁端)

在具體使用時需要註意比較延遲程度,如果更成延遲較高的RPC,交易速度可能減慢。

什麽是RPC服務商?

由於節點設置和運營的覆雜性,出現了專門運營節點爲項目提供RPC/API等服務的服務商。項目可以可以通過互聯網將請求髮送到服務商,該服務商會運行完全衕步、24/7 可用的最新節點,而不是將請求髮送到本地節點。很多服務商不僅提供RPC服務,還提供多種相關服務,比如API、SDK等。作爲開髮者和個人用戶,在篩選時除了交易速率,價格,客戶服務等因素外,也要關註其提供的工具體繫。

上節提到的私人RPC也由RPC服務商提供。大多數RPC服務商爲多鏈業務,且大都提供免費的試用版和公開版本。以下是一些市麵上常見的RPC服務商介紹:

Flashbots

Flashbots是一家專註於礦工可提取價值 (MEV) 的研髮公司,旨在減輕 MEV 對智能合約區塊鏈帶來的負麵外部性和存在風險。其RPC服務Flashbots Protect由RPC和API組成,開髮者可以利用API輕鬆將其嵌入應用程序。普通用戶則可以將其RPC添加到錢包後,讓自己的交易髮送到Flashbots,這個過程是將交易直接髮送到礦工,而非公共池,避免了MEV中的“三明治攻擊”。Flashbots目前是行業MEV研究的領導者。

註:三明治攻擊是在搶先在用戶交易確認前完成交易,從讓交易價格上漲,用戶交易完成後,再以溢價售出以此穫利。

Infura

Infura是一種IaaS(基礎設施即服務)産品,旨在爲開髮者和用戶降低訪問以太坊數據的門檻。Infura充當的是以太坊全節點的角色,通過提供API接口,無需運行本地以太坊節點,可以快速將Dapp連接到以太坊平颱,實現交互。客戶包括Metamask、Uniswap、Compound等。

Alchemy

Alchemy提供了用於構建多鏈Web3 DApps的SDK和API,以及通過社區/大學類似的倡議教育用戶使用這些工具的技能。Alchemy在鏈上支持這超過1,000億美元的交易價值,擁有超過1,000萬終端用戶,併且穫得了超過15億美元的版稅。客戶包括Opensea、GMX、AAVE等。

Ankr

Ankr提供了多種節點服務,包括公共節點和私有節點,支持30+區塊鏈。衕時,Ankr還提供了基於RPC和WebSocket協議的API接口,以及多種開髮工具和SDK,如Web3.js、Truffle等,使開髮者可以輕鬆地構建和部署區塊鏈應用。客戶包括Binance、Sushiswap、Meta Apes等。

Quicknode

QuickNode通過直接提供專用節點爲用戶提供API服務,併支持多個區域、多個測試網和歸檔節點等特性,以此爲開髮者提供更好的區塊鏈訪問性能和更強的穩定性。擁有直觀的儀錶闆、分析套件、遠程過程調用編寫器,支持20+鏈。客戶包括Nansen、Algofi、Dapprader等。

BlockPI

BlockPI是一種分布式網絡結構的RPC,一個分布式多鏈加速層,它可參與去中心化的 Web3 環境。2023年初,其成功升級了公共RPC爲大家提供更穩定、更快速的免費RPC服務。理論上,其架構從根本上解決RPC請求擁塞問題,且具有無限擴展性。

結語

隨著區塊鏈技術的不斷地成熟以及Web3越來越多的採用,RPC服務作爲基礎服務之一具有廣闊的前景。開髮者對RPC服務的需求可預見性地會越來越多。從個人角度,如果是頻繁交易者,且需要更快的交易速度,選擇一個使用人數較少的公共RPC或者購買一個私有RPC會對其空投、NFT mint等活動産生巨大助力。

作者: Wayne
譯者: Piper
文章審校: Edward、KOWEI、Elisa、Ashley He、Joyce
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。

RPC:連接Web3應用與鏈之間的橋梁

新手Sep 28, 2023
Metamask網絡添加時爲什麽要填寫RPC?爲什麽每個Dapp開髮都離不開RPC?爲什麽有些人能利用RPC搶先交易?RPC服務商都有哪些?本文將爲您解答更多RPC相關問題。
RPC:連接Web3應用與鏈之間的橋梁

什麽是RPC?

可能大部分人聽説RPC是在Metamask等錢包手動添加網絡RPC時,或者從未見過,但RPC是Dapp、Wallet、CEX等區塊鏈應用不可或缺的基礎技術之一。RPC實際是“遠程過程調用”(Remote Procedure Call)的首字母縮寫。 在Web2中, RPC是一颱計算機調用另一颱計算機上的程序併執行的通信技術,通過RPC遠程過程調用,調用方隻要傳遞調用服務名和參數就可以與對方通信,是一個很寬泛的概念。在區塊鏈環境中,RPC則是可讓客戶端與區塊鏈交互的協議。用戶通過RPC接口可查詢區塊鏈相關信息(如塊高、區塊、節點連接等)和髮送交易。

Metamask 網絡添加頁麵(來源:Metamask)

RPC的技術原理

首先我們需要了解RPC的三個主要角色:

1)服務提供者(RPC Server):運行在服務端,提供服務接口定義和服務實現類。在區塊鏈中,服務提供者就像區塊鏈網絡中的節點,負責提供特定的功能,例如存儲和驗證交易。

2)服務消費者(RPC Client):運行在客戶端的,通過遠程代理對象調用遠程服務。在區塊鏈中,註冊中心類似於一個節點管理繫統,它記録哪些節點提供了哪些服務,以便其他節點能夠找到併使用這些服務。

3)註冊中心(Registry):也是運行在服務端,負責把本地服務髮布成遠程的服務,它也要去管理,提供給服務消費者來使用。在區塊鏈中,服務消費者就像需要區塊鏈上信息的應用程序或用戶,它們通過RPC來請求特定的功能或數據,就像在團隊中請求任務一樣。

RPC調用圖(來源:Google)

詳細的技術架構如上圖所示,爲更清晰的曏大家闡述,我們以項目經理完成報告的過程爲例講解詳細調用過程:

想象你是一位項目經理,需要一個覆雜的報告,但你不懂技術,所以你需要協助專業的數據分析師來完成任務。在這個過程中你需要完成:

  • 委托任務:你將任務的要求和細節寫下來,然後通過一個信使傳遞給數據分析師。
    • 在計算機中:你就像服務消費者(RPC Client),想要穫取某項服務,但你自己無法執行,所以你委托給了專業人士。
  • 註冊任務:信使將任務詳細信息傳遞給一個協調員,協調員記録下任務併通知相應的分析師。
    • 在計算機中:信使就像註冊中心(Registry),它記録誰能夠提供什麽服務,然後通知服務提供者。
  • 提供服務:數據分析師接受任務併開始分析數據,這個分析過程就好比執行一個遠程函數。
    • 在計算機中:數據分析師就像服務提供者(RPC Server),能夠執行特定的任務,比如執行數據分析。
  • 執行任務: 數據分析師根據你的要求進行數據分析,完成任務。
    • 在計算機中:數據分析師執行任務,類似於遠程執行函數。
  • 登記結果: 數據分析師將分析結果交給協調員,協調員記録下結果。
    • 在計算機中:數據分析師將執行結果告知註冊中心。
  • 反饋結果: 信使帶著分析結果回到你這裡,你得到了完成的報告。
    • 在計算機中:信使將執行結果傳遞回給你,你得到了你所需的數據。

爲什麽需要RPC?

衆所周期,區塊鏈具有去中心化和分布式的屬性,數據儲存在各個節點中,想要運行節點參與網絡出塊等活動首先需要計算機符合一定的軟、硬件要求。在某些網絡,運行節點還需要質押一定量的網絡Token,比如ETH、ADA等網絡。

當然併不是每一個節點都可以使用RPC協議,一般運行區塊鏈客戶端軟件的計算機才能作爲RPC節點,安裝了適當軟件的節點將能夠響應RPC請求。在常見的開髮中,開髮人員會使用RPC客戶端-服務器模型進行開髮,其中dApp是客戶端,服務器是RPC節點。

作爲區塊鏈應用開髮者,想要穫取用戶的信息,提交用戶交易/活動到鏈上,都需要節點進行打包到鏈上。使用網絡提供的公共RPC節點會麵臨擁堵,沒有客戶支持服務,缺乏活躍的開髮人員基礎設施,併且無法擴展以滿足運行dApp的需求。而大部分項目無法負擔節點運營維護費用,因爲每一個節點背後都需要花費大量時間成本、人力成本、物質資源建立節點。所出現了專門建立RPC節點,併提供RPC服務的服務商。

RPC的用途是什麽?

從上節中可以看出,RPC的重要功能是在終端應用和區塊鏈間建立連接,所以RPC的主要用途就是在開髮過程中,採用合適的RPC服務提供商讓用戶在使用時能夠執行鏈上交易與查詢。

對於普通Web3用戶而言,最直接的一點用途就是,在網路擁堵時,切換成延遲較低的RPC入口,從而減少自己的延遲、加快交易速度。理論上,RPC可以應用於各種需要進行區塊鏈交易/信息查詢的項目。

私有RPC

絶大多數區塊鏈都會提供免費的公共的RPC供應用測試使用,但其速率受限,於是出現了私有RPC。私有RPC端點是具有唯一URL的RPC端點,隻有所有者才能使用該URL將交易髮送到公共內存池,從而爲個人提供與節點提供商的直接連接。其在實際使用中有以下好處:

  • 在獨家、先到先得的NFT鑄造期間更快髮送交易。
  • 髮送交易以利用時間敏感的套利機會。
  • 快速進行空投領取。

RPC操作示例

對於開髮過程中的RPC使用,需要開髮者根據文檔進行使用,本文主要以錢包中RPC切換爲例。以MetaMask爲例:點擊進入設置頁麵後選擇網絡,點擊想要更改RPC的網絡名稱,在最右側PRC URL處進行修改,然後點擊保存即可更換RPC。

MetaMask的RPC更改頁麵(來源:MetaMask網頁端)

在具體使用時需要註意比較延遲程度,如果更成延遲較高的RPC,交易速度可能減慢。

什麽是RPC服務商?

由於節點設置和運營的覆雜性,出現了專門運營節點爲項目提供RPC/API等服務的服務商。項目可以可以通過互聯網將請求髮送到服務商,該服務商會運行完全衕步、24/7 可用的最新節點,而不是將請求髮送到本地節點。很多服務商不僅提供RPC服務,還提供多種相關服務,比如API、SDK等。作爲開髮者和個人用戶,在篩選時除了交易速率,價格,客戶服務等因素外,也要關註其提供的工具體繫。

上節提到的私人RPC也由RPC服務商提供。大多數RPC服務商爲多鏈業務,且大都提供免費的試用版和公開版本。以下是一些市麵上常見的RPC服務商介紹:

Flashbots

Flashbots是一家專註於礦工可提取價值 (MEV) 的研髮公司,旨在減輕 MEV 對智能合約區塊鏈帶來的負麵外部性和存在風險。其RPC服務Flashbots Protect由RPC和API組成,開髮者可以利用API輕鬆將其嵌入應用程序。普通用戶則可以將其RPC添加到錢包後,讓自己的交易髮送到Flashbots,這個過程是將交易直接髮送到礦工,而非公共池,避免了MEV中的“三明治攻擊”。Flashbots目前是行業MEV研究的領導者。

註:三明治攻擊是在搶先在用戶交易確認前完成交易,從讓交易價格上漲,用戶交易完成後,再以溢價售出以此穫利。

Infura

Infura是一種IaaS(基礎設施即服務)産品,旨在爲開髮者和用戶降低訪問以太坊數據的門檻。Infura充當的是以太坊全節點的角色,通過提供API接口,無需運行本地以太坊節點,可以快速將Dapp連接到以太坊平颱,實現交互。客戶包括Metamask、Uniswap、Compound等。

Alchemy

Alchemy提供了用於構建多鏈Web3 DApps的SDK和API,以及通過社區/大學類似的倡議教育用戶使用這些工具的技能。Alchemy在鏈上支持這超過1,000億美元的交易價值,擁有超過1,000萬終端用戶,併且穫得了超過15億美元的版稅。客戶包括Opensea、GMX、AAVE等。

Ankr

Ankr提供了多種節點服務,包括公共節點和私有節點,支持30+區塊鏈。衕時,Ankr還提供了基於RPC和WebSocket協議的API接口,以及多種開髮工具和SDK,如Web3.js、Truffle等,使開髮者可以輕鬆地構建和部署區塊鏈應用。客戶包括Binance、Sushiswap、Meta Apes等。

Quicknode

QuickNode通過直接提供專用節點爲用戶提供API服務,併支持多個區域、多個測試網和歸檔節點等特性,以此爲開髮者提供更好的區塊鏈訪問性能和更強的穩定性。擁有直觀的儀錶闆、分析套件、遠程過程調用編寫器,支持20+鏈。客戶包括Nansen、Algofi、Dapprader等。

BlockPI

BlockPI是一種分布式網絡結構的RPC,一個分布式多鏈加速層,它可參與去中心化的 Web3 環境。2023年初,其成功升級了公共RPC爲大家提供更穩定、更快速的免費RPC服務。理論上,其架構從根本上解決RPC請求擁塞問題,且具有無限擴展性。

結語

隨著區塊鏈技術的不斷地成熟以及Web3越來越多的採用,RPC服務作爲基礎服務之一具有廣闊的前景。開髮者對RPC服務的需求可預見性地會越來越多。從個人角度,如果是頻繁交易者,且需要更快的交易速度,選擇一個使用人數較少的公共RPC或者購買一個私有RPC會對其空投、NFT mint等活動産生巨大助力。

作者: Wayne
譯者: Piper
文章審校: Edward、KOWEI、Elisa、Ashley He、Joyce
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!