Giter VIP home page Giter VIP logo

goshimmer's Introduction


Prototype node software for an IOTA network without the Coordinator

Developer documentation portal

Discord StackExchange Apache 2.0 license Go version Latest release

AboutDesignGetting startedClient-Library and HTTP API referenceSupporting the projectJoining the discussion


About

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.

For a documentation, including tutorials and resources, we refer to the Documentation (Github link).

Design

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.

Layers

GoShimmer's modularity is based on a combination of event-driven and layer-based approaches.

Client-Library and HTTP API reference

You can use the Go client-library to interact with GoShimmer (located under github.com/iotaledger/goshimmer/client).

You can find more info about this on our client-lib and Web API documentation.

Getting started

You can find tutorials on how to setup a GoShimmer node, writing a dApp, obtaining tokens from the faucet and more in the GoShimmer documentation.

Compiling from source

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:

./scripts/build.sh

If you also want to link the libraries statically (only on Linux) run this instead:

./scripts/build_goshimmer_rocksdb_builtin.sh

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

Supporting the project

If you want to contribute to the code, consider posting a bug report, feature request or a pull request.

When creating a pull request, we recommend that you do the following:

  1. Clone the repository
  2. Create a new branch for your fix or feature. For example, git checkout -b fix/my-fix or git checkout -b feat/my-feature.
  3. Run the go fmt command to make sure your code is well formatted
  4. Document any exported packages
  5. Target your pull request to be merged with dev

Joining the discussion

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.

goshimmer's People

Contributors

capossele avatar luca-moser avatar wollac avatar jonastheis avatar karimodm avatar apenzk avatar lzpap avatar jkrvivian avatar hmoog avatar piotrm50 avatar acha-bill avatar dependabot[bot] avatar lucas-tortora avatar galrogozinski avatar georgysavva avatar daria305 avatar jorgemmsilva avatar thethorne48 avatar bingyanglin avatar evanfeenstra avatar jakescahill avatar dr-electron avatar muxxer avatar rajivshah3 avatar nuriel77 avatar phyloiota avatar kilianhln avatar jannemandev avatar no8ody avatar teeveeess avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.