Blockchain

為元遮罩通信創建自定義 RPC url?

  • March 22, 2022

我在哪裡可以找到與 EVM 兼容的 URL 的 RPC api 規範?我想創建一個自定義 RPC url,它可以與 metamask 和其他兼容的 eth 錢包一起使用。但我需要知道 metamask 和其他錢包在連接到自定義 RPC 節點(如多邊形、雪崩、fantom、智能鍊等)時會尋找什麼……

乙太坊提供 RPC JSON 標準,由所有基於 ethreum VM 的客戶端(如 eth/geth 和 partity)實現。RPC API 標準可以在下面的 git 儲存庫中找到。 執行 API

要使用它,您需要建構然後參考 openrpc.json 文件。

或者,您也可以訪問提供 HTTP 版本的**Ethereum-RPC-API 。**

Metamask 和其他錢包應用程序呼叫這些 API 來滿足他們的要求。客戶端節點公開 RPC API 請求的 URL。此 url 提供給使用 add network 的錢包應用程序

$$ in metamask $$功能。錢包應用程序連接到該埠並發出標準 RPC,這些 RPC 會被客戶端節點認可。

@NitBit 的回答涵蓋了所有乙太坊客戶端都應該支持的 JSON-RPC 方法,但我懷疑它並沒有完全解決這個問題,因為“自定義 RPC url”的初始措辭向我強調了對“RPC”究竟是什麼存在誤解網址”可以。

RPC 背景

在談論 JSON-RPC 時使用 RPC,這是一種設計要使用的 API 的方式。雖然 REST API 在 Web 應用程序中是標準的,但乙太坊和其他區塊鏈選擇 JSON-RPC,主要是因為 API 服務於不同的需求。REST 代表 Representational State Transfer,其中成批的數據(資源)可以與方法(GET/POST/DELETE)相關聯。RPC 代表“遠端過程呼叫”,它的目標是告訴系統執行一個常式,就好像它直接在機器上執行一樣。JSON 只是說明數據是使用 JSON 傳輸的。

接受乙太坊 RPC 命令的 URL(最終)指向執行乙太坊客戶端的某些機器,對於您可以使用 MetaMask 的任何其他 EVM 兼容鏈也是如此。這意味著在一天結束時,該 URL 總是指向某個區塊鏈節點。非乙太坊 EVM 兼容鏈所做的只是簡單地複制乙太坊 RPC 標準,然後在其區塊鏈客戶端中處理該 RPC 方法以完成需要完成的工作。

MetaMask 和 URL

本質上,MetaMask 從不“檢查”該 RPC URL 是否可以正確地服務於 Ethereum RPC,它只是假設它可以,否則會失敗。在底層,MetaMask 依賴於“ethers”,這是一個 JavaScript 庫,用於從合約 ABI 建構對給定 RPC 提供者的 RPC 呼叫。“ethers” 通常從 URL 初始化;一種方法是執行您自己的私有節點並將“ethers”指向該本地節點;另一種是尋找公共 URL。

在絕大多數情況下,將您的節點暴露給公共 RPC 流量是沒有意義的,因為執行它需要花錢,而且您看不到這樣做的經濟收益。此外,單個節點只能支持這麼多的流量。您看到的非乙太坊鏈的“自定義”公共 RPC 端點,或在 Infura/Alchemy 的情況下看到的“自定義”私有 RPC 端點實際上指向由執行大量節點的人託管的伺服器,並且將使用該伺服器將您的 RPC 請求路由到可以響應它的節點。

引用自:https://ethereum.stackexchange.com/questions/123632