跳至主要內容

X Layer

透過Quicknode,您將能存取我們的全球 X Layer 網路,該網路會將您的 API 請求始終路由至最近的可用位置,確保低延遲與最快的傳輸速度。

什麼是X Layer?

X Layer 於 zkEVM 技術打造的Ethereum零知識捲積(zkRollup)第二層解決方案。它採用混合證明方法——先為執行過程生成 STARK 證明,再將其遞迴地封裝進 SNARK 中,以實現高效的鏈上驗證。此設計不僅確保交易在數學上有效,同時也繼承了Ethereum的安全性。

與樂觀型 RollupX Layer 為提領X Layer 挑戰期,因為一旦提交有效性證明,X Layer 提供加密學上的確定性。交易最終確認時間取決於證明提交間隔——通常以分鐘為單位,而非以天為單位——但仍比樂觀型 Rollup 更快。相較於mainnet,交易成本大幅降低,節省的費用來自於交易批次處理與呼叫資料壓縮。

X Layer Ethereum (EVM)的字節碼層級相容性。此 zkEVM 架構支援幾乎所有 EVM 指令碼與預編譯函式,僅在邊緣案例(例如 gas 費用)上存在些微差異。這確保了大多數現有的Ethereum 合約與應用程式皆可無需修改即可部署,在提供零知識安全保證的同時,亦維持了Ethereum執行環境、工具及開發者生態系統的廣泛相容性。

與X Layer進行互動

X Layer 標準Ethereum 介面,同時也提供額外的第二層(Layer 2)專屬功能。這確保了與Ethereum 完全相容性,因此開發者無需修改程式碼, X Layer 將X Layer 與 MetaMask、Hardhat、Foundry 以及 Web3 函式庫等工具搭配使用。

透過X Layer ,您可以:

  • 執行所有標準的Ethereum 方法(eth_call, eth_sendTransaction, eth_getBalance)
  • 存取X LayerRollup 操作方法(例如:查詢證明狀態及橋接互動)
  • 查詢橋接活動、批次提交及證明驗證狀態
  • 透過 WebSocket 連線訂閱 L2 即時事件
  • 利用現有的追蹤與檢查工具,進行更深入的區塊鏈除錯

您可以透過以下方式連線至 API:

  • 執行本地的X Layer
  • 使用如Quicknode X Layer endpoint這類託管服務供應商,該服務可提供高Mainnet X Layer Mainnet 存取、資料歸檔以及增強的效能

支援的網路

Quicknode 以下X Layer 的連線服務:

Mainnet
類型:製作
鏈 ID:
196
HTTP:
WSS:
檔案:
修剪:
Testnet
類型:Testnet
鏈 ID:
1952
HTTP:
WSS:
檔案:
修剪:
註:

XLayer 在區塊中使用「重新生成」機制 42,810,021. 此區塊之前的歷史資料雖然可用,但儲存於舊版節點上,當您針對諸如 eth_getBlockByNumber, eth_getBalance,以及 debug_trace*.

區塊 42,810,021 本身無法追蹤,且可能會返回 {"code":4444,"message":"pruned history unavailable"}.

交易節點需求

X Layer 兩種不同的節點客戶端,其分界點位於重新創世邊界(區塊42,810,021):

  • 區塊 42,810,021 以及更早之前 — 需要一個 cdk-Erigon 節點。Geth 節點會傳回 null 針對這些歷史交易。
  • 區塊之後 42,810,021 — 需要一個 蓋斯 節點。Erigon 節點會傳回 null 針對這些當前的交易。

若要查詢重生前的資料,請包含 x-qn-height 請在您的請求中加入包含目標區塊編號的標頭,以便將其路由至 cdk-Erigon 節點。若未指定此標頭,請求將預設使用 蓋斯 節點,因此對於「再生成」後的區塊而言,不需包含此標頭。

「重生前」範例(cdk-Erigon,區塊 ≤ 42,810,021):

curl --location 'https://docs-demo.xlayer-mainnet.quiknode.pro/' \
--header 'Content-Type: application/json' \
--header 'x-qn-height: 42810020' \
--data '{"method":"eth_getBlockByNumber","params":["0x28D3AA4",false],"id":1,"jsonrpc":"2.0"}'

重生後範例(蓋斯,區塊編號 > 42,810,021):

curl --location 'https://docs-demo.xlayer-mainnet.quiknode.pro/' \
--header 'Content-Type: application/json' \
--data '{"method":"eth_getBlockByNumber","params":["0x28D3AA6",false],"id":1,"jsonrpc":"2.0"}'