Skip to content
This repository has been archived by the owner on Apr 27, 2022. It is now read-only.

Repository for the project in Distributed Systems course at ECE, NTUA 2021

Notifications You must be signed in to change notification settings

kitsorfan/Distributed-Systems

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoobCash💰

A simple blockchain system in Python, semester project for Distributed Systems course at ECE⚡, NTUA🎓, academic year 2021-2022

Python Flask Ubuntu Server

Byte Code Size # Lines of Code Last commit


📋Description

This repository contains an implementation of a simple blockchain system with proof of work consensus, named as NoobCash. The project was elaborated for the Distributed Systems course at ECE, NTUA, academic year 2021-2022.

Details:

  • We used 5 VMs for our cluster. Each VM had 1 or 2 threads, thus we had 5 or 10 nodes.
  • Every node is a miner too.
  • Communication is achieved with Flask REST API
  • A coordinator node is resposnible for bootstraping the system. After initial communication is established each client functions as an independent node.
  • A CLI app provides user functionality, interacting in the background with the server by REST point requests.

Project's assignement and report are written in greek.

👔Team Members

Name - GitHub Email
Stylianos Kandylakis gmail
Kitsos Orfanopoulos protonmail
Christos Tsoufis gmail

🖥Specifications of VM

OS CPUs RAM Disk space
Ubuntu 16.04 LTS (Xenial) 2 2GB 30GB

🛠Installation Steps

Install libraries

apt-get install zlib1g-dev
apt-get install build-essential

Install python 3.6

cd /opt

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

tar -xvf Python-3.6.3.tgz

cd Python-3.6.3

./configure

make 

make install

Install python 3.6 (Alternatively)

sudo apt install python3.6

Install python3-venv

sudo apt-get install python3-venv

Create virtual environment

python3 -m venv env

Activate virtual environment

source env/bin/activate

Install packages

pip3 install -r requirements.txt

Automatically create requirements.txt

pip3 freeze > requirements.txt # for python3

💡Execution Steps

Start flask server to each node

./noobcash.sh start 5000 

Initialize bootstrap (only at predifined bootstrap node)

./noobcash.sh init 5000 5

Connect every other node to the cluster

<PORT> and <IP> of current VM

./noobcash.sh connect <PORT> <IP> 

🔗Sources

📑About README

made with markdown

Learn more on READMEs:

About

Repository for the project in Distributed Systems course at ECE, NTUA 2021

Resources

Stars

Watchers

Forks

Languages

  • Python 90.6%
  • Shell 9.4%