Coder Social home page Coder Social logo

master-thesis-code's Introduction

master-thesis-code

Dependencies

go v1.20.5

Docker

Java 21 (for BFT-SMaRt)

Deployment

All files for deployment are located in the subdirectory deploy. Deployment scripts are provided for local and cluster deployment (TU Darmstadt DM Cluster). All scripts should be run with the project root as working directory.

Local

For local deployment, use the script deploy/local/run-etcd-local.sh. It will also install dependencies and build the required images before deploying them. After the first usage, if no rebuild is required, flags can be passed to skip rebuilding. The following flags are accepted:

--skip-install      - Skips installing etcd, but still rebuilds the docker image.

--skip-etcd-build   - Skips installing and building etcd.

--skip-da-build     - Skips building the da application and image.

--cluster-size <n>  - Deploys <n> etcd nodes and da instances. (default 2)

Cluster

For cluster deployment, use the script deploy/cluster/deploy-etcd-cluster.sh for etcd and deploy/cluster/deploy-cluster-bftsmart.sh for BFT-SMaRt. It uses the config file deploy/cluster/deployment-cluster.yml to determine the remote hosts to deploy on and the ssh user to use. Make sure the identity file is set up, or if password login is enabled, it needs to be provided during deployment for each host.

Experiments

Checkout branch performance-experiments to

  • run scripts for performance experiments: produces CSV files with client request timings
  • deploy etcd cluster or BFT-SMaRt cluster for fault experiments

Last relevant commit before thesis submission for the experiments: a4eca30b8966fc87bcc15ea8b688c5b8cbd1e724

To reproduce the fault experiments from the thesis, make sure install the forked projects instead of the original implementation:

Make sure to change REMOTE_DEPLOYMENT_DIR in deploy/cluster/.env according to your remote directory when using a cluster setup. Also, change the location of the BFT-SMaRt fork in build-bftsmart-client.sh and adjust cluster-specific information, i.e. user and host. For the BFT-SMaRt client, a Dockerfile is provided Dockerfile-bftsmart-client. For etcd, the client is run without docker.

Consensus UI

Checkout branch consensus-ui and run the script deploy/local/run-etcd-education.sh. This deploys the backend locally with an etcd cluster. For the frontend, please refer to https://github.com/FatProteins/consensus-ui.

Last relevant commit before thesis submission for the Consensus UI: e817b1e31f3d672012d0d9d2033bd80d79096a8d

Plotting Scripts

Additional scripts for plot creation can be found in https://github.com/FatProteins/master-thesis-scripts.

master-thesis-code's People

Watchers

Daniel Rotaermel 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.