點(diǎn):Cumulus容器化部署與鏡像構(gòu)建完整指南)
Docker部署Parachain節(jié)點(diǎn)Cumulus容器化部署與鏡像構(gòu)建完整指南【免費(fèi)下載鏈接】cumulusWrite Parachains on Substrate項(xiàng)目地址: https://gitcode.com/gh_mirrors/cum/cumulusCumulus 是 Parity 開(kāi)源的 Substrate Parachain 開(kāi)發(fā)框架而 Docker 容器化部署 Parachain 節(jié)點(diǎn) 是快速搭建測(cè)試鏈、驗(yàn)證 Collator出塊節(jié)點(diǎn)行為的最快方式。本指南帶你用容器完成 Cumulus 鏡像構(gòu)建與節(jié)點(diǎn)部署全程無(wú)需在本地安裝 Rust 工具鏈幾分鐘即可跑通一個(gè)完整的 Parachain 測(cè)試網(wǎng)絡(luò)。為什么選擇容器化部署 CumulusParachain 節(jié)點(diǎn)的構(gòu)建依賴龐大的 Rust 工具鏈本地編譯往往耗時(shí)數(shù)十分鐘甚至數(shù)小時(shí)。使用 Docker或 Podman部署 Cumulus 節(jié)點(diǎn)有三大好處環(huán)境隔離構(gòu)建和運(yùn)行互不污染本機(jī)零依賴可復(fù)現(xiàn)鏡像化交付團(tuán)隊(duì)協(xié)作與 CI 流水線開(kāi)箱即用最小足跡不占本機(jī)磁盤(pán)和內(nèi)存資源docker-compose一條命令拉起整條測(cè)試鏈官方文檔對(duì)容器用法的說(shuō)明位于docs/container.md其中明確指出Podman 與 Docker 命令可互換可通過(guò)alias dockerpodman直接兼容。四種容器鏡像構(gòu)建方式按需選擇Cumulus 提供了從開(kāi)箱即用到完全自編譯的 4 種鏡像方案難度遞增方式適用場(chǎng)景難度關(guān)鍵文件官方鏡像直接拉取現(xiàn)成鏡像運(yùn)行節(jié)點(diǎn)?parity/polkadot-parachain鏡像Parity CI 鏡像用容器代替本地編譯出 Linux 二進(jìn)制??docker/scripts/build_polkadot.sh二進(jìn)制注入鏡像已有編譯好的二進(jìn)制快速打包??docker/injected.Dockerfile容器內(nèi)全量構(gòu)建零本地環(huán)境一行命令出鏡像???docker/polkadot-parachain_builder.Containerfile方式一拉取 Parity 官方鏡像官方維護(hù)的容器鏡像可直接用于運(yùn)行節(jié)點(diǎn)是最快驗(yàn)證 Cumulus 的方式。方式二用 CI 鏡像編譯 Linux 二進(jìn)制借助 Parity 內(nèi)部通用的 CI 基礎(chǔ)鏡像不需要安裝 Rust 即可編譯出 Linux 二進(jìn)制編譯產(chǎn)物位于target/目錄為后續(xù)注入鏡像做準(zhǔn)備。方式三二進(jìn)制注入Injected Image這是最快得到一個(gè)可用鏡像的辦法把編譯好的polkadot-parachain二進(jìn)制注入到 Parity 基礎(chǔ)鏡像parity/base-bin中。注入邏輯由docker/injected.Dockerfile完成它會(huì)自動(dòng)拷貝parachains/chain-specs/下的所有鏈規(guī)格到鏡像的/specs目錄并暴露 30333、9933、9944、9615 四個(gè)端口。方式四Containerfile 容器內(nèi)全量構(gòu)建完全不想碰編譯環(huán)境直接執(zhí)行容器內(nèi)構(gòu)建由docker/polkadot-parachain_builder.Containerfile負(fù)責(zé)在 CI 基礎(chǔ)鏡像里完成整個(gè) Cargo Release 編譯。耗時(shí)較長(zhǎng)但對(duì)新手最友好——無(wú)需本地 Rust 工具鏈構(gòu)建完成后即可用--collator --tmp參數(shù)快速啟動(dòng)測(cè)試節(jié)點(diǎn)。一鍵部署Docker Compose 拉起完整測(cè)試網(wǎng)絡(luò)Cumulus 內(nèi)置了一套開(kāi)箱即用的測(cè)試編排文件docker/docker-compose.yml一次docker-compose up就能同時(shí)啟動(dòng)6 個(gè)容器服務(wù)作用鏡像/構(gòu)建來(lái)源node_alice/node_bob兩個(gè) Relay Chain 全節(jié)點(diǎn)固定 IP 172.28.1.1 / 172.28.1.2polkadot:${BRANCH}鏡像genesis_state導(dǎo)出 Parachain 創(chuàng)世狀態(tài)到共享卷docker/test-parachain-collator.dockerfilecollator測(cè)試 Parachain 的出塊節(jié)點(diǎn)Collator同上collator構(gòu)建階段runtime輸出編譯好的 Parachain Runtime WASM 到共享卷同上runtime構(gòu)建階段registrar等待就緒后自動(dòng)調(diào)用registrar.registerPara注冊(cè) Parachain 100docker/parachain-registrar.dockerfile整套流程自動(dòng)完成編譯 Runtime → 導(dǎo)出創(chuàng)世狀態(tài) → 等待 Relay Chain 節(jié)點(diǎn)就緒 → 發(fā)送注冊(cè)交易 → 啟動(dòng) Collator。其中注冊(cè)腳本docker/scripts/register_para.sh會(huì)等待 Runtime WASM 與創(chuàng)世狀態(tài)文件寫(xiě)入共享卷再通過(guò)polkadot-js-api以//Alice賬戶發(fā)起注冊(cè)交易Collator 啟動(dòng)腳本docker/scripts/inject_bootnodes.sh則會(huì)自動(dòng)從 Alice/Bob 節(jié)點(diǎn)的 RPC 接口獲取 Peer ID 并注入 bootnodes徹底省去手工配置。最快啟動(dòng)方式在倉(cāng)庫(kù)根目錄執(zhí)行以下兩個(gè)腳本即可完成構(gòu)建 后臺(tái)啟動(dòng)啟動(dòng)測(cè)試鏈與 Collatordocker/scripts/run_collator.sh內(nèi)部執(zhí)行docker builddocker-compose up -d停止 Collatordocker/scripts/stop_collator.sh如果你只想手動(dòng)構(gòu)建某個(gè)鏡像可執(zhí)行docker/scripts/build_docker.sh并指定目標(biāo) dockerfile腳本會(huì)自動(dòng)以文件名作為鏡像名打標(biāo)簽。端口速查表宿主機(jī)映射的常用端口如下便于用 Polkadot.js Apps 等工具接入節(jié)點(diǎn)P2PRPC (9933 系)WS (9944 系)Alice3033399339944Bob3034499359945健康檢查如何確認(rèn) Parachain 節(jié)點(diǎn)部署成功docker/test-parachain-collator.dockerfile中為 Collator 配置了 HEALTHCHECK執(zhí)行docker/scripts/healthcheck.sh該腳本兩次查詢 Parachain 100 的parachains.heads間隔 60 秒只要 Head 發(fā)生變化即說(shuō)明Collator 已在持續(xù)為 Parachain 生產(chǎn)區(qū)塊部署成功。檢查間隔設(shè)為 300 秒避免頻繁 RPC 請(qǐng)求。常見(jiàn)問(wèn)題與排錯(cuò)清單?首次構(gòu)建很慢Containerfile 全量構(gòu)建需編譯整個(gè) Cargo 工作區(qū)請(qǐng)耐心等待構(gòu)建階段結(jié)果會(huì)被緩存二次啟動(dòng)可復(fù)用。Podman 用戶全部命令中把docker換成podman或建立 alias 即可。WS 連不上確認(rèn) Collator 已注入正確的 bootnodes查看容器日志中--bootnodes參數(shù)并確認(rèn) Relay Chain 節(jié)點(diǎn) RPC 已就緒。本地二進(jìn)制開(kāi)發(fā)若你已用 CI 鏡像編譯出polkadot-parachain可用注入鏡像方式三省去容器內(nèi)編譯環(huán)節(jié)。延伸閱讀容器使用完整說(shuō)明docs/container.md測(cè)試網(wǎng)絡(luò)編排與卷定義docker/docker-compose.yml多階段構(gòu)建builder / collator / runtime 三個(gè)目標(biāo)docker/test-parachain-collator.dockerfile集成測(cè)試網(wǎng)絡(luò)拓?fù)鋤ombienet/examples/small_network.toml掌握了以上 4 種鏡像構(gòu)建方式和 Compose 一鍵部署流程你就已經(jīng)具備用 Docker 容器化運(yùn)行 Cumulus Parachain 節(jié)點(diǎn)的全部能力——從本地開(kāi)發(fā)測(cè)試到 CI 流水線交付一條命令即可完成。【免費(fèi)下載鏈接】cumulusWrite Parachains on Substrate項(xiàng)目地址: https://gitcode.com/gh_mirrors/cum/cumulus創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考