Skip to content

jean-voila/nexium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

246 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Nexium Logo

Nexium

A decentralized, blockchain-based cryptocurrency for Epita.

View Counter


πŸ“Έ Screenshots

Main Page

Main Page

Servers Page

Servers Page

Transaction Page

Transaction Page


✨ Features

πŸ”— Blockchain Architecture

  • 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.dat for optimized read/write operations
  • Bidirectional block traversal via hash-based caching system

πŸ” Cryptography

  • 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

🌐 Decentralized Network

  • 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

πŸ’Έ Transactions

  • 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

πŸ–₯️ Client Application

  • Cross-platform desktop app built with Tauri + SvelteKit
  • Modern UI with intuitive navigation
  • Contact management and transaction history
  • Real-time server connection status

πŸ”‘ EPITA Integration

  • GitLab API integration for public key retrieval
  • Login-based identity (firstname.lastname) for all users
  • Secure authentication via EPITA credentials

πŸ“‹ Overview

Main language: Rust
Target OS: Linux

πŸ‘₯ Team and Contacts

Name Email
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

πŸ› οΈ Development Setup

VSCode Extensions

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

⚠️ Important

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.

Developing with Tauri

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.

πŸ“„ License

See the LICENSE file.

About

πŸ”πŸ’΅ A decentralized, blockchain-based cryptocurrency for Epita.

Resources

License

Stars

Watchers

Forks

Contributors