The financial and technological industries are traverse through the possibilities in blockchain. A blockchain is a distributed ledger of all transactions in a bitcoin mined process. Blockchain is underlying technology behind many cryptocurrencies. Blockchain provides security, anonymity and data integrity without intermediary organization, due to this reason it creates more interest to research on Blockchain. Cryptocurrencies have emerged as important financial software systems. Mining adds records of past transactions to the blockchain, allowing users to reach secure, robust consensus for each transaction. Cryptocurrencies lack a central authority to mediate transactions because they were designed as peer-to-peer systems. They rely on miners to validate transactions. Cryptocurrencies require strong, secure mining algorithms. In our project, we have discussed the approaches to develop a robust blockchain network, explored various cryptocurrency mining algorithms and consensus protocols. Understanding these, we developed our own cryptocurrency and finally made a front-end application which we have deployed for public use.
10. The AIM OF THIS PROJECT is to realise the full potential of blockchain by
developing our own cryptocurrency. This will be done in various stages which
includes the development of the backend systems, where we will code
blockchain objects and implement the core logic to power the blockchain.
This will be followed by creating a frontend application, which will be a web app
that will allow people to use our blockchain based cryptocurrency. Finally, we
will deploy this project in a public environment so that anyone can use it with
our project’s url.
The whole development will be done in a test-driven manner, where we will test
various test-cases of backend.
11. Tools and Technologies Used
● A code editor and command line application: Microsoft Visual Studio and Git Bash
● Node.Js: The development of backend and logic is implemented using Javascript.
● Express Framework: Express is a minimal and flexible Node.js web application framework that
provides a robust set of features to develop web and mobile applications. It will allow the
blockchain instances to read and write to each other by HTTP requests.
● PubNub: PubNub is a tool to implement real-time publisher/subscriber messaging API.
Publish/subscribe messaging, or pub/sub messaging, is a form of asynchronous service-to-
service communication used in serverless and microservices architectures. In a pub/sub model,
any message published to a topic is immediately received by all of the subscribers to the topic.
It is used to give the blockchain real-time server to server networking capabilities.
● React.Js: It is a javascript library used to build user interfaces. It was used in our frontend
implementation of the application.
● Heroku: Heroku is a cloud platform as a service (PaaS) supporting several programming
languages. We will be using this platform to host our application and deploy for public usage.
13. Backend Blockchain
IMPLEMENTED
DISTRIBUTION AND
DECENTRALIZATION
02
● Interaction with HTTP requests with
backend via Express API
● GET + POST request to Read/Write
● Realtime Messaging through PubNub.
BUILT THE BASIC
BLOCKCHAIN
ARCHITECTURE
01
● Genesis Block
● Functionality to Mine Block
● SHA-256 + Proof of Work System
14. Backend Cryptocurrency
VALIDATIONS + ADD
TRANSACTIONS TO
NEW BLOCK
03
● Core transaction miner class
● Mining transaction through API +
Calculating Wallet Balance
● Validating transaction data t
TRANSACTION POOL02
● Core transaction pool class
● Reading and Updating the pool through
APIs
● Synced the transaction pool map.
WALLETS, KEYS AND
TRANSACTIONS
01
● Core wallet class.+ Transaction Class
● Cryptographic key pair and public key
addressing system
● Signature generation + verification
15. Frontend Application
TRANSACTION POOL
+ CONDUCT/MINE
TRANSACTION
02
● Created a toggle-able transaction
displays.
● Conducting transactions
● Visualized the transaction pool in real
time.
● Mining a block through frontend.
BUILT THE
FRONTEND USING
REACT.JS + JS
01
● Hosting the frontend page using the
express server.
● Used fetch API to request backend
data and serve it to frontend
● Visualized the blocks from the
backend.
16. Final Step is to deploy our
application on Heroku for public
access in the following URL:
https://the-cryptocurrency.herokuapp.com/
18. “The root problem with conventional currency is all the trust that’s
required to make it work. The central bank must be trusted not to
debase the currency, but the history of fiat currencies is full of
breaches of that trust. Banks must be trusted to hold our money
and transfer it electronically, but they lend it out in waves of credit
bubbles with barely a fraction in reserve. We have to trust them
with our privacy, trust them not to let identity thieves drain our
accounts.”
- Satoshi Nakamoto, Founder of Blockchain