Book Image

Ethereum Smart Contract Development

By : Mayukh Mukhopadhyay
Book Image

Ethereum Smart Contract Development

By: Mayukh Mukhopadhyay

Overview of this book

Ethereum is a public, blockchain-based distributed computing platform featuring smart contract functionality. This book is your one-stop guide to blockchain and Ethereum smart contract development. We start by introducing you to the basics of blockchain. You'll learn about hash functions, Merkle trees, forking, mining, and much more. Then you'll learn about Ethereum and smart contracts, and we'll cover Ethereum virtual machine (EVM) in detail. Next, you'll get acquainted with DApps and DAOs and see how they work. We'll also delve into the mechanisms of advanced smart contracts, taking a practical approach. You'll also learn how to develop your own cryptocurrency from scratch in order to understand the business behind ICO. Further on, you'll get to know the key concepts of the Solidity programming language, enabling you to build decentralized blockchain-based applications. We'll also look at enterprise use cases, where you'll build a decentralized microblogging site. At the end of this book, we discuss blockchain-as-a-service, the dark web marketplace, and various advanced topics so you can get well versed with the blockchain principles and ecosystem.
Table of Contents (18 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Project smartCV


In this section, we are going to develop smart-contract-based curriculum vitae. Originally designed by Ryan Hendricks, a New-York based smart contract developer, this basic contract has two crucial modules:

  • Library (cvSection)
  • Contract (cvContract)

The contract can be further subdivided into three parts:

  1. Contract definition andconstructors
  2. New profile data module
  3. Edit profile data module

Figure 10.7 depicts the library function, which is made up of various Struct datatypes:

Figure 10.7: Library definition

Each structure definition inside the library has different set of arguments. Next, we see Figure 10.8, which depicts the contract definition:

Figure 10.8: cvContract definition

This contract is capable of managing multiple CVs from different persons. This is accomplished by the setProfile and getProfile modules. Figure 10.9 depicts the setProfile module:

Figure 10.9: New profile add module

In a similar fashion, Figure 10.10 depicts the get profile data, which is used to check after any...