An overview of the events that resulted in a blockchain of 10 million blocks in 5 years.

Today, May 4th, 2020, the 10 millionth block of the Ethereum blockchain has been mined. Combined, these blocks were mined by computing over 15 zettahashes over the past 5 years. It would take a modern graphics card, like the GTX 1080 Ti, over 150 million years to do this.

Over the course of our way towards this milestone, a recognizable amount of forks have occurred. Although forks always create a chain split, the old chain is often abandoned, which is why they are sometimes referred to as “network upgrades.”

Most transactions have an event log, but those event logs can be hard to read.

Preface: If you haven’t read my article on the Ethereum Virtual Machine, it may be helpful to do so first, as I’m going to skip the basics and dive right in.

In the traditional world, applications often use logs to capture and describe what’s going on at a specific moment. These logs are often used to debug applications, detect specific events, or notify the viewer of the logs that something happened. It turns out they are also very useful when writing or interacting with smart contracts! So how does Ethereum do it?

Logging in Ethereum

The EVM currently has 5 opcodes for emitting…

A technical summary of the upcoming changes that will be introduced with the Istanbul hard fork on block 9,069,000.


Two new opcodes will be added to the EVM in Istanbul.

If you’re not sure what an opcode is, check out my previous article explaining the Ethereum Virtual Machine.

The new CHAINID opcode introduced at 0x46 pushes the 256-bit value of the current chain ID to the stack. It pops 0 arguments from the stack and has a flat gas cost of 2 gas (G-base). A list of chain IDs is included in EIP 155. …

Diving into Ethereum’s decentralized ecosystem for building

If you’ve tried developing a smart contract on the Ethereum blockchain, or have been in the space for a while, you might have come across the term “EVM”, short for Ethereum Virtual Machine. Virtual machines are essentially creating a level of abstraction between the executing code and the executing machine. This layer is needed to improve the portability of software, as well as to make sure applications are separated from each other, and separated from their host.

Creating a smart contract

Smart contracts are often written in a programming language called Solidity, a language similar to JavaScript and C++. Other languages for writing smart…

Luit Hollander

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store