/SEC2122

Highly Dependable Systems 2021-2022 project

Primary LanguageJava

SEC2122

Project assignment for Highly Dependable Systems course (2021-2022).

Development of a highly dependable banking system, with Byzantine Fault Tolerant (BFT) guarantee, affecting both server and client processes.

How to run the project:

  • Using prebuilt binaries:

    $ ./client/target/appassembler/bin/client [port] [databasePath]
    
    $ ./server/target/appassembler/bin/server [serverName] [port] [databasePath] [debug]
  • Using maven

    • Install contract

      $ (cd contract; mvn clean install -DskipTests;)
    • Install library

      $ (cd library; mvn clean install -DskipTests;)
    • Run server : Each server should be run indicating a server name, port, database path, and a debug flag. Should use server names : server1, server2,server3, server4.

      $ (cd server; mvn clean compile exec:java -Dexec.args="server1 8081 db1 true";)
    • Run client (with default host "localhost", port 3333). Please use client names: c1, c2, c3, c4

      $ (cd client; mvn clean compile exec:java;)

How to run tests:

  • Run secure connection related tests. Direct to server instance.

    $ (cd server; mvn clean test;)