Peer-to-Peer Auctions in Ethereum

In the first part of this book, we introduced bitcoin as the first embodiment of blockchain technology and the world's most popular cryptocurrency. Throughout the previous chapters, we tried to illuminate from a developmental angle, what a blockchain is, by building applications using bitcoin. In this second part of the book, we'll introduce the most well-established and mature smart-contract-driven blockchain: Ethereum.

As we discussed in Chapter 1, Say Hello to Blockchain, the primary aim of bitcoin is to establish itself as a payment alternative to regular money, whereas Ethereum focuses more on enabling developers to build and run distributed applications, decentralized apps (DApps), by providing them with built-in tools and currency vehicles.

Faithful to our approach of learning by example, we will start our exploration by building a decentralized auction DApp to sell vehicles on top of the Ethereum blockchain.

The purpose of this chapter is to introduce you, from a developmental standpoint, to the tools, concepts, and fundamental basics required to build decentralized applications. Nonetheless, if you are interested in a detailed overview of the Ethereum protocol, you can refer to its white paper (https://github.com/ethereum/wiki/wiki/White-Paper), and for a full technical presentation, you can read its yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf).

This chapter is organized around four major topics, as follows:

  • A general overview of Ethereum
  • Introducing Solidity (auction smart contract)
  • Introducing web3.js (auction frontend)
  • The smart contract deployment environment

I am quite sure that you'll find Ethereum a developer-friendly blockchain that can help enthusiasts and eager developers like you easily unlock the power of the blockchain. Let's start.