{"id":13547041,"url":"https://github.com/iotaledger/goshimmer","last_synced_at":"2025-04-02T19:32:31.691Z","repository":{"id":37397020,"uuid":"178216951","full_name":"iotaledger/goshimmer","owner":"iotaledger","description":"Prototype implementation of IOTA 2.0","archived":false,"fork":false,"pushed_at":"2023-08-09T13:22:50.000Z","size":688008,"stargazers_count":387,"open_issues_count":72,"forks_count":113,"subscribers_count":48,"default_branch":"develop","last_synced_at":"2024-11-03T15:38:28.144Z","etag":null,"topics":["coordicide-modules","cryptocurrency","golang","iota","tangle"],"latest_commit_sha":null,"homepage":"https://wiki.iota.org/goshimmer/welcome","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iotaledger.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null}},"created_at":"2019-03-28T14:10:32.000Z","updated_at":"2024-10-11T02:24:30.000Z","dependencies_parsed_at":"2022-07-14T04:40:32.053Z","dependency_job_id":"6faceaee-26e4-48d0-ba34-2b632ee9cd2e","html_url":"https://github.com/iotaledger/goshimmer","commit_stats":{"total_commits":2663,"total_committers":66,"mean_commits":40.34848484848485,"dds":0.8501689823507322,"last_synced_commit":"bd92a6db52550ff6b6e30b48a9c61f4d30068f58"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotaledger%2Fgoshimmer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotaledger%2Fgoshimmer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotaledger%2Fgoshimmer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotaledger%2Fgoshimmer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iotaledger","download_url":"https://codeload.github.com/iotaledger/goshimmer/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246880209,"owners_count":20848825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coordicide-modules","cryptocurrency","golang","iota","tangle"],"created_at":"2024-08-01T12:00:50.057Z","updated_at":"2025-04-02T19:32:26.682Z","avatar_url":"https://github.com/iotaledger.png","language":"Go","funding_links":[],"categories":["Go","Top Internet of Things (IOT)"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://wiki.iota.org/goshimmer/welcome\"\u003e\u003cimg src=\"images/GoShimmer.png\"\u003e\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003ch2 align=\"center\"\u003ePrototype node software for an IOTA network without the Coordinator\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://wiki.iota.org/goshimmer/welcome\" style=\"text-decoration:none;\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Documentation%20portal-blue.svg?style=for-the-badge\" alt=\"Developer documentation portal\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://discord.iota.org/\" style=\"text-decoration:none;\"\u003e\u003cimg src=\"https://img.shields.io/badge/Discord-9cf.svg?logo=discord\" alt=\"Discord\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://iota.stackexchange.com/\" style=\"text-decoration:none;\"\u003e\u003cimg src=\"https://img.shields.io/badge/StackExchange-9cf.svg?logo=stackexchange\" alt=\"StackExchange\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/iotaledger/goshimmer/blob/master/LICENSE\" style=\"text-decoration:none;\"\u003e\u003cimg src=\"https://img.shields.io/github/license/iotaledger/goshimmer.svg\" alt=\"Apache 2.0 license\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://golang.org/doc/install\" style=\"text-decoration:none;\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/iotaledger/goshimmer\" alt=\"Go version\"\u003e\u003c/a\u003e\n    \u003ca href=\"\" style=\"text-decoration:none;\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/iotaledger/goshimmer\" alt=\"Latest release\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n      \n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e ◈\n  \u003ca href=\"#design\"\u003eDesign\u003c/a\u003e ◈\n  \u003ca href=\"#getting-started\"\u003eGetting started\u003c/a\u003e ◈\n  \u003ca href=\"#client-library-and-http-api-reference\"\u003eClient-Library and HTTP API reference\u003c/a\u003e ◈\n  \u003ca href=\"#supporting-the-project\"\u003eSupporting the project\u003c/a\u003e ◈\n  \u003ca href=\"#joining-the-discussion\"\u003eJoining the discussion\u003c/a\u003e \n\u003c/p\u003e\n\n---\n\n## About\n\nThis repository, called GoShimmer, is where the IOTA Foundation's Research Department tests the IOTA 2.0 modules to study and evaluate their performance.\n\nGoShimmer 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.\n\nFor a documentation, including tutorials and resources, we refer to the [Documentation](https://wiki.iota.org/goshimmer/welcome) (Github [link](https://github.com/iotaledger/goshimmer/blob/develop/documentation/README.md)).\n\n## Design\nThe 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.  \n\n![Layers](docOps/static/img/protocol_specification/layers.png)\n\nGoShimmer's modularity is based on a combination of [event-driven](https://wiki.iota.org/goshimmer/implementation_design/event_driven_model) and [layer-based](https://wiki.iota.org/goshimmer/protocol_specification/components/overview) approaches.\n\n## Client-Library and HTTP API reference\n\nYou can use the Go client-library to interact with GoShimmer (located under `github.com/iotaledger/goshimmer/client`).\n\nYou can find more info about this on our [client-lib](https://wiki.iota.org/goshimmer/apis/client_lib) and [Web API](https://wiki.iota.org/goshimmer/apis/webAPI) documentation.\n\n## Getting started\n\nYou can find tutorials on how to [setup a GoShimmer node](https://wiki.iota.org/goshimmer/tutorials/setup), [writing a dApp](https://wiki.iota.org/goshimmer/tutorials/dApp), [obtaining tokens from the faucet](https://wiki.iota.org/goshimmer/tutorials/obtain_tokens) and more in the [GoShimmer documentation](https://wiki.iota.org/goshimmer/welcome).\n\n### Compiling from source\n\nWe always recommend running your node via [Docker](https://wiki.iota.org/goshimmer/tutorials/setup). However, you can also compile the source and run the node from the compiled binary. GoShimmer uses [RocksDB](https://github.com/linxGnu/grocksdb) as its underlying db engine. That requires a few dependencies before building the project: \n- librocksdb\n- libsnappy\n- libz\n- liblz4\n- libzstd \n\nPlease follow this guide: https://github.com/facebook/rocksdb/blob/master/INSTALL.md to build above libs.\n\nWhen compiling GoShimmer, just run the build script:\n\n```shell\n./scripts/build.sh\n```\n\nIf you also want to link the libraries statically (only on Linux) run this instead:\n\n```shell\n./scripts/build_goshimmer_rocksdb_builtin.sh\n```\n\nFinally, download the latest snapshot and make sure to place it in the root folder of GoShimmer:\n\n```shell\nwget -O snapshot.bin https://dbfiles-goshimmer.s3.eu-central-1.amazonaws.com/snapshots/nectar/snapshot-latest.bin\n```\n\n## Supporting the project\n\nIf you want to contribute to the code, consider posting a [bug report](https://github.com/iotaledger/goshimmer/issues/new-issue), feature request or a [pull request](https://github.com/iotaledger/goshimmer/pulls/).\n\nWhen creating a pull request, we recommend that you do the following:\n\n1. Clone the repository\n2. Create a new branch for your fix or feature. For example, `git checkout -b fix/my-fix` or ` git checkout -b feat/my-feature`.\n3. Run the `go fmt` command to make sure your code is well formatted\n4. Document any exported packages\n5. Target your pull request to be merged with `dev`\n\n## Joining the discussion\n\nIf 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](https://discord.iota.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiotaledger%2Fgoshimmer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiotaledger%2Fgoshimmer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiotaledger%2Fgoshimmer/lists"}