psu cse 541 project idea

10
CSE 541 Importing & Processing BitCoin Blockchain with Neo4J Nitish Upreti MSCS

Upload: nitish-upreti

Post on 29-Jan-2015

108 views

Category:

Technology


6 download

DESCRIPTION

Bitcoin Importer in Neo4J.

TRANSCRIPT

Page 1: PSU CSE 541 Project Idea

CSE 541Importing & Processing BitCoin Blockchain with

Neo4J

Nitish UpretiMSCS

Page 2: PSU CSE 541 Project Idea

BitCoin 101

• BitCoin is a crypto currency where the creation and transfer of BitCoins is based on an open-source cryptographic protocol independent of any central authority.

• Future of online currency?

• Impact on Privacy, Criminal Activities & Taxation.

Page 3: PSU CSE 541 Project Idea

Challenges with P2P Currency

• How to regulate the amount of minted currency?

• How to prevent double spending?

• How to enforce anonymity?

• How to scale the currency?

Page 4: PSU CSE 541 Project Idea

Regulating the minted Currency

• Mining, or generating, is the process of adding transaction records to BitCoins block chain of past transactions.

• Computationally Difficult Problem.

• Mining a block is difficult because the SHA-256 hash of a block's header must be lower than or equal to the current target ( agreed by the network) in order for the block to be accepted by the network.

Page 5: PSU CSE 541 Project Idea

Preventing Double Spending

• BitCoin protects against double spending by verifying each transaction added to the block chain to ensure that the inputs for the transaction had not previously already been spent.

• A block chain is a transaction database shared by all nodes participating in a system. A full copy of a currency's block chain contains every transaction ever executed in the currency. With this information, one can find out how much value belonged to each address at any point in history.

Page 6: PSU CSE 541 Project Idea

All Hail Neo4J !

• Neo4J is a NoSQL graph database.• The data is stored in a graph model.• Full ACID transactions with Graph Query

language.• Perfect fit for associative data sets.• Scale easily and provide a way around

expensive join operations.

Page 7: PSU CSE 541 Project Idea

Project Objectives

• Building tools to import block chain data in Neo4J. ( 9.2 GB as of 15th September )

• Generating Charts & Stats :Total BitCoins in circulation.Market Capitalization.Total Transaction Fees & Number of Transactions.Hash RateBlock Chain size.

And much more !

Page 8: PSU CSE 541 Project Idea

A reusable JRuby gem for Import

• Building a JRuby gem (neobitcoin) : 1. Why JRuby over MRI ?

( Avoiding REST API Overhead )

2. Using JSON RPC to connect to a BitCoin server running at localhost.3. Importing Block Chain data and storing it appropriately in Neo4J.

Page 9: PSU CSE 541 Project Idea

Generating Charts & Statistics

• Building a Ruby on Rails web application using this gem with HighCharts JS API to generate statistics & Charts.

• Time Permitting : Working on a Visualization for BitCoin block chain based on Neo4J.

Page 10: PSU CSE 541 Project Idea

Thank You!

Questions & Suggestions?