msgp2p_core 1.1.0
msgp2p_core: ^1.1.0 copied to clipboard
Pure Dart core engine for the msgp2p delay-tolerant opportunistic mesh sync protocol.
Changelog #
1.1.0 #
- KeyVault port (proposal 0001, step 2; Discussion #10):
KeyVault,IdentitySeeds,KeyVaultLoad,MemoryKeyVault(alsofromSeeds),KeyVaultCorruptedError,KeyVaultUnavailableError. - Store guard:
guardStoreIdentityrefuses to let a node author when the store does not belong to the vault's identity (UnsynchronizedIdentityException:storeEmpty,ownerMismatch). - Persistent author sequence: the author's
seqcounter was kept in memory only and started again at 0 on every start.MessageStoregainsgetOwnerPubkey,setOwner,getAuthorSeqandsaveOwnEnvelope, which stores an own envelope (originLOCAL) and raises the counter in one transaction; pruning never lowers it.SqliteMessageStorekeeps them in a new one-row tablelocal_identity, created on open. - LoRa Transport & 0-RTT Broadcast Mode:
- Added
recommendedFrameTimeout(up to 45 s for LoRa) andisBroadcastMediumtoTransportCapabilities. - Added
BroadcastFrame,BroadcastChunkPacket(magic0xBD, CRC-16),BroadcastChunkSlicer, andBroadcastChunkReassembler(broadcast_framing.dart). - Added
BroadcastTransportinterface andBroadcastEngine(broadcast_engine.dart) for 0-RTT flood publishing, reassembly, cryptographic verification, and direct SQLite ingestion over unidirectional or low-bandwidth radio links without interactive handshake overhead.
- Added
- Multiple Groups per Device (Multi-Tenancy):
- Added
GroupMembershipdomain model andGroupStorePoolwithinMemory()andsqlite()factory constructors to cleanly isolate SQLite databases (messages_group_<hex>.db), quotas, and message sequence spaces per group. - Added
MultiGroupBeaconManagerwith round-robin advertising rotation across active groups and constant-time token scanning matcher. - Added
closeLinkOnTerminationflag toSessionStateMachineallowing persistent connection reuse. - Added
MultiGroupSyncCoordinatorto sequentially execute sync sessions across all shared groups over a single physical link without radio reconnect overhead.
- Added
1.0.0 #
- Phase 5 Hardening & Production Release:
- Added
Envelope.maxCoreSizeBytes(4 KB hard limit) andEnvelopeSizeLimitExceptionenforcement (requirements.md ยง3). - Added
Envelope.decryptPayload()convenience method returning decodedMap<String, dynamic>. - Added
AdaptiveScanScheduler(NFR-PWR-01) with exponential back-off and immediate reset on peer discovery. - Hardened
SessionStateMachinewith constant-timegroupIdisolation checks onDATA,RECEIPTS, andREVOCATIONS, automatic dropping ofDATAenvelopes authored by revoked members, andrejectRevokedPeerHandshake. - Added security audit (
protocol/security-review.md) and NFR performance benchmarks (NFR-PERF-02,NFR-PERF-03,NFR-PWR-01).
- Added
0.2.0 #
- Added hash-addressed attachment blobs (
BLOB_WANT,BLOB_DATA,UPGRADE_OFFER,UPGRADE_ACCEPT) toSessionStateMachine,MessageStore,MemoryMessageStore,SqliteMessageStore, andGatewayClient. - Added BLE โ Wi-Fi Aware upgrade detection (
upgradeRecommended,pendingUpgradeBytes).
0.1.0 #
- Initial release of pure-Dart DTN engine: Canonical CBOR,
Envelope,MembershipCert,ServerReceipt,RevocationNotice,VersionVector,NoiseHandshake,SessionStateMachine,SqliteMessageStore,GatewayClient,FakeTransport, andMeshHarness.