{"id":15576263,"url":"https://github.com/csko/tribler-gossip","last_synced_at":"2025-08-27T15:07:40.589Z","repository":{"id":72009835,"uuid":"2324100","full_name":"csko/Tribler-gossip","owner":"csko","description":"Tribler with the gossip machine learning framework community.","archived":false,"fork":false,"pushed_at":"2012-10-29T10:35:00.000Z","size":44136,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"5.5.x","last_synced_at":"2025-04-09T18:01:30.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://qlectives.eu","language":"Python","has_issues":false,"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/csko.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}},"created_at":"2011-09-04T17:13:13.000Z","updated_at":"2019-08-13T14:49:44.000Z","dependencies_parsed_at":"2023-02-22T03:30:21.693Z","dependency_job_id":null,"html_url":"https://github.com/csko/Tribler-gossip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/csko/Tribler-gossip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csko%2FTribler-gossip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csko%2FTribler-gossip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csko%2FTribler-gossip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csko%2FTribler-gossip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csko","download_url":"https://codeload.github.com/csko/Tribler-gossip/tar.gz/refs/heads/5.5.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csko%2FTribler-gossip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272342675,"owners_count":24917676,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10-02T18:44:38.195Z","updated_at":"2025-08-27T15:07:40.565Z","avatar_url":"https://github.com/csko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Tribler gossip learning integration\n==========\n\nThis repository is the result of my Computer Science master's thesis [Distributed Machine Learning Using the Tribler Platform](http://csko.hu/projektek/msc_thesis.pdf). It implements the [Gossip Learning Framework](https://github.com/RobertOrmandi/Gossip-Learning-Framework) as part of a community in Dispersy.\n\nRequirements\n===\n - **python2**\n - **python2-mcrypto**\n - **wxpython**\n - **libvlc python binding**\n - bash and standard unix tools\n - gnuplot (optional, for plotting the results)\n\nExperiments\n=====\n\nFor a detailed description, please see my [thesis](http://csko.hu/projektek/msc_thesis.pdf).\nLong story short, you can start a basic experiment by issuing the\n\n``./startExperiment.sh 90``\n\ncommand, which will start 90 peers to learn on the Iris-setosa-versicolor database using the *P2Pegasos-MU* model, which should converge in a matter of minutes. Beware, this spawns about 2*90 processes and can be quite resource intensive. If you start less peers than there are training examples, the training examples will be distributed as evenly as possible (each peer taking turn in selecting a training example). To switch to the Spambase database, edit `script.py`.\n\n**Don't forget to kill the tribler python processes when you are done.**\n\nLogs\n====\n\nTribler standard output and error channels are redirected to logfiles, which can be found under `logs/`, file names are prefixed with the peer ID. To enable verbose logging, change the logging policy in `dprint.conf`.\n\nThe prediction values are logged under `experiment/logs`, file names are prefixed with the peer ID and they also contain the name of the database. These logs are the prediction results at each peer measured every 10 seconds.  Each line has a space-separated columns: UNIX timestamp, peer id, model age, 0-1 error, incoming message count. The last set of columns are the linear model parameters.\n\nPlots\n=====\n\nYou can aggregate the results even while the experiment is running with the `result.py` script. To create a plot\nsimilar to those in the thesis, save the aggregated results by a command similar to:\n\n`./result.py \u003e experiment/result-p2pegasos-iris-setosa-versicolor.txt`\n\nThen, create a PNG plot using the following command:\n\n`./plot.sh experiment/result-p2pegasos-iris-setosa-versicolor.txt experiment/result-p2pegasos-iris-setosa-versicolor.png`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsko%2Ftribler-gossip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsko%2Ftribler-gossip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsko%2Ftribler-gossip/lists"}