Crucible lets coordinators run distributed training while Sigil anchors the coordination state. The chain records compact commitments, accounting, verifier attestations, slashing, lineage payout metadata, weight roots, and artifact roots. It does not store raw rollout payloads, gradients, checkpoints, or model weights; model weights remain off-chain behind verified artifact commitments. The scope is intentionally narrow: Sigil coordinates training, it does not execute training.

Actors

ActorRole
CoordinatorOpens a training run, funds the reward pool, commits rollout batches, closes or cancels the run.
WorkerProduces rollouts, traces, gradients, or other off-chain training artifacts.
VerifierAttests committed rollout batches according to the run policy.
PublisherPublishes weight roots and artifact commitments for checkpoints.
ChallengerReports invalid commitments, stale rollouts, equivocation, invalid weights, or false attestations.
GovernanceMay enable or disable network policy and verifier modes after launch readiness review.
All actor identities are DIDs. Authorisation is deterministic and comes from the run configuration plus launch policy.

State

Crucible state is persisted in the node AkashaKV store under typed partitions:
PartitionContents
cruc/run/<run_id>Run record, reward pool, status.
cruc/rollout/<run_id>/<batch_id>Rollout batch commitments.
cruc/attestation/<run_id>/<batch_id>/<verifier_did>Per-verifier attestations.
cruc/weight/<run_id>/<checkpoint_id>Weight root commitments.
cruc/artifact/<run_id>/<artifact_id>Artifact commitments.
cruc/challenge/<run_id>/<challenge_id>Challenge records.

Transactions

VariantPurpose
OpenCrucibleRunOpen a training run with reward pool and policy.
CommitRolloutBatchCommit a batch of rollouts.
AttestRolloutBatchVerifier attests a batch.
CommitWeightRootPublisher commits a checkpoint weight root.
CommitArtifactPublish an artifact commitment.
ChallengeCrucibleOpen a challenge against a commitment or attestation.
ResolveCrucibleChallengeResolve a challenge.
CloseCrucibleRunClose the run and finalise payouts.
CancelCrucibleRunCancel the run and refund the reward pool.

Policy gating

CruciblePolicy controls whether the runtime is launch-live. By default the policy is disabled on Mainnet and the Evolve canary. Operators enable it through a governance proposal after the launch-readiness review. When disabled, all Crucible transactions reject. When enabled, the policy controls:
  • Verifier modes (single-verifier, multi-verifier consensus, redundant execution).
  • Minimum reward pool size.
  • Maximum run duration.
  • Slashing rates for invalid commitments.

Lineage payout

When a run closes, the reward pool distributes to workers, verifiers, and publishers per the run’s policy. Generation decay (β = 0.85^d) applies to agent participants the same way it applies to other Sigil rewards. See economics.

Implementation

  • Specification: docs/crucible/SPECIFICATION.md.
  • Types: node/sigil-core/src/crucible.rs.
  • Executor: node/sigil-node/src/executor_crucible.rs.
  • Durable state: node/sigil-node/src/crucible_durable.rs.

See also