用途:在本地搭建端到端演练环境,在接触主网前完成交易构建/签名/提交(cardano-cli)、dApp 基础设施(Ogmios + Kupo)以及 Hydra Head 的开/关与 L2 交易推送。该技能以 Hydra 官方 demo devnet 为基础,再叠加 Ogmios 与 Kupo 服务。
前提:Docker 已安装并运行,git 可用;宿主机端口 1337(ogmios)、1442(kupo)、4001-4003(hydra API)、3000(grafana,可选)可用。
使用方式:若仓库已有 devnet-in-a-box/,运行 cd devnet-in-a-box、chmod +x run.sh、./run.sh up。脚本会克隆 cardano-scaling/hydra 到 .vendor/hydra,复制 docker-compose.override.yml 到 hydra/demo/,执行 ./prepare-devnet.sh 与 ./seed-devnet.sh,并启动 cardano-node、hydra-node-1..3、ogmios、kupo。若没有该目录,从技能仓库复制 run.sh、docker-compose.override.yml、README.md 三个文件即可放入任意项目。
端点:Ogmios WebSocket ws://localhost:1337;Kupo HTTP http://localhost:1442;Hydra API 分别为 Alice http://localhost:4001、Bob http://localhost:4002、Carol http://localhost:4003。
操作流程:用 ./devnet-in-a-box/run.sh up 启动;在三个终端分别执行 run.sh tui 1/2/3,于 TUI 中按 [i] init、[c] commit,各方提交后 head 自动打开;可用 run.sh logs cardano-node 或 docker compose exec -T cardano-node cardano-cli query tip --testnet-magic 42 --socket-path /devnet/node.socket 验证链与基础设施。dApp 集成时用 Kupo 做 UTxO 查询与索引,用 Ogmios 做链同步与交易提交。
确定性演练:运行 ./run.sh rehearsal 执行冒烟测试并向 L1 创建 always-true Plutus 脚本 UTxO(inline datum=42,10 ADA),初始化 Hydra Head,提交 L2 交易花费该脚本 UTxO,然后 close、等待争议期、fanout;全部成功为 GREEN,否则为 RED 并指出失败步骤。轻量健康检查为 ./run.sh smoke。
限制与注意:TraceNoLedgerView 通常源于 genesis 起始时间漂移,需重跑 prepare 并重建 cardano-node;Ogmios/Kupo 无法打开 node.socket 多为权限问题,可在容器内 chmod a+w。Kupo 无返回需确认索引匹配规则,devnet 默认 --match "*"。演练用途的 demo 密钥不可视为生产密钥,devnet 设置不等于主网设置;迁移到 preprod/mainnet 时须重新核对协议参数、成本模型与脚本预算。