Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nikoshet/noobchain
Blockchain Application - Noobcash - for 'Distributed Systems' M.Sc. Course at NTUA
https://github.com/nikoshet/noobchain
ajax blockchain docker flask html jquery python
Last synced: 5 days ago
JSON representation
Blockchain Application - Noobcash - for 'Distributed Systems' M.Sc. Course at NTUA
- Host: GitHub
- URL: https://github.com/nikoshet/noobchain
- Owner: nikoshet
- Created: 2020-03-17T22:49:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-03-21T22:19:01.000Z (over 2 years ago)
- Last Synced: 2024-04-19T19:08:00.934Z (7 months ago)
- Topics: ajax, blockchain, docker, flask, html, jquery, python
- Language: CSS
- Homepage:
- Size: 3.45 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Noobchain (A Fullstack Blockchain App With Flask)
Blockchain Project for 'Distributed Systems' M.Sc. Course 2019-2020.
Used: **Python, Flask, Docker, HTML, Ajax, Jquery, css**
## REST API Implementation
##### Backend
| URL | Type | Action |
|:--------------------------:|:----:|:-------:|
|/chain | GET |Get the blockchain from other nodes to resolve conflict|
|/transactions/view | GET |View transactions from last verified block|
|/transactions/create/browser| POST |Create a transaction via browser client|
|/transactions/money/sent | GET |Get money sent from verified transactions|
|/transactions/money/received| GET |Get money received from verified transactions|
|/transactions/create | POST |Create a transaction|
|/broadcast/transaction | POST |Broadcast a transaction to other nodes|
|/broadcast/ring | POST |Broadcast the node to other nodes (for Bootstrap node)|
|/broadcast/block | POST |Broadcast a block to other nodes|
|/nodes/register | POST |Register node to bootstrap ring|##### Frontend
| URL | Type| Action |
|:--------:|:---:|:--------------------------:|
| / | GET | Home Page |
| /wallet | GET | Node's wallet |
| /help | GET | User Manual |
| /about | GET | Application Information |
| /contact | GET | Contact page |
| /blockchain | GET | View Current Blockchain |## Project Structure
```
~/noobchain
│
└── backend
| | block.py
| | blockchain.py
| | node.py
| | transaction.py
| | wallet.py
│
└── public_keys
│
└── static
| └─ js
| └─ css
│
└── templates
│ └─ layout
│ │ │ base.html
│ │ │ footer.html
│ │ │ navbar.html
│ │ about.html
│ │ contact.html
│ │ help.html
│ │ home.html
│ │ wallet.html
│
└── transactions
│ └─ 3 nodes
│ └─ 5 nodes
│ └─ 10 nodes
│
│ main.py
```## Web Interface
## Setup
```
pip install -r requirements.txt
```
#### Run Application
##### Parameters
| Parameter | Info|
|:--------------:|:---:|
| -ip | IP of node |
| -p | Port of node |
| -bootstrap | Boolean - if the node is bootstrap |
| -ip_bootstrap | IP of bootstrap node |
| -port_bootstrap| Port of bootstrap |
| -nodes | number of nodes in network |
| -cap | capacity of each block in transactions |
| -dif | difficulty in mining of blocks |
##### Run Example
```
python3 noobchain/main.py -ip 0.0.0.0 -p 1000 -bootstrap True -ip_bootstrap 0.0.0.0-port_bootstrap 1000 -nodes 5 -cap 4 -dif 4
```## Contributors
[Nick Nikitas](https://github.com/nikoshet)
[Dimitris Zografakis](https://github.com/dimzog)
[Dimitris Lamprakis](https://github.com/amra13579)
---
### LicenceThe css code used is under the MIT License and can be found here: [darkly](https://bootswatch.com/darkly/).
The logo of the web interface is based on Bitcoin logo, and can be found [here](https://bitcoin.org/en/).
Nick Nikitas, Dimitris Zografakis, Dimitris Lamprakis.
Copyright © 2020