Prototype implementation of IOTA 2.0
This repository, called GoShimmer, is where the IOTA Foundation's Research Department tests the IOTA 2.0 modules to study and evaluate their performance.
GoShimmer is first and foremost a research prototype. As such, breaking changes can often happen. We invite researchers and developers to make use of this project as you see fit. Running experiments, test out new ideas, build PoC are all very welcome initiatives.
The code in GoShimmer is modular, where each module represents either one of the IOTA 2.0 components, or a basic node function such as the gossip, ledger state, and API - just to mention a few.
You can use the Go client-library to interact with GoShimmer (located under
We always recommend running your node via Docker. However, you can also compile the source and run the node from the compiled binary. GoShimmer uses RocksDB as its underlying db engine. That requires a few dependencies before building the project: - librocksdb - libsnappy - libz - liblz4 - libzstd
Please follow this guide: https://github.com/facebook/rocksdb/blob/master/INSTALL.md to build above libs.
When compiling GoShimmer, just run the build script:
If you also want to link the libraries statically (only on Linux) run this instead:
Finally, download the latest snapshot and make sure to place it in the root folder of GoShimmer:
wget -O snapshot.bin https://dbfiles-goshimmer.s3.eu-central-1.amazonaws.com/snapshots/nectar/snapshot-latest.bin
When creating a pull request, we recommend that you do the following:
git checkout -b fix/my-fixor
git checkout -b feat/my-feature.
go fmtcommand to make sure your code is well formatted
If you want to get involved in the community, need help getting started, have any issues related to the repository or just want to discuss blockchain, distributed ledgers, and IoT with other people, feel free to join our Discord.