Giter VIP home page Giter VIP logo

noobcash's Introduction

noobcash

Distributed Systems, NTUA, 2019-2020

Team

Kelesis Dimitrios
Kontogiannis Andreas
Peppas Panagiotis

Description

The project is about a blockchain system developed in command-line interface (cli) with Restful API.

Noobcash consists of two main parts; a server and a client. Client sends commands to the server via REST API calls.
One participant is the master, and the others are the clients (children). In the beginning, all clients connect to the master. After everyone has been connected, the master creates the genesis block, which gives him 100*(num_children+1) coins. Then, he creates a transaction that gives 100 coins to each participant. Therefore, master ends up with 100 coins.

When receiving block_capacity valid transactions, the participant starts mining a new block, by calculating a nonce such that the first difficulty digits of the block SHA are zeros. The miner is a separate process, so that the participant can still handle other incoming requests or blocks. When a correct nonce value is found, the miner notifies the participant, who creates the new block and sends it to all other participants as well.

When receiving a valid block, child compares its previous_hash with the hash of the latest block in the chain. If they are equal, then the block is accepted. Otherwise, it is assumed that a different chain has been created, so the participant asks all other participants for their blockchains, adopting the largest one.

noobcash's People

Contributors

ddaedalus avatar

Watchers

James Cloos 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.