可能大部分人聽説RPC是在Metamask等錢包手動添加網絡RPC時,或者從未見過,但RPC是Dapp、Wallet、CEX等區塊鏈應用不可或缺的基礎技術之一。RPC實際是“遠程過程調用”(Remote Procedure Call)的首字母縮寫。 在Web2中, RPC是一颱計算機調用另一颱計算機上的程序併執行的通信技術,通過RPC遠程過程調用,調用方隻要傳遞調用服務名和參數就可以與對方通信,是一個很寬泛的概念。在區塊鏈環境中,RPC則是可讓客戶端與區塊鏈交互的協議。用戶通過RPC接口可查詢區塊鏈相關信息(如塊高、區塊、節點連接等)和髮送交易。
Metamask 網絡添加頁麵(來源:Metamask)
首先我們需要了解RPC的三個主要角色:
1)服務提供者(RPC Server):運行在服務端,提供服務接口定義和服務實現類。在區塊鏈中,服務提供者就像區塊鏈網絡中的節點,負責提供特定的功能,例如存儲和驗證交易。
2)服務消費者(RPC Client):運行在客戶端的,通過遠程代理對象調用遠程服務。在區塊鏈中,註冊中心類似於一個節點管理繫統,它記録哪些節點提供了哪些服務,以便其他節點能夠找到併使用這些服務。
3)註冊中心(Registry):也是運行在服務端,負責把本地服務髮布成遠程的服務,它也要去管理,提供給服務消費者來使用。在區塊鏈中,服務消費者就像需要區塊鏈上信息的應用程序或用戶,它們通過RPC來請求特定的功能或數據,就像在團隊中請求任務一樣。
RPC調用圖(來源:Google)
詳細的技術架構如上圖所示,爲更清晰的曏大家闡述,我們以項目經理完成報告的過程爲例講解詳細調用過程:
想象你是一位項目經理,需要一個覆雜的報告,但你不懂技術,所以你需要協助專業的數據分析師來完成任務。在這個過程中你需要完成:
衆所周期,區塊鏈具有去中心化和分布式的屬性,數據儲存在各個節點中,想要運行節點參與網絡出塊等活動首先需要計算機符合一定的軟、硬件要求。在某些網絡,運行節點還需要質押一定量的網絡Token,比如ETH、ADA等網絡。
當然併不是每一個節點都可以使用RPC協議,一般運行區塊鏈客戶端軟件的計算機才能作爲RPC節點,安裝了適當軟件的節點將能夠響應RPC請求。在常見的開髮中,開髮人員會使用RPC客戶端-服務器模型進行開髮,其中dApp是客戶端,服務器是RPC節點。
作爲區塊鏈應用開髮者,想要穫取用戶的信息,提交用戶交易/活動到鏈上,都需要節點進行打包到鏈上。使用網絡提供的公共RPC節點會麵臨擁堵,沒有客戶支持服務,缺乏活躍的開髮人員基礎設施,併且無法擴展以滿足運行dApp的需求。而大部分項目無法負擔節點運營維護費用,因爲每一個節點背後都需要花費大量時間成本、人力成本、物質資源建立節點。所出現了專門建立RPC節點,併提供RPC服務的服務商。
從上節中可以看出,RPC的重要功能是在終端應用和區塊鏈間建立連接,所以RPC的主要用途就是在開髮過程中,採用合適的RPC服務提供商讓用戶在使用時能夠執行鏈上交易與查詢。
對於普通Web3用戶而言,最直接的一點用途就是,在網路擁堵時,切換成延遲較低的RPC入口,從而減少自己的延遲、加快交易速度。理論上,RPC可以應用於各種需要進行區塊鏈交易/信息查詢的項目。
私有RPC
絶大多數區塊鏈都會提供免費的公共的RPC供應用測試使用,但其速率受限,於是出現了私有RPC。私有RPC端點是具有唯一URL的RPC端點,隻有所有者才能使用該URL將交易髮送到公共內存池,從而爲個人提供與節點提供商的直接連接。其在實際使用中有以下好處:
對於開髮過程中的RPC使用,需要開髮者根據文檔進行使用,本文主要以錢包中RPC切換爲例。以MetaMask爲例:點擊進入設置頁麵後選擇網絡,點擊想要更改RPC的網絡名稱,在最右側PRC URL處進行修改,然後點擊保存即可更換RPC。
MetaMask的RPC更改頁麵(來源:MetaMask網頁端)
在具體使用時需要註意比較延遲程度,如果更成延遲較高的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等活動産生巨大助力。
Share
可能大部分人聽説RPC是在Metamask等錢包手動添加網絡RPC時,或者從未見過,但RPC是Dapp、Wallet、CEX等區塊鏈應用不可或缺的基礎技術之一。RPC實際是“遠程過程調用”(Remote Procedure Call)的首字母縮寫。 在Web2中, RPC是一颱計算機調用另一颱計算機上的程序併執行的通信技術,通過RPC遠程過程調用,調用方隻要傳遞調用服務名和參數就可以與對方通信,是一個很寬泛的概念。在區塊鏈環境中,RPC則是可讓客戶端與區塊鏈交互的協議。用戶通過RPC接口可查詢區塊鏈相關信息(如塊高、區塊、節點連接等)和髮送交易。
Metamask 網絡添加頁麵(來源:Metamask)
首先我們需要了解RPC的三個主要角色:
1)服務提供者(RPC Server):運行在服務端,提供服務接口定義和服務實現類。在區塊鏈中,服務提供者就像區塊鏈網絡中的節點,負責提供特定的功能,例如存儲和驗證交易。
2)服務消費者(RPC Client):運行在客戶端的,通過遠程代理對象調用遠程服務。在區塊鏈中,註冊中心類似於一個節點管理繫統,它記録哪些節點提供了哪些服務,以便其他節點能夠找到併使用這些服務。
3)註冊中心(Registry):也是運行在服務端,負責把本地服務髮布成遠程的服務,它也要去管理,提供給服務消費者來使用。在區塊鏈中,服務消費者就像需要區塊鏈上信息的應用程序或用戶,它們通過RPC來請求特定的功能或數據,就像在團隊中請求任務一樣。
RPC調用圖(來源:Google)
詳細的技術架構如上圖所示,爲更清晰的曏大家闡述,我們以項目經理完成報告的過程爲例講解詳細調用過程:
想象你是一位項目經理,需要一個覆雜的報告,但你不懂技術,所以你需要協助專業的數據分析師來完成任務。在這個過程中你需要完成:
衆所周期,區塊鏈具有去中心化和分布式的屬性,數據儲存在各個節點中,想要運行節點參與網絡出塊等活動首先需要計算機符合一定的軟、硬件要求。在某些網絡,運行節點還需要質押一定量的網絡Token,比如ETH、ADA等網絡。
當然併不是每一個節點都可以使用RPC協議,一般運行區塊鏈客戶端軟件的計算機才能作爲RPC節點,安裝了適當軟件的節點將能夠響應RPC請求。在常見的開髮中,開髮人員會使用RPC客戶端-服務器模型進行開髮,其中dApp是客戶端,服務器是RPC節點。
作爲區塊鏈應用開髮者,想要穫取用戶的信息,提交用戶交易/活動到鏈上,都需要節點進行打包到鏈上。使用網絡提供的公共RPC節點會麵臨擁堵,沒有客戶支持服務,缺乏活躍的開髮人員基礎設施,併且無法擴展以滿足運行dApp的需求。而大部分項目無法負擔節點運營維護費用,因爲每一個節點背後都需要花費大量時間成本、人力成本、物質資源建立節點。所出現了專門建立RPC節點,併提供RPC服務的服務商。
從上節中可以看出,RPC的重要功能是在終端應用和區塊鏈間建立連接,所以RPC的主要用途就是在開髮過程中,採用合適的RPC服務提供商讓用戶在使用時能夠執行鏈上交易與查詢。
對於普通Web3用戶而言,最直接的一點用途就是,在網路擁堵時,切換成延遲較低的RPC入口,從而減少自己的延遲、加快交易速度。理論上,RPC可以應用於各種需要進行區塊鏈交易/信息查詢的項目。
私有RPC
絶大多數區塊鏈都會提供免費的公共的RPC供應用測試使用,但其速率受限,於是出現了私有RPC。私有RPC端點是具有唯一URL的RPC端點,隻有所有者才能使用該URL將交易髮送到公共內存池,從而爲個人提供與節點提供商的直接連接。其在實際使用中有以下好處:
對於開髮過程中的RPC使用,需要開髮者根據文檔進行使用,本文主要以錢包中RPC切換爲例。以MetaMask爲例:點擊進入設置頁麵後選擇網絡,點擊想要更改RPC的網絡名稱,在最右側PRC URL處進行修改,然後點擊保存即可更換RPC。
MetaMask的RPC更改頁麵(來源:MetaMask網頁端)
在具體使用時需要註意比較延遲程度,如果更成延遲較高的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等活動産生巨大助力。