Skip to content

Feature/ping uid privacy#20

Draft
fauxreigner-mb wants to merge 4 commits intoMeshMapper:devfrom
fauxreigner-mb:feature/ping-uid-privacy
Draft

Feature/ping uid privacy#20
fauxreigner-mb wants to merge 4 commits intoMeshMapper:devfrom
fauxreigner-mb:feature/ping-uid-privacy

Conversation

@fauxreigner-mb
Copy link
Copy Markdown

Problem

Pings broadcast @[MapperBot] LAT, LON in a public channel. Power has already been moved to the API payload, but coordinates remained. This is privacy risk since anyone on the channel could read the sender's location in plaintext. Anonymous mode is meant to combat this but still broadcasts the information and must be enabled.

Change

Replace the message text with a 6-char hex UID derived from a hash of the coordinates + timestamp, masked to 3 bytes. Coordinates stay in the API payload only. sendPing in connection.dart is simplified to accept the pre-built message string rather than lat/lon.

Why This Fixes It

TxTracker can still confirm an echo is ours via message content matching, but the message itself reveals nothing about the sender's location. ~16.7M options should be sufficiently unique in the listening window and keeps the message short.

@MrAlders0n
Copy link
Copy Markdown
Contributor

@fauxreigner-mb I do like this, give me a bit to review, I've been underwater. Appreciate you working on this!

@MrAlders0n
Copy link
Copy Markdown
Contributor

@CSP-Tom This proposal removes coordinates from the channel message altogether and instead uses a unique hash.

Lets chat about this :)

@fauxreigner-mb
Copy link
Copy Markdown
Author

@MrAlders0n no worries, appreciate you taking the time to review. There are definitely "better" ways to generate the message hash, either in the crypto.dart package or roll your own using dart:math, but using the .hashCode property seems good enough and keeps it simple.

@446564 446564 marked this pull request as draft April 15, 2026 21:33
@446564
Copy link
Copy Markdown
Collaborator

446564 commented Apr 15, 2026

changed to draft until a consensus is reached

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants