Creating a blockchain with your own hands in Python
Creating a blockchain with your own hands in Python
Blockchain is a decentralized database. Everyone knows a similar definition of blockchain, but in this article, we want to make a guide on how to create a blockchain with your own hands. This will give you a better understanding of the technology itself and maybe some practice in programming.
- THE BLOCKCHAIN WITH YOUR OWN HANDS: THE STRUCTURE OF THE BLOCKCHAIN
So, we will write the blockchain with our own hands in Python. To begin with it is necessary to determine with what parameters the data block itself is specified. As a rule, the block structure consists of the following components:
- Timestamp.
- The data itself.
- Index (optional).
For greater certainty in our own blockchain, we will use both the timestamp and the index. In addition, the data itself in the block is not fed in its original form, it is converted into a hash using the encryption function. The previous block is also hashed. We get that the last hash block will include:
- Timestamp.
- Index.
- Data.
- The hash of the previous block.
In the form of a code it will look like this:
- BLOCKCHAIN WITH YOUR OWN HANDS: THE FIRST BLOCK
Everything has to start somewhere. So the blockchain must have the first block. But a problem appears - the block must contain the hash of the previous block, and where to get it if we are talking about the first cell of the chain? It has to be entered manually, so that's what we'll do. The first block will have index 0, arbitrary data and arbitrary hash of the previous block.
- BLOCKCHAIN WITH OUR OWN HANDS: GENERATING NEW BLOCKS
At this stage, we already have the first block, but for the normal functioning of our simple blockchain, we need to set the algorithm of building the next blocks. It will be as follows:
- The function takes the previous block as a parameter.
- Form data of a new block from received parameters.
- Return the new block with valid data.
Thus by hashing information about the old block in the new block we will increase the chain's security, its verifiability and integrity. If this is not done, it will be easier to spoof data "from the past" in the blockchain, falsifying the present.
- BLOCKCHAIN WITH YOUR OWN HANDS: BLOCKCHAIN GENERATION
So, now we have ready block structure, first block and function that defines the algorithm of block generation. The smallest thing is left - to formalize the generation of the chain itself. The first block will be the beginning of the chain, and then it will be filled with new blocks. Since the so-called blockchain of our own hands is only a training sample, we will limit the generation of blocks to 20 pieces. The chain will be filled with a simple for-cycle:
Now we run our blockchain file and look at the result.
Of course, our blockchain is too far from the bitcoin chain, but it will do well as a sample for those who just begin to learn this technology. To make this chain work, we will have to introduce a lot of additional functions, e.g. to limit the number of blocks added per unit of time, to track the state of the chain on multiple computers, etc.
- Cryptocurrencies in Islam: Halal or Haram?
- What is more profitable PPS or PPLNS?
- Hybrid cryptocurrency exchanges: what is HEX?
- What is Dash (Dash) cryptocurrency?
- How to Know Mining: Key Terms
- The best software miners for a quick start
- What is a scam?
- What are parachains?
- What is NFT?
- What is Bitcoin?
- How to assemble a rig for mining with your own hands