How to Build a Smart Contract with Solidity?

Smart Contract Solidity

Introduction

Solidity smart contract was created by Dr. Gavin Wood as a language explicitly for writing smart contracts with features to directly support execution within the decentralized environment of the Ethereum world computer. The resulting attributes are quite general, then it’s ended up getting used for coding smart contracts on several other blockchain platforms. It had been developed by Christian Reitiwessner then also by Alex Beregszaszi, Liana Husikyan, Yoichi Hirai, and a number of other former Ethereum core contributors. Solidity is currently developed and maintained as a self-regulating project on GitHub.

The key product of the project is that the Solidity compiler, sold, which converts programs written within the Solidity language to EVM bytecode. The project likewise achieves the important (ABI) application binary interface standard for Ethereum smart contracts. Each version of the compiler corresponds to and compiles a selected version of the language.

To get started, we’ll download a binary executable of the Solidity smart contract compiler. Then we’ll develop and compile an easy contract.

Selecting a Version of Solidity

Simple Solidity contract follows a versioning model called semantic versioning that needs version numbers structured as three numbers separated by dots: MAJOR.MINOR.PATCH. The “major” number is incremented for major and backward-incompatible changes, the “minor” number is incremented as backward-compatible features are added in between major releases, and therefore the “patch” number is incremented for backward-compatible bug fixes.

Solidity is at version 0.6.4 at this time of writing. The principles for major version 0, which is for the initial development of a project, are different: anything may change at any time. In preparation and practice, Solidity gives the “minor” number as if it were the main version and therefore the “patch” number as if it were the minor version. Therefore, in 0.6.4, 6 is taken into account to be the main version and 4 the minor version. The 0.5 major version release of Solidity is predicted imminently.

Our programs may contain a pragma directive that specifies the minimum and maximum versions of smart contract that it’s compatible with and maybe won’t compile your contract. Since it is rapidly evolving, it’s often better to put in the newest release.

Download and Install

There are a variety of methods we will use to download and install, either as a binary release or by compiling from ASCII text file. We will find detailed instructions within the documentation. Here’s the way to install the newest binary release of Solidity on an Ubuntu or Debian OS, using the apt package manager:

$ sudo add-apt-repository ppa:ethereum/ethereum

$ sudo apt update

$ sudo apt install solc

Once we’ve solc installed, check the version by running:

$ solc –version

solc, the solidity compiler command-line interface

Version: 0.6.4+commit.1dca32f3.Linux.g++

There are a variety of other ways to put, counting on our OS and requirements, including compiling from the ASCII text file directly. For more information about Solidity smart contract Github examples.

Development Environment

To develop in Solidity, we will use any text editor and solc on the instruction. However, we’d find that some text editors designed for development, like Emacs, Vim, and Atom, offer additional features like syntax highlighting and macros that make Solidity development easier. There also are web-based development environments, like Remix IDE and EthFiddle.

Use the tools that make us productive. Within the end, Solidity programs are just plain text files. While fancy editors and development environments can make things easier, we don’t need anything quite an easy text editor, like nano (Linux or UNIX), TextEdit (macOS), or maybe NotePad (Windows). Simply save your program ASCII text file with a.sol extension and it’ll be recognized by the compiler as a Solidity program.

Smart Contract illustration

Writing an easy Solidity Smart Contract Program

Our first attempt seemed like Faucet.sol: A Solidity contract implementing a faucet.

Example 1. Faucet.sol: A Solidity contract implementing a faucet

Link: code/Solidity/Faucet.sol []

Compiling with the Solidity Compiler (solc)

Now, we’ll use the Solidity compiler on the instruction to compile our contract directly. The Solidity compiler solc offers a spread of options, which we will see by passing the –help argument. We use the –bin and –optimize arguments of solc to supply an optimized binary of our example contract:

$ solc –optimize –bin Faucet.sol

======= Faucet.sol:Faucet =======

Binary:

608060405234801561001057600080fd5b5060cc8061001f6000396000f3fe6080604052600436106

01f5760003560e01c80632e1a7d4d14602a576025565b36602557005b600080fd5b34801560355760

0080fd5b50605060048036036020811015604a57600080fd5b50356052565b005b67016345785d8a0

000811115606657600080fd5b604051339082156108fc029083906000818181858888f19350505050

1580156092573d6000803e3d6000fd5b505056fea26469706673582212205cf23994b22f7ba19eee5

6c77b5fb127bceec1276b6f76ca71b5f95330ce598564736f6c63430006040033

The result that solc produces may be a hex-serialized binary which will be submitted to the Ethereum blockchain.

For more information please visit solidity tutorials.