ist182069 / highly-dependable-notary

Highly Dependable Notary for ownership certification providing Byzantine-fault tolerance. Implemented in Java 8 achieving a final grade of 18.4/20 for the SEC course on the 2nd semester of 2018/2019.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The main goal of the HDS Notary is to certify the transfer of ownership of arbitrary goods between users.

This project's obtained grade was 18.4/20 and was evaluated by Professor Miguel Matos and Bolseiro Nuno Anselmo.

The authors were:

The main goal of the HDS Notary is to certify the transfer of ownership of arbitrary goods between users.


Platform

  • OS: Windows 10
  • Java/Javac version: javac 1.8.0_152-release

Test specs

This project was tested on a machine with the following specifications:

  • ASUSTek P8Z77-V Pro Motherboard
  • Intel core i7-3770 (Ivy Bridge) @ 3.40GHz
  • NVidia GTX 660 @ 2048 MB (Gigabyte)
  • 32GB @ 1866MHz RAM

Instructions

Install dependencies

cd common
mvn clean compile install
cd communications
mvn clean compile install
cd ccUtility
mvn clean compile install

Run notary

cd notary
mvn clean compile install

Run client

cd client
mvn clean compile install

Note: you can also use the batch file utilities to do it automatically


Assumptions

  1. Each user generates their keystore and extracts their public key with the use of keytool as exemplified in the batch file "generateUserKeystores.bat";
  2. Notary public key certificate is already pre-installed on every client application;
  3. Users public key certificates are shared in a meeting between users that want to communicate with each other.

About

Highly Dependable Notary for ownership certification providing Byzantine-fault tolerance. Implemented in Java 8 achieving a final grade of 18.4/20 for the SEC course on the 2nd semester of 2018/2019.


Languages

Language:Java 99.4%Language:Batchfile 0.6%