Overview
Design and implement the core architecture for FLUX, a Python-based P2P data transfer application.
The system must enable reliable, encrypted, and schema-validated file transfers over unreliable networks, ensuring data integrity and extensibility.
Requirements & Tasks
1. Networking & Transfer Protocol
- Use Python
sockets for peer-to-peer communication.
- Support TCP for robust transfers and plan for UDP as an optional future extension.
- Implement multi-threaded upload/download with chunked streaming for large files (>10MB), allowing configurable chunk size.
- Integrate retry/backoff mechanisms to handle packet loss and network interruptions.
- Allow resuming interrupted transfers via chunk tracking or hash verification.
2. Security
- Integrate Mutual Authentication using PAKE (Password Authenticated Key Exchange) for secure session establishment.
- Apply AES-256 encryption to all file chunks.
- Use SHA-256 or HMAC for per-chunk integrity verification.
- Plan for ephemeral keys for forward secrecy.
3. Data Validation & Schema Enforcement
- Enforce JSON Schema validation before transfer to ensure producer-consumer compatibility.
- Support dynamic schema loading for extensible data types.
4. Compression
- Use ZStandard (zstd) compression for large files, configurable per chunk and level.
5. Resilience & Reliability
- Develop robust retry/backoff and multi-threaded error handling for failed transfers.
- Ensure efficient memory usage and non-blocking operations.
6. Modular Architecture
- Organize codebase into modules: networking, encryption, compression, schema validation, GUI, logging.
- Ensure code is extensible for new algorithms and authentication methods.
7. Logging & Debugging
- Implement detailed logging with configurable verbosity (using
rich or similar).
8. GUI Application
- Provide a Flet-based GUI for cross-platform users to send/receive files, configure options, and view real-time stats.
9. Testing & Documentation
- Write unit and integration tests for each module.
- Document installation, usage, and schema definitions.
References
- Existing codebase provides foundational file transfer and GUI logic; refactor and extend per above specs.
- Use inspiration from [permissionlesstech/bitchat] for encryption, chunk management, and resilience patterns.
This issue will track the implementation of the complete architecture. Sub-issues should be created for each major module and milestones
Overview
Design and implement the core architecture for FLUX, a Python-based P2P data transfer application.
The system must enable reliable, encrypted, and schema-validated file transfers over unreliable networks, ensuring data integrity and extensibility.
Requirements & Tasks
1. Networking & Transfer Protocol
socketsfor peer-to-peer communication.2. Security
3. Data Validation & Schema Enforcement
4. Compression
5. Resilience & Reliability
6. Modular Architecture
7. Logging & Debugging
richor similar).8. GUI Application
9. Testing & Documentation
References
This issue will track the implementation of the complete architecture. Sub-issues should be created for each major module and milestones