JAM-Protocol

module
v0.0.0-...-b23010a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: Apache-2.0

README

JAM Protocol Implementation

New-JAMneration JAM Protocol banner

Go Format Check Release M1 Conformance License

A Go implementation of the Polkadot JAM Protocol, built by the New-JAMneration team.

Project Status

Table of Contents

Documentation

Our development documentation is maintained on HackMD for real-time collaboration and easy updates.

This is our mindmap link: JAM Mindmap

If you want to update the mindmap, you can go to the JAM-mindmap repository.

Access Documentation

Getting Started

Prerequisites
Clone the repository

This project uses git submodules (Rust-VRF and test-data vectors), so clone with submodules:

git clone --recurse-submodules https://github.com/New-JAMneration/JAM-Protocol.git

If you already cloned without --recurse-submodules:

git submodule update --init --recursive
Install dependencies
go mod tidy
Run the JAM Protocol
make run
Build the JAM Protocol
make build

Testing

Test jam-test-vectors

Run single test:

make test-jam-test-vectors mode=safrole size=full
make test-jam-test-vectors-trace mode=safrole

Run all:

make test-jam-test-vectors
make test-jam-test-vectors-trace

Conformance & Fuzzing

We continuously validate the node against the JAM Conformance fuzz protocol. See the Fuzz Validation guide for vectors, trace, socket, and CI steps.

Operations

Contributing

  • Coding Style: our codebase follows the Google Go Style Guide for consistent and maintainable code.
  • Code Formatting: we use gofmt to maintain consistent code formatting. See the commands here.
  • Commit Message: please stick to the Semantic Commit Messages when submitting a commit.
  • Pull Request: before creating a pull request, please rebase (instead of merging) your branch onto the target branch. Also, follow these instructions to link your PR to the assigned ticket's issue.

License

Licensed under the Apache License 2.0.

Directories

Path Synopsis
cmd
fuzz command
node command
internal
safrole
6.7.
6.7.
stf
telemetry
Package telemetry implements a JIP-3 telemetry client streaming node events to JamTART (or any compatible aggregator) over TCP.
Package telemetry implements a JIP-3 telemetry client streaming node events to JamTART (or any compatible aggregator) over TCP.
utilities/timing
Package timing provides utilities for measuring and reporting execution time of various code sections across the codebase.
Package timing provides utilities for measuring and reporting execution time of various code sections across the codebase.
jamtests
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL