Skip to content

Repository files navigation

TurboJAM

TurboJAM is a C++ implementation of the JAM paper by Gavin Wood.

Unit tests

Build Instructions

The code is regularly tested in the following build environments for the x86-64 architecture:

  • Microsoft Visual C++ (included with Visual Studio Community 2022 on Windows)
  • Clang 19 on Ubuntu 24.04
  • GCC 13 on Ubuntu 24.04

If you encounter compilation issues in a different environment, please check whether the issue also occurs in one of the supported environments above. When reporting a problem, include details about your build setup to help with troubleshooting.

Ubuntu Linux 24.04 LTS

  1. Install the necessary dependencies:
    sudo apt update
    sudo apt install -y git ninja-build cmake build-essential curl libboost-all-dev libfmt-dev libsodium-dev libssl-dev libspdlog-dev pkgconf libzstd-dev
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
    . $HOME/.cargo/env
    
  2. Clone the repository including all submodules:
    git clone --recursive https://github.com/r2rationality/turbojam.git
    cd turbojam
    
  3. Configure the build with CMake
    cmake -B build-gcc-rel -G Ninja
    
  4. Prepare the binaries:
    cmake --build build-gcc-rel -j -t all
    

Windows / Visual C++

  1. Set up the necessary Visual Studio environment variables for a command line build
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
    
  2. Use vcpkg to install the required packages specified in vcpkg.json
     vcpkg install
    
  3. Configure the build with CMake
    cmake -B build-win-rel -G Ninja -DCMAKE_BUILD_TYPE=Release --toolchain="%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake"
    
  4. Prepare the binaries:
    cmake --build build-win-rel --config Release -j -t all
    

Test Vectors

The project uses the following test-vector sets and tools to verify its conformance:

Protocol documentation

Custom 3rd-party libraries

Community Tools

Account IDs

  • DOT: 14Gnp9cpb4mrXrpbCVNQSEPyL3QhoccGB9qpTRxqKWWMWSxn
  • KSM: Fr7L8hdMeXJqydX1Z8TC2vpd1hHuysJZ2x5goFSFDhL5Ay8

About

TurboJAM: A C++ implementation of the JAM paper by Gavin Wood.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages