Skip to content

A Cryptocurrency Protocol using FPGAs and Raspberry Pis~

License

Notifications You must be signed in to change notification settings

fangherk/MicroPCoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicroPCoin

An implementation of a cryptocurrency protocol based on the Bitcoin Protocol.

Getting Started

Cryptocurrency, such as Bitcoin, has generated a lot of attention in the recent years. The underlying technology has the potential to disrupt the global economy, though most people still do not have a full understanding of the technology behind it. We have decided to implement a simplified version of the Bitcoin protocol to demonstrate how people can transact digital currency. The blockchain technology behind the Bitcoin protocol and other cryptocurrencies requires lots of intensive computation, which is used for reaching consensus through a peer-to-peer network adhering to a protocol for validating new blocks. To account for intensive computations related to blockchain technology, we will demonstrate the utility of FPGAs in accelerating computations.

We will create a prototype system, composed of 2 users in the same network to demonstrate the core functionality of the Bitcoin protocol such as making transactions and generating coins (commonly known as Bitcoin mining). Specifically, two sets of a Raspberry Pi and an FPGA are used to represent two users in the network. The two sets can make transactions and perform proof-of-work (mining process). Another Raspberry Pi will be used to show the list of transactions in the network by displaying blockchain results on a monitor. Note that this last Raspberry Pi does not participate in any transactions making but focuses on illustrating the functionality of our prototype system, so it will be referred to as an observer.

Hardware Used

Design

Short:

  • FPGA handles proof-of-work and finds hash with SHA-256. it also finds the nonce
  • Raspberry Pi handles the API, moving data around for P2P connectivity through HTTP requests

Milestones

  • Raspberry Pi
    • HTTP Server, Networking Protocols
    • Miner Operations, Interface to FPGA
    • Node Operations, P2P Network
    • Operator, wallet and addresses setup
    • Blockchain Information transfer
  • FPGA
    • Miner, SHA-Algorithm Implementation
    • Blockchain Verification

Front End

FrontFace

Usage

cd html && sudo -E python3.6 app.py

Papers

See the following for more information!

Built With

  • SystemVerilog - The language used for the SHA-Algorithm to implement a hardware accelerator.
  • Python 3.6 - HTTP Server Setup with Flask for API endpoints.
  • C - Interfacing between Pi and FPGA.

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

About

A Cryptocurrency Protocol using FPGAs and Raspberry Pis~

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published