psu cse 541 project idea
DESCRIPTION
Bitcoin Importer in Neo4J.TRANSCRIPT
CSE 541Importing & Processing BitCoin Blockchain with
Neo4J
Nitish UpretiMSCS
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.
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?
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.
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.
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.
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 !
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.
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.
Thank You!
Questions & Suggestions?