{"id":15152975,"url":"https://github.com/devbender/dump1090-ipfs-pubsub","last_synced_at":"2026-02-03T09:39:37.191Z","repository":{"id":175585241,"uuid":"452920438","full_name":"devbender/dump1090-ipfs-pubsub","owner":"devbender","description":"Publish your dump1090 data streams to IPFS so we can create a decentralized free to access peer to peer ADS-B traffic network.","archived":false,"fork":false,"pushed_at":"2022-04-10T21:20:55.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T11:37:56.396Z","etag":null,"topics":["ads-b","dump1090","ipfs","ipfs-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devbender.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-01-28T03:00:15.000Z","updated_at":"2022-04-09T03:41:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"71c8f542-4f4e-4110-b564-56c976818c09","html_url":"https://github.com/devbender/dump1090-ipfs-pubsub","commit_stats":{"total_commits":45,"total_committers":1,"mean_commits":45.0,"dds":0.0,"last_synced_commit":"352a8778c8c4a7475f04fd6826573aa737beaf96"},"previous_names":["devbender/dump1090-ipfs-pubsub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devbender/dump1090-ipfs-pubsub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbender%2Fdump1090-ipfs-pubsub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbender%2Fdump1090-ipfs-pubsub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbender%2Fdump1090-ipfs-pubsub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbender%2Fdump1090-ipfs-pubsub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devbender","download_url":"https://codeload.github.com/devbender/dump1090-ipfs-pubsub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbender%2Fdump1090-ipfs-pubsub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265492325,"owners_count":23776033,"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":["ads-b","dump1090","ipfs","ipfs-api"],"created_at":"2024-09-26T16:42:29.456Z","updated_at":"2026-02-03T09:39:37.160Z","avatar_url":"https://github.com/devbender.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPFS pubsub dump1090\n\nPublish your dump1090 data streams to IPFS so we can create a decentralized, free to access peer to peer ADS-B traffic network.\n\nThis python script (package soon) grabs the SBS-1 TCP output of any dump1090 (usually on port 30003) and aggregates these messages:\n\n* __MSG:1__ ES Callsign\n* __MSG:2__ ES Surface Position\n* __MSG:3__ ES Airborne Position\n* __MSG:4__ ES Airborne Velocity\n\nThe agregated data is published via Pubsub to IPFS to the specified topics in the file __ipfs_pub_dump1090.py__ in a newline-delimited JSON (NDJSON) format once per second. Example output:\n```\n{\"icao\": \"AA7B33\", \"csg\": \"SWA317\", \"ts\": 1645374580, \"alt\": 27275, \"lat\": 28.81928, \"lon\": -94.51193, \"spd\": 463, \"trk\": 143, \"vrt\": 1536, \"gnf\": 0}\n{\"icao\": \"AB3655\", \"csg\": \"UAL2118\", \"ts\": 1645374580, \"alt\": 38000, \"lat\": 27.69746, \"lon\": -96.37498, \"spd\": 382, \"trk\": 208, \"vrt\": 0, \"gnf\": 0}\n{\"icao\": \"A05AD1\", \"csg\": \"UCA4296\", \"ts\": 1645374580, \"alt\": 11550, \"lat\": 30.30537, \"lon\": -95.45584, \"spd\": 299, \"trk\": 324, \"vrt\": 1344, \"gnf\": 0}\n{\"icao\": \"AAA0D1\", \"csg\": \"N784QS\", \"ts\": 1645374580, \"alt\": 43000, \"lat\": 28.87775, \"lon\": -95.639, \"spd\": 386, \"trk\": 233, \"vrt\": 0, \"gnf\": 0}\n{\"icao\": \"A0BF31\", \"csg\": \"N1471E\", \"ts\": 1645374580, \"alt\": 800, \"lat\": 29.46629, \"lon\": -95.14562, \"spd\": 90, \"trk\": 109, \"vrt\": 128, \"gnf\": 0}\n```\n\nThe output only contains the data of aircrafts that have updated information since the last send period. Aircraft aggregated data is cached for 30 seconds and dropped after if no update is received.\n\n__NOTE: At the moment only ADS-B SBS-1 data is supported, more coming soon!__\n\n\n## Requirements\n\n* An up and running dump1090 instance\n* A local IPFS node with pubsub enabled (--enable-pubsub-experiment flag)\n* Python requests: `pip3 install requests`\n\n\n## Defining a location-based topic nomenclature\n\nThe idea of this project is that you can subscribe to specific topics depending on your location so you can get the aggregated output off all nearby receivers. To achieve this I defined a preliminary topic nomenclature (until a better idea arises).\n\nThe prefix defines the type of data: \"ADSB\", \"UAT\", \"MLAT\", or \"FLARM\" followed by a dash then the IATA airport code of the nearest largest airport.\n\nExample topic names:\n\n* __ADSB-MIA:__ ADS-B data near Miami Airport\n* __UAT-HOU:__  UAT data near William P. Hobby\n* __MLAT-FLL:__  MLAT data near Ft. Lauderdale Airport\n* __FLARM-JFK:__ FLARM data near JFK Airport\n\n\n## To run\n\nClone the repo preferably to your home directory.\n```\ngit clone https://github.com/devbender/ipfs_pubsusb_dump1090\n```\n\nThen cd into the repo directory and modify the __ipfs_pub_dump1090.py__ and add the topic names to where your data will be published according to the specified nomenclature (see examples above).\n```\nTOPICS = []\n```\nMore than one topic can be specified if you wish to publish to more than one IATA code at the time for airports that are relatively close, for example MIA an FLL that are 20 miles apart:\n```\nTOPICS = ['ADSB-MIA', 'ADSB-FLL']\n```\n\nModify the __ipfs-dump1090.service__ unit file with your current user and the path to the repo. You can skip this step if you are running via raspberry pi default user `pi` and cloned to the home directory.\n```\n[Service]\nUser=pi\nExecStart=/usr/bin/python3 /home/pi/ipfs_pubsusb_dump1090/ipfs_pub_dump1090.py\n```\n\nCopy the unit file to __/etc/systemd/system/__: \n```\nsudo cp ipfs-dump1090.service /etc/systemd/system/\n```\n\nTo start:\n```\nsudo systemctl start ipfs-dump1090.service\n```\n\nConfirm its running:\n```\nsudo systemctl status ipfs-dump1090.service\n```\n\nTo enable auto start:\n```\nsudo systemctl enable ipfs-dump1090.service\n```\n\nTest the output:\n```\nipfs pubsub sub \u003ctopic\u003e\n```\n\n\n## Credits\n\nCopyright (C) 2022 by Juan Benitez   \u003cjuan.a.benitez(at)gmail.com\u003e\n\nDistributed under GPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevbender%2Fdump1090-ipfs-pubsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevbender%2Fdump1090-ipfs-pubsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevbender%2Fdump1090-ipfs-pubsub/lists"}