Skip to main content

[Blockchain]Structure of Blockchains

Structure of a Blockchain
A blockchain at its simplest idea, is a huge ledger containing crucial information about particular transactions. Imagine a big list containing a lot of rows with information in it. Well, that is just what a blockchain is. The whole ledger is known as the blockchain and each row in it represents the blocks. A block contains all important information on a particular transaction.



To begin, a blockchain has a genesis block, which is the one at the very beginning of the chain. As for the other blocks, they will all have some information before it and after it. Informations vary depending of the purpose of the project. For example, one transaction in a block would look like this:-

In the case of bitcoins, IINW, a block is generated every 10 minutes. A block, basically contains transactions occured within a period of time. After recording transactions within those 10 minutes, the blocks are added to a chain of blocks and other transactions are recorded in the next block. As seen in the image above, a transaction in bitcoin contains, Numer of transactions in the block, size of the block, a block reward, the timestamp and many more. You can refer to the actual link where I cropped this picture.

Technical Stuff
At its core, blockchain technology is a peer-to-peer technology that uses a mathematically secured algorithm to distribute a ledger that keeps track of every single transaction happening across the network. The term Blockchain simply refers to a chain of blocks. Every 10 minutes, the blockchain network creates a new block in the case of bitcoins.
A block basically contains several rows of data, such as id, timestamp, data and other data. In the case of bitcoins, it contains  a previous hash. A blockchain, basically, is the backbone of the network. It is a ledger in the network into which every block is pushed in.

Hashing
As stated earlier, blockchain links all block together. One block contains multiple transactions. The way to store the information is very important since you are dealing with millions of anonymous people on the internet. A hashing method is used to keep the information safe in the block. Multiple logical implementations are involved in a blockchain, for instance, to check whether the hash of the previous block is unchanged. This is the role of miners in Bitcoin. A mining software looks for new blocks across the network. Once it finds one, it hashes all its transactions, using a mathematically secured algorithm and the output(hash) generated is kept within the block itself. The hashing algorithmn is generally a bit like this:
hash = transactions[i] + hash[i - 1] + nonce;

If the hash output from the algorithm does not match the required format, the nonce is incremented and the data is hashed again, until the required format is obtained.

If bitcoin is just a number, does that make actual money($) just paper at the end?
..
~ just wondering... :/

Comments

Popular posts from this blog

How to install the FReMP Stack on Ubuntu 20.04?

Technology keeps on evolving everyday and developers constantly look for more and more things to get their hands-on. In this article, I will be introducing a new full stack framework, called FReMP . The abbreviation used is not the best one, but it just gets the work done in justifiable ways. What on earth is FReMP stack? The FReMP stack is a highly scalable full stack framework, which can be used to build awesome web apps. The acronym stands for F lask, Re actJS, M ongodb and P ython. Unlike other famous stacks such as MEAN and MERN, the FReMP stack uses Python to handle back-end operations. Examples of such operations can be machine learning and artificial intelligence operations, web scraping tools or digital image processing. Step 0: Update your list of installed packages While this is optional, it is always a good practice to update your list of packages and upgrade them for newer versions before starting any installation on your environment. Run the following to do so: $ apt-get

Learn how to make an auto login bot with Autoit

Start by creating a new directory and make an autoit script. Edit the script and include IE.au3: #include    Suppose we're writing a script which will allow a anyone to sign in his facebook on a scheduled time automatically. It's simple, don't panic! You need to call a function with any name you want. Let's take loginfb() ! call ("loginfb") So, we only have to write the function loginfb now! Func loginfb() Global $oIE = _IECreate ("https://www.facebook.com/") Local $username = _IEGetObjByName ($oIE, "email") Local $password = _IEgetObjByName ($oIE, "pass") Local $button = _IEGetObjById ($oIE, "loginbutton") _IEFormElementSetValue ($username, "") // your email here! _IEFormElementSetValue ($password, "") //your fb password here! Send("{Enter}") EndFunc $username and $password are variables. "email" and "pass" are the names given to the textarea

[Python]Publish your python project to PyPI

The Python Package Index, also known as PyPI, is a large repository of python packages. Millions of developers all around the world contribute to Python daily by creating python scripts and uploading to PyPI. In this blog post, I am going to write a simple python script that, on running, will print Hello World on the terminal. Then, going to upload this script to PyPI so that it can be installed on any platform easily using pip or pip3 . Requirements: 1. Github account 2. Basic knowledge of python 3. setuptools - (pip3 install setuptools) 4. wheel - (pip3 install wheel) By the end of this blog post, you should be able to print hello world using a single command: Let's get started! The first thing to do is find a unique name for your project. The name that I will call the Hello World script will be print_hello_world . At the time that I am writing this post, there is not package called print_hello_world  on  PyPI . Logically, after doing this tutorial, there might