Blockchain Architecture

In this article we understand basic blockchain block structure and learn about the fields by taking example of a real block with block-number=#601439

In the Block we have following fields:

Block Number/Block Height

It represents the numb…


This content originally appeared on DEV Community and was authored by shivi28

In this article we understand basic blockchain block structure and learn about the fields by taking example of a real block with block-number=#601439

block601439

In the Block we have following fields:

Block Number/Block Height

It represents the number of a block in line, so the first block would be 1, the second 2, and so on to our block 601439.

Block size

Maximum limit for the amount of transactions. It is not the actual number of transactions allowed instead it is the size of transactions that is allowed.

Block Hash

A block hash in this case, which is created from the block header with SHA256

Version

This is a protocol version. Miners need to know protocol versions in order to be able to properly process blocks.

hashMerkelRoot

If all the transactions are used to create a single hash, this would be simple, and not what we have here!. This principle is not used because if we wanted to run a verification of a particular transaction we would need to know all of the other ones as well. This is doable, just less efficient than the Merkel tree approach.

In this approach , we only need some of the “hashes”. We go slowly, we first take hashes in a set of 2 transactions till we reach just one hash.

Merkel tree

Number of Transactions

Each block contains a number of transactions. Usually a maximum size is defined, but the number of transactions per block varies.

TimeStamp

This is the time when the hashing actually took place. It can be in a different format but for all blocks with the same number it should point to the same time. Notation difference is ignored.

Transactions

In this example transaction refers to payment, but different protocols can define transactions in different ways. Yet it does not always have to be an individual transaction. Instead it can just be observed as an event defined by a given protocol.

Bits

It can be a hexadecimal number. This is just another representation of difficulty

Difficulty

When the hashing process takes place, the difficulty is determined by the targeted number of zeroes that the hash needs to begin with. As more people involved in mining we need to increase the difficulty

Difficulty = expected/actual(available computation power)
if D >1 then increase(0.25, 4)
if D < 1, then decrease(0.25,4)
want no sudden change that’s why keeping this threshold
so newDifficulty = oldDifficulty * expected/actual
targetDiff = targetMax(=Bits)/difficulty

so, blockHash < targetDiff always.

Nonce

This is the data that we need to the block data to make block hash < targetDiff

hashPrefixBlock

This is the hash of the previous block, and is embedded into the current block. Hash should have a certain number of zeroes before it.


This content originally appeared on DEV Community and was authored by shivi28


Print Share Comment Cite Upload Translate Updates
APA

shivi28 | Sciencx (2022-04-18T05:34:00+00:00) Blockchain Architecture. Retrieved from https://www.scien.cx/2022/04/18/blockchain-architecture/

MLA
" » Blockchain Architecture." shivi28 | Sciencx - Monday April 18, 2022, https://www.scien.cx/2022/04/18/blockchain-architecture/
HARVARD
shivi28 | Sciencx Monday April 18, 2022 » Blockchain Architecture., viewed ,<https://www.scien.cx/2022/04/18/blockchain-architecture/>
VANCOUVER
shivi28 | Sciencx - » Blockchain Architecture. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/04/18/blockchain-architecture/
CHICAGO
" » Blockchain Architecture." shivi28 | Sciencx - Accessed . https://www.scien.cx/2022/04/18/blockchain-architecture/
IEEE
" » Blockchain Architecture." shivi28 | Sciencx [Online]. Available: https://www.scien.cx/2022/04/18/blockchain-architecture/. [Accessed: ]
rf:citation
» Blockchain Architecture | shivi28 | Sciencx | https://www.scien.cx/2022/04/18/blockchain-architecture/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.