I need like a bitcoin block chain parser application. Technical requirements/acceptance criteria below:
Technical requirements:
- The program has to be written in C#. ...or I might accept something in Python. We can discuss. C# Preferred, for sure.
- I want this to be a console app.
- The application will dump the parsed data to CSV files that I can import to a database.
- The data structure will be fully normalized. For example, there will be at least two files per block file: one CSV for the block headers and another CSV for transactions.
- The data structure will include *all* fields in the blockchain: block number, previous block hash, merkle tree hash, block time stamp, transactions, addresses, send/receive amounts, etc... everything (including script block and other stuff like that).
- The files will be named according to their original file number. For example, if a bitcoin blockchain file is named [login to view URL], then the CSVs parsed from it will be "[login to view URL]" and "[login to view URL]". There may be other files, depending on what you have to do to produce a normalized set of CSV files. The point is that the files should load to a database with a normalized schema (complete with keys for joining - create on the fly, if necessary).
- The data in the CSV files must be escaped appropriately. Include a variable in the code to change the text qualifier. Most CSVs have a quote (") as their text qualifier, but if there are quotes in the script block of a block (or other parts of the blockchain) then using a quote character will not work. In that case, some CSVs will not import to the database! Probably use a text qualifier something like ^|^ so that the parsed CSVs are easy to import into a database.
- The application will take a directory to look for the bitcoin blockchain files (for example: string bitcoinBlockPath = @"C:\ejh\documents\btc\data\";)
- The application will take another directory to put the parsed CSV files (for example: string parsedCsvPath = @"C:\ejh\documents\btc\parsed\";)
- The part of the code that dumps data to the CSVs should be contained in its own .cs file. I might want to change the code later to dump to a database. This should be easy to do in its own .cs file.
- The application should probably be multi-threaded (i.e., create a queue of files to be parsed from the directory where the blockchain is stored and have threads work through the queue).
- Preferred, but perhaps not required (discuss): provide a method that computes and persists the hash of each block (so that I can navigate up the chain from a subsequent block's "prior block hash" field)
Acceptance criteria:
- A fully working Visual Studio project coded in C#.
- The application must parse the **entire** bitcoin blockchain.
- I do not need the CSV files; I only need the entire Visual Studio solution & code.
- If you find something open source and can refactor it to meet the requirements, that is fine. There are quite a few different Git repos. If you use a Git project be careful if the repo hasn't been committed to in a long time. I need the application to parse the whole blockchain -- including any places where the structure/block size/etc may have changed.
If you have questions, let me know. I might be missing requirements or may have failed to address something. Happy to discuss higher level questions or technical specifics.
I have briefly read the description on research development, and I can deliver as per the requirements however I need us to discuss for more clarity on the details, deadline and budget as well.
Relevant Skills and Experience
blockchain
Proposed Milestones
$155 USD - 1
Hi
I've reviewed your complete job description, I have completed lot of projects in my career with high level of my client’s satisfaction ,
Relevant Skills and Experience
I can strongly assure you that I will be able to provide you work according to your desire.
Message me for discussing more about your project
Have a nice time
Thank u
Proposed Milestones
$30 USD - initial milestone