FinalProject
$250-750 CAD
Kiszállításkor fizetve
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!)
Projektazonosító: #20826997
A projektről
9 szabadúszó tett átlagosan 467$ összegű árajánlatot erre a munkára
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. 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. Lookin Továbbiak
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 Továbbiak
Hello, i have read the details provided..please contact me to discuss more on the project deadline and some other few things
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
I'll be able to get this done quickly and to your liking. PM me over chat with more details or to get started. Thanks, Matthew
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 Pro Továbbiak