Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Solidity Programming Essentials
Solidity Programming Essentials

Solidity Programming Essentials: A guide to building smart contracts and tokens using the widely used Solidity language , Second Edition

eBook
£22.99 £25.99
Paperback
£31.99
Subscription
Free Trial
Renews at £16.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. £16.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Solidity Programming Essentials

Chapter 1: An Introduction to Blockchain, Ethereum, and Smart Contracts

The last decade has already seen an extraordinary evolution of the technology and computing ecosystem. Technological innovation and its impact have been noticeable across the spectrum, from the Internet of Things (IoT) and Artificial Intelligence (AI) to blockchains. Each of them has had a disruptive force within multiple industries, and blockchains are one of the most disruptive technologies today – so much so that blockchains have the potential to change almost every industry. Blockchains are revolutionizing almost all industries and domains while bringing forward newer business models. Blockchain is not a new technology; however, it has gained momentum over the last couple of years. It is a big leap forward in terms of thinking about decentralized and distributed applications. It is about the current architectural landscape and strategies for moving toward immutable distributed databases.

In this chapter, you will quickly learn and understand the basic and foundational concepts of blockchains and Ethereum. We will also discuss some of the important concepts that make blockchains and Ethereum work. Also, we will touch briefly on the topic of smart contracts and how to author them using Solidity.

Please note that this chapter explains important blockchain concepts briefly. It does not explain all concepts in great detail, as that would require a complete book by itself. Since Ethereum is an implementation of a blockchain, both the terms will be used interchangeably in this book.

This chapter will focus on introducing the following topics:

  • What a blockchain is and why it is used
  • Understanding cryptography
  • Blockchain and Ethereum architecture
  • Ether, gas, and transactions
  • Consensus
  • Nodes
  • Mining
  • Understanding accounts, transactions, and blocks
  • Smart contracts

By the end of this chapter, you will know all about the basics of blockchain, Ethereum, and smart contracts, which will prepare the base for the next chapters.

Technical requirements

To execute the instructions given in this chapter, you can use a machine with any operating system (Mac, Windows, or Linux) with a browser installed on it. Code for this chapter can be found on GitHub at https://github.com/PacktPublishing/Solidity-Programming-Essentials-Second-Edition/tree/main/Chapter01.

What is a blockchain?

A blockchain is essentially a decentralized, distributed database or ledger, as follows:

  • Decentralization: In simple terms, this means that the application or service continues to be available and usable even if a server or a group of servers on a network crashes or is not available. The service or application is deployed on a network in a way that no server has absolute control over data and execution; rather, each server has a current copy of data and execution logic.
  • Distributed: This means that any server or node on a network is connected to every other node on the network. Rather than having one-to-one or one-to-many connectivity between servers, servers have many-to-many connections with other servers.
  • Database: This refers to the location for storing durable data that can be accessed at any point in time. A database allows the storage and retrieval of data as functionality and also provides management functionalities to manage data efficiently, such as exporting, importing, backup, and restoration.
  • Ledger: This is an accounting term. Think of it as specialized storage and retrieval of data. Think of ledgers that are available to banks – for example, when a transaction is executed with a bank. Let's say that Tom deposits USD 100 in his account; the bank enters this information in a ledger as credit. At some point in the future, Tom withdraws USD 25. The bank does not modify the existing entry and stored data from 100 to 75. Instead, it adds another entry in the same ledger as a debit of USD 25. This is because a ledger is a specialized database that does not allow modification of existing data. It allows you to create and append a new transaction to modify the current balance in the ledger. The blockchain is a database that has the same characteristics as a ledger. It allows newer transactions to be stored in an append-only pattern without any scope to modify past transactions. It is important here to understand that existing data can be modified by using a new transaction, but past transactions cannot be modified. A balance of USD 100 can be modified at any time by executing a new debit or credit transaction, but previous transactions cannot be modified. Take a look at the following diagram for a better understanding:
Figure 1.1 – A blockchain is essentially a chain of blocks

Figure 1.1 – A blockchain is essentially a chain of blocks

Blockchain means a chain of blocks – that is, having multiple blocks chained together, with each block storing transactions in such a way that it is not possible to change these transactions. We will discuss this in later sections when we talk about the storage of transactions and how immutability is achieved in a blockchain.

Because they are decentralized and distributed, blockchain solutions are stable, robust, durable, and highly available. There is no single point of failure. No single node or server is the owner of the data and solution, and everyone participates as a stakeholder.

Not being able to change and modify past transactions makes blockchain solutions highly trustworthy, transparent, and incorruptible.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Learn proven smart contract implementation challenges and solve them using Solidity
  • Go deeper into Solidity to write effective upgradable and maintainable smart contracts using best practices
  • Get to grips with the latest version of Solidity with updated codes and examples

Description

Solidity is a high-level language for writing smart contracts, and the syntax has large similarities with JavaScript, thereby making it easier for developers to learn, design, compile, and deploy smart contracts on large blockchain ecosystems including Ethereum and Polygon among others. This book guides you in understanding Solidity programming from scratch. The book starts with step-by-step instructions for the installation of multiple tools and private blockchain, along with foundational concepts such as variables, data types, and programming constructs. You’ll then explore contracts based on an object-oriented paradigm, including the usage of constructors, interfaces, libraries, and abstract contracts. The following chapters help you get to grips with testing and debugging smart contracts. As you advance, you’ll learn about advanced concepts like assembly programming, advanced interfaces, usage of recovery, and error handling using try-catch blocks. You’ll also explore multiple design patterns for smart contracts alongside developing secure smart contracts, as well as gain a solid understanding of writing upgradable smart concepts and data modeling. Finally, you’ll discover how to create your own ERC20 and NFT tokens from scratch. By the end of this book, you will be able to write, deploy, and test smart contracts in Ethereum.

Who is this book for?

This Ethereum book is primarily aimed at beginners who want to get started with Solidity Programming for developing an Ethereum smart contract. No prior knowledge of EVM is required, but knowing the basics of any programming language will help you follow along.

What you will learn

  • Write efficient, effective, and secure smart contracts
  • Code, compile, and test smart contracts in an object-oriented way
  • Implement assembly code in Solidity
  • Adopt upgradable and haltable ownership and security design patterns
  • Understand exception handling and debugging in Solidity
  • Create new ERC20 and NFT tokens from the ground up

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 10, 2022
Length: 412 pages
Edition : 2nd
Language : English
ISBN-13 : 9781803231181
Category :
Languages :
Concepts :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. £16.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Jun 10, 2022
Length: 412 pages
Edition : 2nd
Language : English
ISBN-13 : 9781803231181
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
£16.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
£169.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just £5 each
Feature tick icon Exclusive print discounts
£234.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just £5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total £ 104.97
Blockchain Development for Finance Projects
£36.99
Solidity Programming Essentials
£31.99
Building Python Microservices with FastAPI
£35.99
Total £ 104.97 Stars icon

Table of Contents

20 Chapters
Part 1: The Fundamentals of Solidity and Ethereum Chevron down icon Chevron up icon
Chapter 1: An Introduction to Blockchain, Ethereum, and Smart Contracts Chevron down icon Chevron up icon
Chapter 2: Installing Ethereum and Solidity Chevron down icon Chevron up icon
Chapter 3: Introducing Solidity Chevron down icon Chevron up icon
Chapter 4: Global Variables and Functions Chevron down icon Chevron up icon
Chapter 5: Expressions and Control Structures Chevron down icon Chevron up icon
Part 2: Writing Robust Smart Contracts Chevron down icon Chevron up icon
Chapter 6: Writing Smart Contracts Chevron down icon Chevron up icon
Chapter 7: Solidity Functions, Modifiers, and Fallbacks Chevron down icon Chevron up icon
Chapter 8: Exceptions, Events, and Logging Chevron down icon Chevron up icon
Chapter 9: Basics of Truffle and Unit Testing Chevron down icon Chevron up icon
Chapter 10: Debugging Contracts Chevron down icon Chevron up icon
Part 3: Advanced Smart Contracts Chevron down icon Chevron up icon
Chapter 11: Assembly Programming Chevron down icon Chevron up icon
Chapter 12: Upgradable Smart Contracts Chevron down icon Chevron up icon
Chapter 13: Writing Secure Contracts Chevron down icon Chevron up icon
Chapter 14: Writing Token Contracts Chevron down icon Chevron up icon
Chapter 15: Solidity Design Patterns Chevron down icon Chevron up icon
Assessments Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6
(8 Ratings)
5 star 37.5%
4 star 25%
3 star 12.5%
2 star 12.5%
1 star 12.5%
Filter icon Filter
Top Reviews

Filter reviews by




Aditya Aug 02, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Only Available book,focused Solidity in depth...unlike every other book which focuses on everything about dapp but not explaining the solidity only.
Amazon Verified review Amazon
POE Jul 01, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
If you are like me and want to get into the world of Blockchain, this book is a great starting point. The author breaks down the concepts and terminology of Blockchain early in the book, so the rest of it will make more sense. Ethereum, an open source blockchain technology for digital currency, is explained along with related concepts of hashing and encryption. The more complex topics of Solidity and smart contracts are covered in great detail. These contracts seem to be the main point of the book as the majority of the chapters detail specific aspects of smart contracts. The author even included sections on assembly programming, and Non-Fungible Tokens (NFTs).
Amazon Verified review Amazon
VIRAJ PATVA Oct 06, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book covers all the aspects for Solidity Developer at one place. When I was new to solidity programming I faced a issue that I wasn't able to get good content curated at a place. This book very helpful to start career as Solidity Developer.The book didn't cover Web3.js / Ether.js that is required for Dapp development. Anyways author can write out other book on Dapp Development
Amazon Verified review Amazon
luca r. Oct 09, 2022
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book contains all the essentials in order to get you from 0 to hero. I have taken multiple solidty courses and this by far gives the best foundations in order to understand bigger and more complex projects. Since solidty and blockchain programming have been recently in the rise, if this interests you I would 10/10 recommend having this book.
Amazon Verified review Amazon
Josh Oct 05, 2022
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
As someone that has written smart contracts before, this book covers all the basics and some advanced topics. The descriptions are not too clear in some parts, but the code examples are there to help. It's programming so you're going to learn best by doing and using the writing as a guide.That being said I wouldn't rely on this (or any other source) as a complete guide to learning Solidity. It's a more advanced language so it's better to start with another language before picking this up.Overall not bad. The author introduces the reasons behind some common practices that will make you a better developer and ensures you're ready to write a wide range of contracts with practice of the concepts introduced in the book. Would recommend.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.