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

新手9/28/2023, 1:58:37 AM
Metamask網絡添加時爲什麽要填寫RPC?爲什麽每個Dapp開髮都離不開RPC?爲什麽有些人能利用RPC搶先交易?RPC服務商都有哪些?本文將爲您解答更多RPC相關問題。

什麽是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等活動産生巨大助力。

Author: Wayne
Translator: Piper
Reviewer(s): Edward、KOWEI、Elisa、Ashley He、Joyce
* The information is not intended to be and does not constitute financial advice or any other recommendation of any sort offered or endorsed by Gate.io.
* This article may not be reproduced, transmitted or copied without referencing Gate.io. Contravention is an infringement of Copyright Act and may be subject to legal action.

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

新手9/28/2023, 1:58:37 AM
Metamask網絡添加時爲什麽要填寫RPC?爲什麽每個Dapp開髮都離不開RPC?爲什麽有些人能利用RPC搶先交易?RPC服務商都有哪些?本文將爲您解答更多RPC相關問題。

什麽是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等活動産生巨大助力。

Author: Wayne
Translator: Piper
Reviewer(s): Edward、KOWEI、Elisa、Ashley He、Joyce
* The information is not intended to be and does not constitute financial advice or any other recommendation of any sort offered or endorsed by Gate.io.
* This article may not be reproduced, transmitted or copied without referencing Gate.io. Contravention is an infringement of Copyright Act and may be subject to legal action.
Start Now
Sign up and get a
$100
Voucher!