此儲存庫包含與 Espresso Sequencer 整合的範例匯總。這個範例 rollup 代表一個簡單的鍵/值帳戶存儲,它從 Espresso 接收有序交易,在 rollup VM 中執行它們,並將模擬狀態證明發佈到 L1(以太坊)智能合約。 Rollup 包含一個簡單的 API,用於提交交易和查詢帳戶餘額。
Espresso 建立在 HotShot 之上,HotShot 是一個在批量匯總交易上達成共識的網路。從較高層次來看,rollup 是一種 L1 擴展解決方案,可在鏈外執行昂貴的計算。對於 zkRollups,證明者定期向 L1 提交匯總狀態檢查點以及批量交易有效性證明。這裡展示的範例是一個模擬 zkRollup。要了解有關 Espresso 匯總的更多信息,請閱讀我們的文檔
確保您的系統上安裝了docker
。
對於 Linux 發行版,請遵循您的 Linux 發行版的官方說明或參閱官方 docker 說明。
我們首先需要啟動本地 Espresso Sequencer 網路。
git clone https://github.com/EspressoSystems/espresso-sequencer
cd espresso-sequencer
docker compose pull
docker compose up -d --wait
一旦完成部署範例匯總,它就可以在本機運行。
要本地運行,需要 Rust 工具鏈。我們提供了一個 nix shell 來安裝所有依賴項。 Nix 可以透過 nix-installer 安裝。安裝後,從專案的根目錄執行以下命令:
nix develop
just dev-demo
just dev-demo
後,幾分鐘後您將能夠看到new state event
日誌。
submit
端點將此交易傳送到 Rollup。如果愛麗絲擔心審查制度,她可以將她的交易直接發送到排序器。Light Client
合約,該合約驗證是否已就新狀態達成共識。匯總狀態
範例匯總的狀態包括:
執行者
執行器是一項服務,負責訂閱發佈到 L1 輕客戶端合約的新狀態,將交易應用於匯總狀態,並向匯總合約提交模擬證明。總結通常將執行者和證明者的角色分為兩個不同的服務,但為了簡單起見,這個範例將它們組合在一起。
匯總API
匯總 API 是一個 REST API,包含submit
和query
端點。
匯總合約
Rollup 合約儲存最新的 Rollup 狀態承諾。當合約從執行者收到有效的狀態轉換證明時,它會更新狀態承諾。
在此範例中,我們使用了一些 Espresso 元件,如下所述。更多資訊可以在文件中找到
輕客戶端是一個智慧合約,用於驗證匯總狀態的完整性。合約代碼可以在這裡找到
我們使用 espresso-sequencer docker 映像運行了一個 espresso 網路。網路使用hotshot來達成rollup狀態的共識。架構可以在這裡找到
Espresso Network 使用 HotShot 來達成匯總狀態的共識。