A secure and decentralized peer-to-peer messaging system built on blockchain technology. Send encrypted messages across a distributed network while maintaining transparency and integrity through blockchain verification.
This project demonstrates a basic blockchain-based messaging system with the following features:
- Distributed blockchain for message storage
- Encrypted messaging using AES-256
- Peer-to-peer network with gossip-based peer discovery
- Proof-of-work consensus mechanism
The system is split into four main components:
blockchain.go: Core blockchain implementationcrypto.go: Encryption/decryption utilitiesnode.go: P2P networking and peer discoverymain.go: Application entry point and demonstration
- Go 1.18 or higher
- Basic understanding of blockchain concepts
- Basic knowledge of Go programming
- Clone the repository:
git clone git@github.com:freeeakn/AetherWave.git
cd AetherWave- Ensure you have Go installed:
go version- Run the application:
makeThe current implementation runs a simple demonstration:
Creates a blockchain Adds sample encrypted messages between "Danya" and "Asur" Prints the blockchain contents and decrypted messages Starts a P2P network with three nodes
go run ./src -address="localhost:port" -name="Danya"go run ./src -address="localhost:port" -peer="<ip of another peer>:port" -name="Asur" -key="KeyOfAnotherPeer"src/
├── blockchain.go # Blockchain implementation
├── crypto.go # Encryption utilities
├── node.go # Networking and peer discovery
└── main.go # Main application
README.md # This file- Stores messages as transactions
- Implements proof-of-work mining
- Verifies chain integrity
- AES-256 encryption for messages
- Secure key generation
- TCP-based P2P communication
- Gossip-based peer discovery
- Periodic peer list broadcasting
Potential improvements:
- Add persistent storage
- Implement proper key management
- Add user authentication
- Enhance consensus mechanism
- Add message broadcasting
- Implement a user interface
- Error handling
- Message validation
- Proper network synchronization
- Message threading
Fork the repository Create a feature branch Submit a pull request with your changes
This project is licensed under the MIT License - see the LICENSE file for details.