{"id":21974425,"url":"https://github.com/abdes/blocxxi","last_synced_at":"2025-04-28T15:38:36.967Z","repository":{"id":45212046,"uuid":"137659664","full_name":"abdes/blocxxi","owner":"abdes","description":"Implementation of Kademlia based DHT and a blockchain in C++","archived":false,"fork":false,"pushed_at":"2023-04-09T14:01:27.000Z","size":28199,"stargazers_count":24,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-30T10:51:12.626Z","etag":null,"topics":["blockchain","cplusplus","dht","imgui","kademlia","kademlia-dht","network-programming","p2p","p2p-network"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abdes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2018-06-17T14:07:51.000Z","updated_at":"2024-04-12T00:49:07.000Z","dependencies_parsed_at":"2023-01-18T17:32:37.963Z","dependency_job_id":null,"html_url":"https://github.com/abdes/blocxxi","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fblocxxi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fblocxxi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fblocxxi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fblocxxi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdes","download_url":"https://codeload.github.com/abdes/blocxxi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251340103,"owners_count":21573841,"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":["blockchain","cplusplus","dht","imgui","kademlia","kademlia-dht","network-programming","p2p","p2p-network"],"created_at":"2024-11-29T15:45:19.777Z","updated_at":"2025-04-28T15:38:36.942Z","avatar_url":"https://github.com/abdes.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# An implementation of Kademlia DHT and Blockchain in C++\n\n\u003cdiv align=\"center\"\u003e\n\n-+- Build Status -+-\n\n_develop_\n\n[![Build status - develop][build-status-develop-badge]][build-matrix]\n\n_master_\n\n[![Build status - master][build-status-master-badge]][build-matrix]\n\n-+-\n\n[![Latest release][release-badge]][latest-release]\n[![Commits][last-commit-badge]][commits]\n[![Linux][linux-badge]][latest-release]\n[![Windows][windows-badge]][latest-release]\n[![Mac OS][macos-badge]][latest-release]\n[![License][license-badge]][license]\n[![CII Best Practices][openssf-badge]][openssf-project]\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#project-documentation\"\u003eProject Documentation\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#Contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#credits\"\u003eCredits\u003c/a\u003e •\n\u003c/p\u003e\n\n## Key Features\n\nThis is work in progress, but the code is heavily documented. So far, the DHT is\npretty stable with a full implementation of the Kademlia routing table and the\nKademlia protocol, with several of the optimizations recommended in the paper.\n\n## Project Documentation\n\nWe have detailed guides for setting up an efficient development environment, the\ndevelopment process, project structure, etc. Take a look at the available guides\n[here](https://abdes.github.io/asap/asap_master/html/).\n\nIn addition to that, specific documentation for the command line parser, its\nusage and APIs, are provided in the project GitHub Pages site\n[here](https://abdes.github.io/blocxxi/blocxxi_master/html/).\n\n## Getting Started\n\nIt is strongly recommended that you take some time to browse the project\ndocumentation to familiarize yourself with its structure and development\nworkflows.\n\nMake sure you have a C++ compiler with C++-17 capabilities at least. Gnu, Clang\nand MSVC all can do that with a recent version.\n\n```bash\ngit clone --recurse-submodules -j4 https://github.com/abdes/blocxxi.git\n```\n\n```bash\nmkdir _build \u0026\u0026 cd _build \u0026\u0026 cmake .. \u0026\u0026 cmake --build .\n```\n\nor just use one of the predefined `CMake` presets. Detailed instructions are in\nthe project documentation, and many useful commands are listed\n[here](https://abdes.github.io/asap/asap_master/html/getting-started/useful-commands.html).\n\n## CMake configurable build options\n\n```cmake\n# Project options\noption(BUILD_SHARED_LIBS        \"Build shared instead of static libraries.\"              ON)\noption(ASAP_BUILD_TESTS         \"Build tests.\"                                           OFF)\noption(ASAP_BUILD_EXAMPLES      \"Build examples.\"                                        OFF)\noption(ASAP_WITH_GOOGLE_ASAN    \"Instrument code with address sanitizer\"                 OFF)\noption(ASAP_WITH_GOOGLE_UBSAN   \"Instrument code with undefined behavior sanitizer\"      OFF)\noption(ASAP_WITH_GOOGLE_TSAN    \"Instrument code with thread sanitizer\"                  OFF)\noption(ASAP_WITH_VALGRIND       \"Builds targets with valgrind profilers added\"           OFF)\n```\n\n## Contributing\n\nIf you would like to contribute code you can do so through GitHub by forking the\nrepository and sending a pull request. When submitting code, please make every\neffort to follow existing conventions and style in order to keep the code as\nreadable as possible.\n\nBy contributing your code, you agree to license your contribution under the\nterms of the BSD-3-Clause or a more permissive license. All files are released\nwith the BSD-3-Clause license.\n\nRead the [developer guides](https://abdes.github.io/asap/asap_master/html/).\n\n### Submitting a PR\n\n- For every PR there should be an accompanying issue which the PR solves\n- The PR itself should only contain code which is the solution for the given\n  issue\n- If you are a first time contributor check if there is a suitable issue for you\n\n## Getting updates from upstream [`asap`](https://github.com/abdes/asap)\n\nIn order to pull and merge updates from the upstream project, make sure to add\nit to the repo's remotes and disable pulling/merging tags from the upstream. We\nwant tags to be limited to those made in this repo, not in the upstream.\n\n```bash\ngit remote add upstream https://github.com/abdes/asap.git\ngit config remote.upstream.tagopt --no-tags\n```\n\n## Credits\n\n- The multitude of other open-source projects used to implement this project or\n  to get inspiration - credits in the source code or the documentation as\n  appropriate\n\n[build-matrix]: https://github.com/abdes/blocxxi/actions/workflows/cmake-build.yml?branch=develop\n[build-status-develop-badge]: https://github.com/abdes/blocxxi/actions/workflows/cmake-build.yml/badge.svg?branch=develop\n[build-status-master-badge]: https://github.com/abdes/blocxxi/actions/workflows/cmake-build.yml/badge.svg?branch=master\n[commits]: https://github.com/abdes/blocxxi/commits\n[last-commit-badge]: https://img.shields.io/github/last-commit/abdes/blocxxi\n[latest-release]: https://github.com/abdes/blocxxi/releases/latest\n[license-badge]: https://img.shields.io/github/license/abdes/blocxxi\n[license]: https://opensource.org/licenses/BSD-3-Clause\n[linux-badge]: https://img.shields.io/badge/OS-linux-blue\n[macos-badge]: https://img.shields.io/badge/OS-macOS-blue\n[openssf-badge]: https://bestpractices.coreinfrastructure.org/projects/6500/badge\n[openssf-project]: https://bestpractices.coreinfrastructure.org/projects/6500\n[release-badge]: https://img.shields.io/github/v/release/abdes/blocxxi\n[windows-badge]: https://img.shields.io/badge/OS-windows-blue\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdes%2Fblocxxi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdes%2Fblocxxi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdes%2Fblocxxi/lists"}