Skip to content

New-JAMneration/JAM-Protocol

Repository files navigation

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.

About

Polkadot JAM Protocal Implementation

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages