Skip to content

Dredegui/SEC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

HDSLedger (IST University Project on Highly Reliable Systems)

Introduction

HDSLedger is a simplified permissioned (closed membership) blockchain system with high dependability guarantees. It uses the Istanbul BFT consensus algorithm to ensure that all nodes run commands in the same order, achieving State Machine Replication (SMR) and guarantees that all nodes have the same state.

Requirements


Configuration Files

Node configuration

Can be found inside the resources/ folder of the Service module.

{
    "id": <NODE_ID>,
    "isLeader": <IS_LEADER>,
    "hostname": "localhost",
    "port": <NODE_PORT>,
}

Dependencies

To install the necessary dependencies run the following command:

./install_deps.sh

This should install the following dependencies:

  • Google's Gson - A Java library that can be used to convert Java Objects into their JSON representation.

Puppet Master

The puppet master is a python script puppet-master.py which is responsible for starting the nodes of the blockchain. The script runs with kitty terminal emulator by default since it's installed on the RNL labs.

To run the script you need to have python3 installed. The script has arguments which can be modified:

  • terminal - the terminal emulator used by the script
  • server_config - a string from the array server_configs which contains the possible configurations for the blockchain nodes

Run the script with the following command:

python3 puppet-master.py

Note: You may need to install kitty in your computer

Maven

It's also possible to run the project manually by using Maven.

Instalation

Compile and install all modules using:

mvn clean install

Execution

Run without arguments

cd <module>/
mvn compile exec:java

Run with arguments

cd <module>/
mvn compile exec:java -Dexec.args="..."

This codebase was adapted from last year's project solution, which was kindly provided by the following group: David Belchior, Diogo Santos, Vasco Correia. We thank all the group members for sharing their code.

About

University project with Instituto Superior Tecnico in Highly Reliable Systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages