The user interface of your program should look something like this:
Choose an option:
Add a new block to the chain
View the chain
Check chain validity
Search for a block
Mine new block
Enter your choice:
Specific Requirements:
R1: Create a function for generating hashes
R2: Create a Block data structure
R3: Create a Blockchain data structure
R4. Create a program that adds blocks to your blockchain
R5: Print out the blockchain (view the chain)
R6: Create an algorithm that tests the validity of the blockchain
R7: Create a function that searches the blockchain for a particular hash
R8: Implement a function to “mine” a new block
R1: Create a “Block”
Assumptions:
All blocks hold string data
The string data is maximum 50 characters long.
A block is composed of the following properties:
Data you want to put in the block
Hash of the current block
The parameters for hashing is:
Current block data
Previous hash
Current date and time
R2: Create a hash for the block
Create the algorithm for generating a hash for the current block.
The formula for hashing a block is:
String dataToHash = (hash of previous block) + (current time) + (data in the current block)
R3: Create a Block data structure
The block has the following properties:
Properties
Description
Data in the block
String data
Maximum 25 characters in the string
Current time
Timestamp when the block was created
Previous hash
Hash of the previous block
The genesis block has hash = 0
R3: Create a Blockchain data structure
Create a blockchain data structure.
Implement the chain with the data structure of your choice (array, linked list, doubly linked list, stack, queue, etc)
R4. Create a program that adds blocks to your blockchain
Write a program that adds blocks to the blockchain.
Your program should:
Ask user what data they want to store (string data, maximum 20 characters)
Create a new block to store the user data
Add the block to the blockchain
R5. Print out the blockchain
Add an option to your program so the user can print out the entire blockchain.
The visual output should be something like this:
(Note: these are fake hashes)
Block 1: 192333101
Data = “Jenelle”
Previous Hash: 0
Block 2: 144000332
Data = “Peter”
Previous hash = 192333101
Block 3: 993811091
Data = “Roy”
Previous hash = 144000332
etc
etc
R6: Create an algorithm that tests the validity of the blockchain
Given a blockchain data structure, write a function to verify that every block in the chain is valid.
If the entire chain is valid, output: “Chain is valid” to the screen
Else, output the block(s) that are invalid + the reason why.
R8: Write a program to mine blocks
Program that can mine new blocks. → You do not need to add data to your new blokc. Just use (previous hash + x) ---> and solve for x
Note - this mining process might take a long time (and it may never complete, but that’s okay!)
Hi I am software engineer and have done many c++,c and java projects. You can discuss more details in chat so that we can negotiate the price accordingly. Thank you
Hello. I was one of the developers of cardano-sl cryptocurrency. You seem to require a simple blockchain implementation which I did (in Haskell). I can do it for you in any of the languages you listed, though the price will be somewhat higher for C or Java. I can start working on your project full-time right now.
Hi. How are you?
I read your description carefully and am very interesting in your project.
I can start right now and can help you.
If you hire me,i will do my best for your job and you can get the best results.
Looking forward to hearing from you.
Thanks.
I have analysed your requirement carefully and as per my previous experience i can work on this project for you.
I have extensive experience in required field.
I would be working on daily basis and thus will send you daily status for flawless monitoring of your project
Avin H.
HI I am experienced in C Programming Java Python etc I can start right now but i have few doubts and questions lets have a quick chat and get it started waiting for your reply
Hoping you in the best of health.
Right platform and on right direction. A strong and competent team members to manage your requirements. Once hiring means repeated hiring.
Expertise on:
1) Academic Writing and Proof-Reading
2) Report / Essay / Research / Dissertations Mentoring
3) Letters / Resumes / Professional Proposals Writing
4) Engineering Projects
5) Circuit Design and Development
6) Instrumentation (Process Automation)
7) Monitoring and Control Loops
8) Technovative / Business Ideas
9) Website Design & Development
Extra Services:
Stock management (Items and Kits)
VAT, customer and multi tiers taxation
Sale register with transactions logging
Quotation and invoicing
Expenses logging
Receipt and invoice printing and/or emailing
Barcode generation and printing
Suppliers and Customers database
Multiuser with permission control
Reporting on sales, orders, expenses, inventory status
Receivings
Giftcard
Rewards
Restaurant tables
Messaging (SMS)
Multilanguage
Selectable Boostrap (Bootswatch) based UI theme
Mailchimp integration
reCAPTCHA to protect login page from brute force attacks
GDPR ready
Thanks in advance
Salman Qureshi