Home/Docs
Specifications
A protocol with one implementation is a format, not a standard
MeshDTN is open source, and the specification is public specifically so a second implementation is possible. Build one. We’ll help.
Published protocol
Frame layouts, field by field. Every identifier, frame and byte — on the air and across the companion bridge.
Conformance vectors
A shared file both implementations test against, so two ends of the same wire can’t silently drift apart.
A Charter that argues with itself
It records the arguments against every decision as carefully as the arguments for — so anyone who disagrees has what they need to reopen the question.
Start here
The documents
The meshdtn repository holds the specifications. The implementations live beside it, in meshdtn-firmware and meshdtn-app.
Charter
Goals, scope, binding rules, what is permanently out of scope, and the open questions — with the case against each decision recorded beside the case for.
MeshDTN-Charter.mdProtocol
Every identifier, frame, field and byte — on the air and across the companion bridge. This is the document a second implementation is written from.
MeshDTN-Protocol.mdArchitecture
Repository structure, layers, module boundaries, build targets and test strategy across firmware and app.
MeshDTN-Architecture.mdAgainst DTN standards
Where MeshDTN sits relative to the existing delay-tolerant networking literature, and why it does not use BPv7.
MeshDTN-Against-DTN-Standards.mdConformance vectors
The shared test corpus. Two implementations that both pass these agree on the wire, which is the whole point of writing them down.
vectors/Notice & licenses
Attribution to MeshCore and zjs81/meshcore-open, every bundled license, and the regulatory facts with citations and no conclusions drawn.
NOTICE.mdStart here
What MeshDTN is, every decision taken and every item of work left — each claim carrying the file and line in the code that settles it.
MeshDTN.mdConventions
How the work is done — the rules every contribution is held to, including tests and documentation in the same pass.
CONVENTIONS.mdThe implementation
What the specification buys you, in running code
Two implementations — meshdtn-firmware for the radio and meshdtn-app for the phone — built against the same published protocol and the same conformance vectors.
The system, end to end
- Discovery and the companion bridge
- Sealed message delivery, end to end
- The bundle store and the kill index
- Fragmentation and reassembly across different peers
- Ranked reconciliation, with the exploration reserve
- Background scan scheduling, and the arbiter that decides when it may use the radio
- Sealing with X25519, HKDF-SHA256 and ChaCha20-Poly1305, from published libraries
Held to the vectors
The firmware carries 204 build environments, one per companion-capable board, and the app targets Android, iOS and desktop from a single Flutter codebase.
Both ends test against the same conformance corpus, so “it works here” and “it works on the wire” are the same statement. That corpus is published for anyone building a third.
Nothing here is audited
No security property in this project has been independently reviewed. Until it has been, every security property described here is a design target. Nothing in MeshDTN is “audited”, and the Charter forbids claiming otherwise.
MeshDTN uses standard, widely used primitives and invents none: X25519, HKDF-SHA256, ChaCha20-Poly1305 and HMAC-SHA256, from published libraries. There is no forward secrecy, and that is a deliberate trade for simplicity.
A library’s assurance covers the library, not the way this project combines it. Independent cryptographic review is where outside help is worth the most — the primitives are standard and the specification is public, which makes review tractable for anyone who does this professionally.
Contribute
Where help is most useful
Range and field data
From real terrain. Numbers from a bench are not numbers from a ridge.
iOS
The app is Flutter and targets iOS, and the platform work needs hands.
Cryptographic review
We use standard primitives and would value professional eyes. This is the gap that matters most.
Stations
Put one on a pole and tell us what happens over a month.
Build a second implementation. We’ll help.