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!)
I am studying Engineering. I have read your project in detail and I am expert in this field. I had worked on organizing different datasets. I understand the basic purpose of your project. I can do this for you. Kindly contact me and share the details of the test you are going to take and other credentials, I assure you that I will provide you quality work within due time. Thanks
$10 CAD in 3 days
4.9 (20 reviews)
4.5
4.5
4 freelancers are bidding on average $89 CAD for this job
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
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
hey, I just gone through your provided description of project. After understanding your requirements and value of project,I found a way to implement it and which data structure to use. I just wanna discuss with you , if interested message me. we will discuss the requirements and time needed by this project.