Welcome to Strawberry, our implementation of the JAM client for Polkadot, written in Go. This project is part of Eiger's effort to contribute to the Polkadot ecosystem by providing a robust and efficient client implementation.
Eiger account 131MpMXeuKG6L27Ye23uzWr739KFbbrCBdiv39XZtnTCPwQB
Strawberry is an implementation of the JAM (JOIN-ACCUMULATE MACHINE) client for Polkadot, developed in Go. This implementation aims to provide a lightweight, performant, and secure JAM client.
For more information about JAM, read the graypaper. Strawberry follows the specifications outlined in version 0.4.5.
- Written in Go for performance and reliability
- Currently implementing M1 IMPORTER: State-transitioning conformance tests pass and can import blocks.
- Easy to configure and extend.
- Make
- Go 1.22.5 or higher
- Rust 1.81.1 or higher
Follow the steps below to get started:
-
Clone the repository:
git clone https://github.com/eigerco/strawberry.git cd strawberry
-
Build the project:
make build
-
Run the demo executable:
./strawberry
This demo app starts up a simple http server with one endpoint.
The import block endpoint can be accessed at POST /block/import
Usage example:
curl -i -X POST localhost:8080/block/import -H "Content-Type: application/json" --data-binary "@demo-block-sample.json"
This returns:
{"message":"extrinsic guarantees validation failed, err: anchor block not present within recent blocks","status":"error"}
Meaning that the block is being validated.
make test
Integration tests validate our code using the test vectors provided by this repository.
All integration tests are grouped within the tests/integrations
folder, and the test cases/vectors (JSON and BIN files) are located in the tests/integration/vectors
directory.
To execute these tests, use the following command:
make integration
We welcome contributions to Strawberry. Before contributing please read the CONTRIBUTING file for details.
This project is licensed under the MIT License. See the LICENSE file for details.
We would like to thank the Web3 Foundation for their support and the Polkadot community for their continuous contributions and feedback.
If you have any questions contact us at [email protected]