- Initial project scaffolding with Jetpack Compose.
- Basic Cryptography Manager (ECDH, ECDSA, AES-GCM utilities).
- Blockchain Engine (Block/Transaction models, SHA-256 hashing, Proof-of-Work mining).
- Basic P2P Networking (TCP Server/Client, Block broadcasting).
- Prototype UI (Glassmorphic chat interface, Node dashboard).
- Initial
README.mddocumentation. - Application Logo & Icons (Simplified Interlocking Rings design).
- Project Rebranding (Renamed to ChainChat).
- Handshake Protocol: Implement node-to-node handshakes to exchange public keys and identity info in
P2PManager. - Blockchain Sync: Implement
SYNC_REQUESTto fetch missing blocks when connecting to a new peer. - True E2EE Integration: Implement shared secret derivation in
ChatViewModelusing the recipient's public key.
- Message Decryption: Update
updateMessages()to attempt decryption of all transactions in the ledger using the user's private key. - Multi-Profile Switcher: Add UI and logic to toggle between "Alice" and "Bob" profiles on a single device for easier testing.
- Persistent Ledger: Save the blockchain to a local file or database (e.g., Room or simple JSON file) so history survives app restarts.
- Consensus Logic: Implement the "Longest Chain" rule to handle forks or discrepancies between peer ledgers.
- UI Polish: Improve the glassmorphic styling, add neon accents, and implement smoother transitions between chat messages.
- Network Discovery: Implement mDNS or similar for automatic local peer discovery without manual IP entry.
- Unit tests for
CryptoManager(signing/verification, encryption/decryption). - Integration tests for
BlockchainEngine(mining, chain validation). - Manual multi-device testing for P2P block broadcasting.