Ethereum Smart Contract Development
上QQ阅读APP看书,第一时间看更新

Hardware clients and internet

As we have wrapped up our under-the-hood session on swarm, whisper, and EVM, let us move on to the remaining elements of the Ethereum tech stack, which are hardware clients and the internet. The hardware clients will be covered in greater detail in the Ethereum mining section. As of now, it is sufficient to know that normal commodity hardware like CPUs and GPUs are used as hardware clients for Ethereum.

Let us now discuss the internet layer of the Ethereum tech stack, which is basically the Ethereum blockchain. As we have already discussed the blockchain structure for Ethereum in Chapter 1, Blockchain Basics, here we will cover only the logical positioning of Ethereum blockchain over the surface web.

We will revisit the blockchain structure when we discuss the Ethereum block architecture, later in this chapter.

The internet as we know is mainly the surface web. There are also the deep web and the dark web, which we discuss in later chapters. The surface web consists of many logical layers, through which a message or data has to pass in order to reach from point A to point B, which may be geographically and physically separate. Each logical layer has some standard protocol, which a message in transit has to follow or else it would be barred from travelling across the web. These protocols are like the passport and visa rules for an individual when they try to travel from one nation to another. Internet engineering task force (IETF) is an open community that recommends, in a purely voluntary manner, a common ground of communication on the surface web, by proposing the transmission control protocol/internet protocol suite.

Figure 2.12 represents the TCP/IP and the position of the blockchain as a technology on it. The directed line indicates how a message travels from point A to B:

Figure 2.12: Blockchain position on surface web

So, we see that a blockchain is an application layer technology in the TCP/IP stack, which provides a transfer protocol of values. FTP is used to transfer files, HTTP is used to transfer hyperlinked text, SMTP is used to transfer mails, and the blockchain is used for natively digital transfer of values and execution states.

These were the major modules of Ethereum web 3.0 tech stacks, but what makes these modules operate? Is there any magic sauce running inside Ethereum? What is Turing completeness all about? Let us look into them in the next section.