TRAM is a Python implementation of the state-transition and client-side machinery around the JAM protocol, a global permissionless compute protocol.
It models JAM blocks, extrinsics, work packages, reports, validator state, safrole, disputes, preimages, and checkpointed state storage. Where TVM focuses on the execution/runtime layer, TRAM explores the protocol and state-transition layer around it.
TRAM was built as a technically serious JAM client implementation effort. The project is preserved here as a technical showcase and reference artifact for protocol modeling, state-transition architecture, validation flows, persistence design, and test-vector-driven development.
- JAM codec and model layer for blocks, headers, extrinsics, work packages, work reports, tickets, assurances, disputes, and refinement context.
- Multiprocess operator/sensor architecture for block validation and state updates.
- Safrole implementation covering entropy rotation, ticket processing, validator set updates, epoch roots, offenders, and sealing sequences.
- RocksDB-backed state management with explicit schema design, column families, state roots, checkpointing, and fork-handling exploration.
- Merkle trie/state-root work for JAM-style state commitments.
- Test-vector harnesses for codecs, safrole, preimages, and trie behavior, with included JAM test vectors for disputes.
- Architecture explorations documenting database tradeoffs, state reconstruction, fork handling, and state-access patterns.
The TRAM wiki is the main architecture archive. Good starting points:
- STF Architecture: operator, sensors, engine, state sealer, root constructor, and state databases.
- Explorations: design notes on database selection, state access, RocksDB performance, and checkpoint/fork behavior.
- tram/src/models: JAM block, state, pool, and common data models.
- tram/src/safrole.py: safrole state-transition component.
- tram/src/rocksdb: checkpointed persistence layer and schema.
- tram/tests: test-vector harnesses and integration-style component tests.
This repository is not currently under active development. It is published as a preserved technical artifact from the 2024-2025 JAM implementation work, not as a current product or network client.
Some modules reflect an evolving architecture, and the wiki explorations intentionally remain as design notes. They are part of the record of the work.
The source is available for review under the repository's existing All Rights Reserved license.
TVM is the companion Trustless Virtual Machine assembler/runtime project. TVM sits at the low-level execution layer; TRAM sits at the protocol and state-transition layer.