dart_ipfs 1.3.1
dart_ipfs: ^1.3.1 copied to clipboard
Production-ready IPFS implementation in Dart with full protocol support, P2P networking, Gateway mode, and offline capabilities. Supports mobile (Flutter) and web platforms.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.3.1 - 2025-12-15 #
Fixed #
- Cross-Platform Compatibility: Implemented robust fallback for LZ4 compression. On systems where native binaries are missing (e.g., Apple Silicon), the node now detects the failure and gracefully falls back to GZIP, ensuring safe execution on all architectures.
1.3.0 - 2025-12-15 #
Added #
-
CLI Dashboard Completeness (Parity with Flutter App)
- Peer Manager: Full TUI for listing, adding, and disconnecting peers.
- PubSub Chat: Asynchronous chat interface with dedicated drawing loop.
- Files & Pinning: Pin/Unpin CIDs directly from terminal.
- IPLD Explorer: Navigate DAG nodes by CID.
- Bandwidth Stats: Real-time header metrics.
-
Security Hardening (Red Team Findings)
- DHT Sybil Protection: Implemented IP diversity checks in
RouterL2(Limit: 5 peers per IP). - Exploit Sanitization: Removed all raw exploit scripts (
scripts/red_team/). - Regression Testing: Added
dht_security_test.dartto enforce Sybil protection.
- DHT Sybil Protection: Implemented IP diversity checks in
Fixed #
- Code Quality: Resolved all lints in
node_native.dartandcli_dashboard. - Stability: Refactored CLI input/drawing loops to remove duplicate logic.
1.2.3 - 2025-12-15 #
Fixed #
- CI stability for
dart testand formatting checks. - Pub.dev publish readiness and workflow reliability.
1.2.2 - 2025-12-14 #
Fixed #
- Critical syntax error in
dashboard_screen.dart(restored CHAT tab). - Removed unused imports and variables in
local_crypto.dart,debug_peerid.dart, and tests. - Cleaned up lint warnings in
p2plib.
1.2.1 - 2025-12-14 #
Added #
-
Gateway Selector (User Request)
- Core: Added
GatewayMode(Internal, Public, Local, Custom) toIPFSNode - Flutter App: Added Gateway Dropdown to AppBar
- CLI Dashboard: Added
Mkey to toggle modes and Custom URL input
- Core: Added
-
DHT Value Operations
DHTClient.storeValue(): Store values in DHT via PUT_VALUE to K closest peersDHTClient.getValue(): Retrieve values from DHT via GET_VALUE queriesDHTClient.checkValueOnPeer(): Check if value exists on specific peer for replica health
-
IPFSNode Stream Upload
IPFSNode.addFileStream(): Memory-efficient large file uploads via streams
-
Enhanced Test Infrastructure
MockP2plibRouter.responseGenerator: Auto-response callback for network testing- Comprehensive RedBlack Tree test suite (8 tests)
- DHT value operations tests
- addFileStream test for stream-based uploads
- Total: 423 tests passing, 0 skipped
Fixed #
-
RedBlack Tree XOR Distance Comparator
- Now compares distances to root node instead of between peers
- Added byte-by-byte comparison as tiebreaker for peers at same distance
- Returns 0 only for identical peer IDs (proper duplicate detection)
-
RedBlack Tree operator[] Type Check
- Removed incorrect
common_tree.V_PeerInfotype check - Now returns search result directly
- Removed incorrect
-
RedBlack Tree Duplicate Handling
- Insertion now updates existing nodes instead of adding duplicates
- Entries list properly synchronized on updates
-
ReplicationManager Integration
- Now uses
DHTClient.storeValue()for replication - Implements
checkValueOnPeer()for replica health checks
- Now uses
Dependencies #
- Added
http_parser: ^4.1.0(required for pub.flutter-io.cn publish)
1.1.1 - 2025-12-13 #
Added #
- Comprehensive test coverage expansion (+106 tests)
- CID tests (30): Complete API coverage for CID creation, encoding, properties, codecs
- Block tests (20): Data structure validation and concurrent operations
- Error class tests (17): IPLD, Graphsync, and Datastore exception instantiation
- Message ID tests (5): UUID generation and uniqueness validation
- ByteReader tests (34): Complete CBOR utility coverage
Improved #
- Test quality and coverage
- Total tests: 358 (previously 252)
- Coverage increase: ~10-15% (from ~35-40% to ~45-50%)
- 100% pass rate on all committed tests
- Systematic API verification approach established
Fixed #
- Removed all lint warnings for zero-lint codebase
- Fixed always-true null checks
- Removed unused variables
- Maintains professional code quality standards
1.0.2 - 2025-12-12 #
Fixed #
- Relaxed
pathdependency constraint to^1.9.0to resolve conflict with Flutter SDK tools.
1.0.1 - 2025-12-12 #
Documentation #
- Added comprehensive Effective Dart documentation to 166 Dart files
- Documented all core library classes, interfaces, and data structures
- Documented protocol implementations (Bitswap, DHT, Graphsync)
- Documented network layer, services, and utilities
- All code passes
dart analyzewith zero warnings
1.0.0 - 2025-12-12 #
Added #
-
Complete IPFS Protocol Implementation
- CID v0 and v1 support with full encoding/decoding
- UnixFS file system with chunking and directory support
- DAG-PB (MerkleDAG) operations and IPLD traversal
- CAR file import/export functionality
- Content-addressable storage with pinning
-
P2P Networking
- Production-grade cryptography (secp256k1 + ChaCha20-Poly1305 AEAD)
- Bitswap 1.2.0 protocol for efficient block exchange
- Kademlia DHT for distributed routing and content discovery
- PubSub messaging support
- MDNS for local peer discovery
- Bootstrap peer connections
- Circuit relay support
- Auto-NAT detection
-
Services & APIs
- HTTP Gateway (read-only and writable modes)
- RPC API compatible with go-ipfs
- IPNS mutable naming system
- DNSLink resolution
- Content routing and provider system
- Prometheus-compatible metrics
-
Multiple Deployment Modes
- Offline mode: Local storage without networking
- Gateway mode: HTTP serving with optional P2P
- Full P2P mode: Complete network participation
-
Documentation
- Comprehensive README with installation and usage
- API reference and configuration guides
- Multiple working examples (blog, gateway, P2P)
- Architecture documentation
- Future roadmap (v1.1 through v3.0)
-
Examples
- blog_use_case.dart: Offline content publishing
- online_test.dart: P2P networking demonstration
- gateway_example.dart: HTTP gateway server
- full_node_example.dart: Complete node features
- rpc_example.dart: RPC API usage
- simple_test.dart: Basic operations
-
Testing
- Protocol compliance test suite (6 tests, all passing)
- CID, Kademlia, Bitswap, UnixFS, DAG-PB validation
Technical Details #
- Language: Dart >=3.5.4 <4.0.0
- Platform Support: Mobile (Flutter), Web, Desktop
- Security: Added
p2plibSybil protection (Max 5 peers/IP). - Core: Enabled LZ4 compression for Gateway cache (via
es_compression). - Storage: Hive-based local datastore
- Network: p2plib for P2P communications
- Crypto: pointycastle + crypto package
Quality Metrics #
- ✅ 0 compilation errors
- ✅ 0 static analysis warnings
- ✅ 100% protocol test pass rate (6/6)
- ✅ 100% feature completeness for v1.0
Known Limitations #
- LZ4 compression not available (package unavailable on pub.flutter-io.cn)
- COSE encoding has stub implementation (catalyst_cose limitations)
- LocalCrypto uses X-coordinate extraction for p2plib compatibility
None of these limitations affect core functionality or production readiness.
[1.0.0]: https://github.com/jxoesneon/IPFS/releases/tag/v1.0.0 has no functionality.
- A full version with working functionality is planned for the future.