A decentralized, blockchain-based cryptocurrency for Epita.
Main Page
Servers Page
Transaction Page
- Custom blockchain implementation inspired by Bitcoin's architecture
- Merkle Tree structure for efficient transaction verification with O(log n) complexity
- Proof of Work (PoW) consensus mechanism with adjustable difficulty target
- Binary storage of blocks in
blockchain.datfor optimized read/write operations - Bidirectional block traversal via hash-based caching system
- SHA-256 hashing β Custom implementation for transaction signing, block generation, and chain linking
- RSA encryption β Asymmetric cryptography using 1024-bit keys for secure message exchange
- Digital signatures β Transaction authentication via RSA signatures
- Peer-to-peer architecture ensuring high availability and fault tolerance
- Strong connectivity based on graph theory for optimized node communication
- Mempool synchronization across all network nodes
- EPITA login-based node restriction β One node per member to prevent 51% attacks
- Classic transactions β Transfer NXM (Nexium currency) between users
- Transaction fees in Β΅NEX/byte for miner incentives
- Optional encrypted descriptions using recipient's public key
- Extensible transaction types for future protocol versions
- Cross-platform desktop app built with Tauri + SvelteKit
- Modern UI with intuitive navigation
- Contact management and transaction history
- Real-time server connection status
- GitLab API integration for public key retrieval
- Login-based identity (
firstname.lastname) for all users - Secure authentication via EPITA credentials
Main language: Rust
Target OS: Linux
| Name | |
|---|---|
| William Valenduc | william.valenduc@epita.fr |
| Jean HΓ©rail | jean.herail@epita.fr (project manager) |
| Antonin Bessières | antonin.bessieres@epita.fr |
| Milo Delbos | milo.delbos@epita.fr |
Please install the following extensions:
- Rust β A bundle with useful extensions for Rust development
- Live Share β Share your code with other developers in real-time for live coding sessions
Before writing any code, change your Word Wrap setting to "wordWrapColumn": 80 in your VSCode settings. This is essential, as our CdC requires the project to respect the 80 characters per line rule. If you have any questions about this procedure, ask on the group's Discord server.
To test the nexium_client package, use cargo tauri dev instead of cargo run. This will start the Tauri application and allow you to test the client.
See the LICENSE file.



