Giter Club home page Giter Club logo

kiro369 / devote Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 3.0 96.92 MB

Decentralized E-Voting Project Powered by Blockchain Technology and Deep Learning Biometric Authentication.

License: GNU General Public License v3.0

C# 42.49% Python 8.38% JavaScript 10.07% Shell 0.05% HTML 1.32% Kotlin 0.03% Swift 0.09% Objective-C 0.01% Dart 31.29% CMake 2.17% C++ 3.94% C 0.17%
blockchain decentralized deep-learning distributed-ledger-technology evoting evoting-application voting voting-application devote

devote's Introduction

DeVote

Decentralized E-Voting Project Powered by Blockchain Technology and Deep Learning Biometric Authentication.

Description

Applying DLTs to E-Voting is not easy and is a challenging task, and we love challenge.

  • We are using Blockchain as an example of DLTs (for educational purposes).
  • Our Blockchain uses LRN (Least Random Number) Consensus, in which all Blockchain nodes at time X-1 broadcast a generated random number, and at time X, the node with least random number gets to add the next block.
  • Our blockchain is a permissioned blockchain, that uses a private network that has its own DNS Seeder and is secured with AES encryption.
  • The AES key is exchanged over the network securely using Elliptic-curve Diffie-Hellman Key Exchange.
  • All stored information is hashed with Argon2id hashing algorithm.
  • All the data is stored using LevelDB.
  • The packets sent over the network are encoded with Google Protobuf.

Installation

First you gotta run the DNS Seeder, preferably on a static IP machine, you need to open a port for the DNS Seeder (any number) you can adjust the port number in Program.cs in DNSSeeder project

private static readonly int Port = your_port;

then in Program.cs in DeVote project adjust the following line:

DNSSeeder.AsynchronousClient seederClient = new(your_ip, your_port);

you need to open another port for the Node itself (DeVote), you can adjust the port number in Program.cs in DeVote project.

var server = new Server(4269);

After setting up the environment (steps below) adjust the paths appsettings.json in DeVote Project. This should be enough to get your Blockchain network up and running. Then to get the Flutter App running, you should configure the API, you can find how to configure it here DeVote API after you get the API running, adjust the API endpoint in

FlutterApp/lib/models/Ip.dart

to get the flutter app running.

To get the Desktop app fully running you need to setup the Python/DeepLearning environment, that can be found here. DeVote AI Environment

Tribute

This project is dedicated to the loving memory of our late dear friend and precious team member Ahmed Al-M'aandi whom his beautiful soul passed away and heartbreakingly left our world before this project could come to light. This is for you Ahmed, we hope you're proud of us, we will forever miss you, till we see you again.

devote's People

Contributors

ahmedelmaandi avatar ghazal20 avatar karim-o-anwar avatar kiro369 avatar mahmoudelmaandi avatar samuel2202-anis avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.