# FinalProject

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

Specific Requirements:

R1: Create a function for generating hashes

R2: Create a Block data structure

R3: Create a Blockchain data structure

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)

Write a program that adds blocks to the blockchain.

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!)

Tentang Majikan:
( 0 ulasan ) Oakville, Canada

ID Projek: #20826997

## 14 pekerja bebas membida secara purata \$479 untuk pekerjaan ini

ShiaFirst

Hello, This project is quite easy for me, but I got couple of questions to clear before we proceed [login to view URL] message me to have a quick chat.

(69 Ulasan)
6.6
iridescent2x15

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

(80 Ulasan)
6.2
xinglong717

(49 Ulasan)
5.5
DianaBorisov

Hi, Blockchain is my top skill. Which language do you like? c, java, c++, ? please message me...

(26 Ulasan)
5.4
naryl

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 Lagi

(47 Ulasan)
5.5
HaryCoders

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 Lagi

(22 Ulasan)
4.2
ZhangHuaQiang

Hello. I am very pleasure the opportunity to discuss this job with you. I am a full time freelancer with skills and experience on Golang Angular magento,larabel,wordpress,codeignitor and react.js,vue.js,node.js,Djang Lagi

(22 Ulasan)
4.5
hanchenglu

Oh! You are so cool [login to view URL] it ok to not complete project? But I promise you that i should complete this project! I am full-time developer so the period is no problem for me. Just to introduce myself, I have more tha Lagi

(9 Ulasan)
4.3
Valuesolutions

(20 Ulasan)
5.2
michaels225

Hi,sir. Thank you for your job posting. I want you to have the honor of watching my bid carefully. As a desktop expert, I have enough experience in C/C++, java, Python, Software architecture , Datastructure and Algorit Lagi

(2 Ulasan)
1.8
anshsparkle

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

(1 Ulasan)
1.0
paulwest0041

Hello I am very familiar with your project since i am an expert in algorithm field. If you hire me, you will save time and effort. i am sure you will get the highest marks. Waiting for your reply, Paul West.

(0 Ulasan)
0.0
mdmdmd93

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