-
Notifications
You must be signed in to change notification settings - Fork 122
Mining and blockchain
Mining is a term referring to the generation of new blocks for Novacoin blockchain. It's required to provide confirmations for transactions and to protect the history of operations.
All miners have a copy of every unconfirmed valid transaction in own transactions pool. Normally mining process is performed in the four stages:
- Get a set of transactions from transactions pool;
- Calculate a merkle tree hash for this set of transactions;
- Create block header template and link it with this set of transactions using its merkle tree hash;
- Try to find suitable proof hash for block header created before.
Getting a proof is quite a difficult operation, the difficulty depends on the current number of participants. Each block header is linked to previous block header, so we have linked list of block headers, and a list consistency is guaranteed by difficulty. This linked list is also known as blockchain.
The only required property of proof is that it's extremely difficult to obtain, but very easy to check. There are a lot of proof concepts in existance, such as proof-of-work, proof-of-stake or proof-of-burn. Novacoin supports usage of stake or work to provide suitable proof for block header.