- Introduction
- Getting Started
- Glimpses
- Google Drive Link
- Trouble Shooting
- Future Scope
- Contributors
- Mentors
The project uses Blockchain Technology by implementation through Python and Flask in the backend for a server. It further uses SQL database for storing the user data such as password, username, email, account balance etc. Through HTML/CSS and JavaScript the Blockchain is deployed on a website. The website is on a local-host which is provided a server through ngrok. This project enhances the knowledge of blockchain technology which has a very high potential in future.
R-Cell(main)
├─ static
│ ├─ css
│ │ ├─ index.css
│ │ ├─ layout.css
│ │ ├─ login.css
│ │ └─ register.css
│ └─ images
│ ├─ background.jpeg
│ ├─ favicon.ico
│ ├─ favicon2.png
│ ├─ home.png
│ └─ profile.png
├─ templates
│ ├─ handlers
│ │ └─ 404.html
│ ├─ includes
│ │ ├─ _formhelpers.html
│ │ └─ _messages.html
│ ├─ buy.html
│ ├─ dashboard.html
│ ├─ index.html
│ ├─ layout.html
│ ├─ login.html
│ ├─ register.html
│ └─ transaction.html
├─ app.py
├─ blockchain.py
├─ forms.py
└─ sqlhelpers.py
The project involes the installation of following libraries and environment:
- Firstly obviously you should have Python3.
- Some basic libraries and frameworks will come pre-installed but you'll require MORE!!
- Flask: This the the framework that supports the website so installing this is a must else it'll throw ERRORS!!
- Requests: This module is used only once :(, but none the less it is important.
- An SQL connection with Flask: This library ensures a connection between the MySQL Database and the Flask framework.
- wtforms: A python library used for getting inuput from a user in forms
Install all these requirements:
$ pip install -r requirements.txt
- After install Mysql on your PC open your prompt and type:
and enter the password
$ mysql -u root -p
- After follow thw following steps:
$ CREATE DATABASE crypto;
$ USE crypto;
$ CREATE TABLE users(name varchar(50), email varchar(30), username varchar(30), password varchar(100));
$ CREATE TABLE port5000(number varchar(10), hash varchar(64), previous varchar(64), sender varchar(30), recipient varchar(30, amount varchar(30), nonce varchar(20));
This is for 2 ports, for multiple ports make multiple tables and thus make changes in the list of connected tables in the app.py file accordingly$ CREATE TABLE port5000(number varchar(10), hash varchar(64), previous varchar(64), sender varchar(30), recipient varchar(30, amount varchar(30), nonce varchar(20));
Assuming you have git, follow the following process
-
Clone the Git Repo:
$ git clone https://github.com/AsRaNi1/R-Cell.git
-
Go into the Repo directory
$ cd ../R-Cell
-
Run the
app.py
file in the directory with a port number$ python app.py 5000
-
Run
app.py
again but this time witha different port number, 5001$ python app.py 5001
-
2 local-host server address will open on the 2 different terminals
-
Register 2 accounts on the 2 different ports and thus there 2 ports become 2 different users. For more users make more tables and add them in the list of connected users in app.py
-
Now show this to your friends and boast about how you've created your own crypto-currency and that you're going to become a millionaire🤑
The making of this project tackled numerous obstacles. Some were tricky, while some were very easy to solve.
- The first problem faced was that the team was not working 🙂. This was the most tough and complex problem to solve since each member had to come out of their comfort zone and contribute.
- Installations: The various modules to be installed keep getting updates regularly and so does their way of working, so managing to work with different versions of the same package/module was tricky indeed.
- Understanding: Understanding Block-Chain, i.e getting its intuition at first was a bit difficult but eventually as we progressed the concept was well inherited.
- Programming: Some of the members were seeing some new python syntax's and how to use the different modules.
- Debugging: No comments.
- Choosing a good website design: Choosing this was so tough that we try to keep adding new features regularly.
- Deploying the blockchain: To deploy it on a server was not possible since blockchain is de-centralized, therefore for this Ngrok was used to create local-host tunnels.
Here are a few things we are planning on adding in the future
- Wallet
- mempools
- The webdev part requires a lot more efforts and we'll try and iumplement that throught react.js
A very special thanks to the mentors!!