{"id":21023600,"url":"https://github.com/firedancer-io/solana_dissector","last_synced_at":"2025-05-15T08:32:59.216Z","repository":{"id":63146813,"uuid":"525309274","full_name":"firedancer-io/solana_dissector","owner":"firedancer-io","description":"Wireshark dissector for the Solana peer-to-peer network","archived":false,"fork":false,"pushed_at":"2024-03-19T19:23:02.000Z","size":77,"stargazers_count":24,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T06:41:57.511Z","etag":null,"topics":["lua","solana","wireshark","wireshark-dissector","wireshark-lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firedancer-io.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}},"created_at":"2022-08-16T09:19:09.000Z","updated_at":"2025-01-16T19:58:43.000Z","dependencies_parsed_at":"2024-04-01T20:29:03.056Z","dependency_job_id":"8c59c284-0801-4d12-bb16-51a1c766fa91","html_url":"https://github.com/firedancer-io/solana_dissector","commit_stats":null,"previous_names":["firedancer-io/solana_dissector"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firedancer-io%2Fsolana_dissector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firedancer-io%2Fsolana_dissector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firedancer-io%2Fsolana_dissector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firedancer-io%2Fsolana_dissector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firedancer-io","download_url":"https://codeload.github.com/firedancer-io/solana_dissector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254304663,"owners_count":22048446,"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":["lua","solana","wireshark","wireshark-dissector","wireshark-lua"],"created_at":"2024-11-19T11:18:47.172Z","updated_at":"2025-05-15T08:32:59.196Z","avatar_url":"https://github.com/firedancer-io.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wireshark dissectors for Solana\n\n## Installation\n\n#### macOS\n\nDownload latest version of plugin\n\n```shell\nrm -f /Applications/Wireshark.app/Contents/PlugIns/wireshark/solana.lua\ncurl --output /Applications/Wireshark.app/Contents/PlugIns/wireshark/solana.lua \\\n  --proto '=https' --tlsv1.2 -sSf \\\n  https://raw.githubusercontent.com/firedancer-io/solana_dissector/main/solana.lua\n```\n\nTo activate, hit Cmd+Shift+L or restart Wireshark.\n\n## Ports\n\nSolana nodes allocate ports in a block starting at an arbitrary number.\nTo discover endpoints, nodes use the gossip protocol to send each other port mappings.\n\nThis plugin doesn't implement mappings yet and instead hardcodes ports.\n\n- 8000: Gossip\n- 8001, 8002: Shreds\n- 8008, 8009: Repair\n\nThis might get fixed in the future, but for now, you have to use \"Decode As\" to select a protocol if the hardcoded mapping fails.\n\n## mev-protos\n\nProvided [mev-protos](https://github.com/jito-labs/mev-protos) are added to the Wireshark search path,\nsolana_dissector will decode Solana Transactions occurring in bundles received via gRPC.\n\n## Development\n\n- 🚧 Gossip protocol\n  - Messages\n    - ✅ Pull Request\n    - ✅ Pull Response\n    - ✅ Push Message\n    - ✅ Prune Message\n    - ✅ Ping Message\n    - ✅ Pong Message\n  - Types\n    - ✅ Socket Address\n    - ✅ Transaction (legacy)\n    - ❌ Transaction (v0)\n  - CRDS\n    - ✅ Contact Info\n    - ✅ Vote\n      - ❌ Vote program data\n    - ✅ Lowest Slot\n    - ✅ Snapshot Hashes\n    - ✅ Accounts Hashes\n    - ✅ Epoch Slots\n    - ✅ Legacy Version\n    - ✅ Version\n    - ✅ Node Instance\n    - ❌ Duplicate Shred\n    - ✅ Incremental Snapshot Hashes\n- ✅ Shreds\n  - ✅ Legacy Shreds\n  - ✅ Merkle Shreds\n  - ✅ Chained Merkle Shreds\n  - ✅ Chained Resigned Merkle Shreds\n  - ❌ FEC Recovery\n- ✅ Repair\n  - ✅ Legacy types\n  - ✅ Pong\n  - ✅ WindowIndex\n  - ✅ HighestWindowIndex\n  - ✅ Orphan\n  - ✅ AncestorHashes\n- ✅ TPU (UDP)\n- 🚧 TPU (QUIC)\n  - If solana-tpu QUIC traffic doesn't dissect, run \"Reload Lua plugins\"\n- ✅ mev-protos\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiredancer-io%2Fsolana_dissector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiredancer-io%2Fsolana_dissector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiredancer-io%2Fsolana_dissector/lists"}