{"id":19362677,"url":"https://github.com/imdea-software/atomic-multicast","last_synced_at":"2025-02-24T12:49:26.416Z","repository":{"id":79163159,"uuid":"180895589","full_name":"imdea-software/atomic-multicast","owner":"imdea-software","description":"White-box genuine atomic multicast, mirror from","archived":false,"fork":false,"pushed_at":"2019-09-09T08:34:54.000Z","size":392,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-06T20:33:25.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gitlab.software.imdea.org/multicast/libamcast","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imdea-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-11T23:51:11.000Z","updated_at":"2019-09-09T08:37:25.000Z","dependencies_parsed_at":"2023-06-29T18:15:45.824Z","dependency_job_id":null,"html_url":"https://github.com/imdea-software/atomic-multicast","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdea-software%2Fatomic-multicast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdea-software%2Fatomic-multicast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdea-software%2Fatomic-multicast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdea-software%2Fatomic-multicast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imdea-software","download_url":"https://codeload.github.com/imdea-software/atomic-multicast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240483782,"owners_count":19808632,"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":[],"created_at":"2024-11-10T07:29:53.516Z","updated_at":"2025-02-24T12:49:26.393Z","avatar_url":"https://github.com/imdea-software.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# White-box atomic multicast\n\nThis repository contains an implementation of the\n[White-Box Atomic Multicast](https://arxiv.org/abs/1904.07171) algorithm.\n\nThe implementation is event-driven and rely on [libevent](https://libevent.org)\nfor asynchronous network communication.\n\nThe protocol logic lies in `src/amcast*` and makes use of\n[Glib2](https://www.gtk.org/)'s red-black tree and hashmap data structures.\n\nThe microbenchmarking application found under the `bench` folder can also drive\n[LibMCast](https://bitbucket.org/paulo_coelho/libmcast)'s servers to conduct a\ncomparative study with other genuine atomic multicast protocols it\nimplements.\n\n## Build :\n\n    git clone [this repo url]\n    make\n\nDepends directly on\n[libevent](https://libevent.org),\n[Glib2](https://www.gtk.org), and\n[LibMCast](https://bitbucket.org/paulo_coelho/libmcast) only for benchmarking\npurposes.\n\n## Usage :\n\nSample usage as a library may be found under `bench/node-bench.c` which\ninstantiate server or clients on a single machine.\n\nOne-time experiments can be run with `bench/runbench_tmux.sh`.\n\nExperiments for a range of clients, destination groups and protocols may be run\nwith `bench/run_cmpbench.sh`\n\n## Configuration :\n\nPay attention to environment-specific variables in each bench script.\n\nA cluster configuration read by `bench/node-bench.c` from stdin should be\nformatted as a tsv in the following manner:\n`NODE_ID\\tGROUP_ID\\tIP_ADDR\\tLISTENER_PORT`,\nOne line per server and client nodes.\n\nOn [Emulab](https://www.emulab.net) and [Cloudlab](https://cloudlab.us)\nenvironment, this may be generated the `utils/emulab_clusterconf_gen.sh`\n\n## License :\n\nPrototype implementation. Use at your own risks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdea-software%2Fatomic-multicast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimdea-software%2Fatomic-multicast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdea-software%2Fatomic-multicast/lists"}