The parachain service lets you run Polkadot parachains on JAM. It:
- Replaces the candidate inclusion with an implementation of JAM
accumulate. - Replaces the off-chain validation of candidate backing with an implementation of JAM
refine. - Offloads approval checking, availability and backing to JAM.
- Exposes a new Cumulus interface for collators to author parachain blocks as Work Packages.
There is no longer a relay chain runtime; the former relay chain logic is implemented without FRAME
directly as an accumulate hook.
.
├── authorizer # JAM authorizer for the service
│ └── bin # Blob builder for the authorizer
├── cumulus # Re-exports for candidate authorship
├── runtimes # Parachain runtimes
│ └── frameless # One mock runtime for both Coretime and Asset Hub
├── scripts # Justfile modules
├── service # The parachain service (refine + accumulate)
│ └── bin # Blob builder for the service
├── support # Code shared across the crates above
└── tools
└── executor # PolkaJAM test adapter
- is_authorized.rs and its tests
- refine.rs and its tests
- accumulate.rs and its tests
- frameless, the mock runtime whose
Configpicks Coretime or Asset Hub - PolkaJAM in-memory execution wrapper
The blob integration tests use PolkaJAM's in-memory executor with real PVM blobs and host calls.
Fetch the vendored submodules once, then build and test with cargo:
git submodule update --init # only needed once
cargo testThere are just recipes for the other operations (just --list).