Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions deliveries/jam-forge-delivery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# JAM Milestone Delivery

## Company/Team details

>Please provide all the required information below.

- Company/Team's name: Jam Forge
- Company/Team's GitHub: [philoniare](http://github.com/philoniare/)
- Programming language and language set: Scala (Category D)

## Documentation checklist

We declare that:

- [X] we have completed **the Web3 Foundation KYC/KYB process**.
- [X] we used **a clear and permissive open-source license**.
- [X] we submitted **a clear Git history and public, credibly timestamped commits** | **code developed in private, with commit hashes placed, in a timely fashion, on a major public blockchain**.
- [X] we used third party libraries for: **cryptographic primitives** erasure-coding, Bandersnatch, Ed25519, vrf
- [ ] we provided **Gas, trie/DB, signature-verification, and availability (EC/DB) performance tests** to be run on standard hardware.
- [X] we have not viewed **JAM implementation code** before or during our implementation.
- [X] we have nothad private conversations with other implementers**.
- [X] we have not had **concerns about collusion**.
- [X] we agree to a recorded interview by the *Polkadot Technical Fellowship* on any matter arising from this milestone submission.
- [X] we understand that this milestone submission will need to be ratified with an on-chain remark by the *Polkadot Technical Fellowship* before it can be merged.


## Context

This milestone represents the successful completion of the IMPORTER (M1) phase of our Scala-based JAM implementation. We have achieved full conformance with state-transitioning tests using jamtestvectors and implemented block import functionality conforming with GP v0.7.2.

## Deliverables

- [X] 1. IMPORTER: State-transitioning conformance tests pass and can import blocks.
- [ ] 2. AUTHOR: Fully conformant and can produce blocks (including networking, off-chain).
- [ ] 3. HALF-SPEED: Conformance and Kusama-level performance (including PVM implementation).
- [ ] 4. FULL-SPEED: Conformance and Polkadot-level performance (including PVM implementation).
- [ ] 5. SECURE: Fully audited.


| Number | Deliverable | Link | Notes |
|---------|-------------|--------|-------|
|1. |Source code | https://github.com/philoniare/jam-forge | v0.7.2 source code |
|2. |Fuzzer target | https://github.com/davxy/jam-conformance/blob/main/scripts/targets.json | v0.7.2 fuzzer target |


## Additional Information

Our development approach involved initially building a complete Kotlin implementation to rapidly prototype and validate our understanding of the JAM Gray Paper specification. This exploratory phase proved invaluable—it allowed us to discover architectural pitfalls, identify integration challenges with cryptographic libraries, and deeply understand the state transition complexities before committing to our final implementation. Armed with these insights, we ported the codebase to Scala, which resulted in a significantly superior architecture. Leveraging Scala's algebraic data types, pattern matching, and sophisticated type system, we eliminated entire classes of runtime errors and achieved a ~18% code reduction while simultaneously improving type safety, maintainability, and correctness guarantees. The final Scala implementation benefits from all the lessons learned during the Kotlin phase, resulting in cleaner abstractions and more robust state transition logic.