Skip to content
/ R-Cell Public

A self-made cryptocurrency using Block-chain technology in Python

Notifications You must be signed in to change notification settings

AsRaNi1/R-Cell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

R-Cell🪙

The project aims at building its own cryptocurrency from scratch using block chain technology. The project uses Python language along with Flask Frameworks to deploy it on a localhost server. This project therefore not only gets us to know about block chain, encryptions and keys but also brings us closer to the world of cryptocurrency whose value is increasing day by day in the modern era.

📃Table Of Contents

🙂Introduction

🤔About Project

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. This project enhances the knowledge of blockchain technology which has a very high potential in future.

⚙️Tech-Stack

Python Java Script css html flask VS Code MySQL Block-Chain

📁File Structure

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

⚒️Getting Started

😁Pre-requisites

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:
    $ mysql -u root -p
    
    and enter the password
  • 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));
    
    $ CREATE TABLE port5001(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

💻Usage

Assuming you have git, follow the following process

  1. Clone the Git Repo:

    $ git clone https://github.com/AsRaNi1/R-Cell.git
    
  2. Go into the Repo directory

    $ cd ../R-Cell
    
  3. Run the app.py file in the directory with a port number

    $ python app.py 5000
    
  4. Run app.py again but this time witha different port number, 5001

    $ python app.py 5001
    
  5. 2 local-host server address will open on the 2 different terminals image image

  6. 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

  7. 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🤑

📷Glimpses

image

Gdrive

Drive Link

😵‍💫Trouble Shooting

The making of this project tackled numerous obstacles. Some were tricky, while some were very easy to solve.

  1. 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.
  2. 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.
  3. 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.
  4. Programming: Some of the members were seeing some new python syntax's and how to use the different modules.
  5. Debugging: No comments.
  6. Choosing a good website design: Choosing this was so tough that we try to keep adding new features regularly.
  7. Deploying the blockchain: To deploy it on a server was not possible since blockchain is de-centralized, therefore for this SQL Tables were used for each user.

🔮Future Scope

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

👨‍💻Contributors

🙏Mentors

A very special thanks to the mentors!!