Skip to content

kgediya/certio-chain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Name

Certi-O-Chain 👾

Description

In today’s world there are people who can easily with just some clicks can get any certificate they want and with the desired grades. These hackers break in to the system and modify things in his/her favor. So there is a definite need to put a stop to this disaster, what’s the solution? You may ask. The answer is Blockchain. Using Blockchain we can avoid this problem. In simple terms, a Blockchain can be described as an append-only transaction ledger. What that means is that the ledger can be written onto with new information, but the previous information, stored in blocks, cannot be edited, adjusted or changed. This is accomplished by using cryptography to link the contents of the newly added block with each block before it, such that any change to the contents of a previous block in the chain would invalidate the data in all blocks after it.

What does it do?

  1. Blockchain keeps a record of all data exchanges.
  2. It utilizes a distributed system to verify each transaction.
  3. Once signed and verified, the new transaction is added to the blockchain and can not be altered.

So, how does Certi-O-Chain make use of this amazing technology? The certificate data from our website is stored on the block-chain nodes then it is deployed onto the Blockchain network, here the data is immutable and is secure. Whenever someone or a company wants to validate if the certificate and data associated with it is legitimate they just need to enter the key id of the certificate on our website and all the associated data with that certificate will be provided. What if an hacker breaks into our website? Then there is no need to worry because even if our node is effected by the hacker our data is distributed over the Blockchain network; so even if one or more nodes are corrupted then it will not affect the data. If any changes are detected then we just load the longest valid chain.

Setup

  1. Run python node_server.py
  2. Run python run_app.py
  3. Use ngrok to host it publicly Append this to your ngrok config file: tunnels:
    first:
    addr: 5000
    proto: http
    second:
    addr: 8000
    proto: http
  4. start localhost:5000 and press on request mining to start auto-mining

Functions 🛠

  1. Decentralized Certification
  2. One Click Certificate Validation
  3. Provides a network in which Multiple peers can connect.
  4. Security.

Use Case Diagram:


Technology stack / technology used ( Very Detailed ) 🧬

Langugages:

  1. Python : It is used as a core-backend language here along with flask to create a peer to peer connected block-chain. The Whole block-chain is built upon python and then using flask and ngrok, a publicly accessible version is formed.

  2. HTML/CSS : Front end is built using HTML & CSS

Frameworks:

  1. Flask : Flask is a Python web framework.Flask can be used for building complex , database-driven websites,starting with mostly static pages. Flask is a micro-framework for Python. It allows you to build websites and web apps quite rapidly and easily, it's really good and light. We have utilised the features of this framework to power our Dapp

Libraries:

  1. pdfkit : For converting html data to pdf for certificate creation
  2. binascii : Used for Hexing certificate pdf for validation
  3. requests : Requests allows you to send organic, grass-fed HTTP/1.1 requests, without the need for manual labor
  4. ngrok : Used for publicly hosting local host environment

Limitations

As the certification data is stored on block-chain, and thus immutable,it is nearly impossible to change any mistakes while issuing certificates

Future Aspects

The current version simulates a peer to peer connected public chain decentralized app. fundamentals of the blockchain are illustrated here, and there are a lot of innovations currently happening in the field. There are different mining algorithms (like Proof Of Stake) and their variations. There are different consensus techniques too. There are permissioned blockchains other than Public blockchains. There are different ways of storing data in the chain. And there are different kind of data that different applications store in the blockchain. There are technologies like ethereum that allow even code to be run in a distributed fashion (aka Smart Contracts). All these innovations form grounds for different Cryptocurrencies and blockchain technologies that you'll see around you. But the fundamentals are more or less the same. So there's a lot more to explore!

Contact info ( emailid - github id )

Krunal B Gediya : kgediya0898@gmail.com | kgediya
Mrityunjai R Mishra: mriityunjaimishra1402@gmail.com | MrityunjaiMishra
Akash A Mishra: akashmishra.akm@gmail.com | -
Kunal K Kasa: kunalkasa142@gmail.com | KunalKasa

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published