Skip to content

pod network integration (Shadow mode)#4205

Draft
AryanGodara wants to merge 11 commits intomainfrom
aryan/pod-network-integration
Draft

pod network integration (Shadow mode)#4205
AryanGodara wants to merge 11 commits intomainfrom
aryan/pod-network-integration

Conversation

@AryanGodara
Copy link
Member

@AryanGodara AryanGodara commented Feb 24, 2026

Changes

  • winner-selection crate: New crate implementing deterministic solution hashing and combinatorial auction arbitration logic
  • Driver pod flow: After computing a solution, drivers submit bids to pod network, wait for auction end, fetch all bids, and run local winner selection
  • Configuration: New [pod] TOML config section for endpoint, auction contract, and wallet
  • Playground: Added driver2/baseline2 services to test multi-driver pod scenarios
  • Bug fixes: Dynamic WETH address lookup, graceful handling of None scores

How to Test

  1. Start playground: cd playground && docker compose up
  2. All pod-related logs are prefixed with [pod]
  3. Check driver logs: docker compose logs -f driver driver2 | grep "\[pod\]"
  4. Look for:
    • pod provider built with wallet
    • preparing bid submission payload
    • bid submission succeeded
    • local arbitration completed
    • local winner selected

Playground Testing Status (updating as I go)

What's Working

  1. All services start successfully — autopilot, orderbook, driver, driver2, baseline, baseline2
  2. Pod provider initialization — Both drivers log [pod] pod provider built with wallet
  3. Bid payload preparation — Drivers prepare pod bid submission payloads with solution data
  4. Local arbitration fallback — When pod network is unreachable, autopilot performs local winner selection
  5. Winner selection via pod logic — Autopilot logs [pod] CoW winner selected with computed scores
  6. Order settlement — Orders are settled on-chain via the winning driver

What didn't work in the local playground

  • Pod bid TX submission failscow.pod.network:8545 is unreachable from Docker containers (DNS)
  • This is expected; the local arbitration fallback works correctly

Test I ran

  • Swapped 4 ETH → ~7.4K USDC
  • Both solvers (baseline, baseline2) competed and submitted solutions
  • Winner selected via pod arbitration logic (baseline won auction 170)

Related

@AryanGodara AryanGodara self-assigned this Feb 24, 2026
@github-actions
Copy link


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


1 out of 2 committers have signed the CLA.
✅ (AryanGodara)[https://github.com/AryanGodara]
@ogabrielides
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@socket-security
Copy link

socket-security bot commented Feb 24, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedtokio@​1.49.0 ⏵ 1.47.163 +310093100100
Updatedvergen@​8.3.2 ⏵ 8.3.16310093100100
Updatedtoml@​0.8.23 ⏵ 0.8.1410010093100100
Updatedtokio-stream@​0.1.18 ⏵ 0.1.1710010093100100
Updatedtower@​0.5.3 ⏵ 0.5.210010093100100
Updatedurl@​2.5.8 ⏵ 2.5.0100 +1100100100100

View full report

ogabrielides and others added 11 commits February 25, 2026 00:29
- Remove spurious pub mod bad_tokens (competition/mod.rs), pub mod fee
  (e2e setup/mod.rs), and participation_guard re-export (autopilot)
- Replace derivative crate with manual Debug impl for Solver
- Remove unused primitive-types dependency
- Delete HANDOFF_PROMPT.md and PLAYGROUND_DEEP_DIVE.md (not part of pod feature)
…twork testing

- Add autopilot.toml with driver configurations (required by new --config CLI arg)
- Fix driver2.toml: add missing tx-gas-limit, correct solver name/endpoint to baseline2
- Fix NATIVE_PRICE_ESTIMATORS format in compose files (add Driver| prefix for baseline2)
- Mount autopilot.toml in docker-compose.non-interactive.yml

The autopilot binary now requires a --config TOML file specifying drivers and fee
policies, replacing the previous DRIVERS environment variable approach.
@AryanGodara AryanGodara force-pushed the aryan/pod-network-integration branch from aff7b2c to dad9d3d Compare February 24, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pod Integration (Shadow Mode)

2 participants