Development Stack and Architecture
To write and deploy a smart contract, a developer needs three basic things:
- Editor
- compiler
- wallet
The wallet is necessary to “copy” the compiled smart contract to the blockchain network. In Ethereum, we do this by creating a transaction without a target address and sending the contract code along with this transaction.
There are additional helpful tools for smart contract development:
- IDEs
- testing frameworks
- linters for code analysis
- local/simulated blockchains for faster test deployments
- user interface frameworks
- collaboration tools
- version management tools
- etc
In our lessons, we focus on Solidity and use the Remix IDE as a development environment. It comes with a compiler, a locally simulated blockchain, a basic user interface, and a debug console. It also allows us to connect to a wallet. You can install the Remix IDE locally along with the necessary compiler, or you can use the version hosted by the Ethereum Foundation: https://remix.ethereum.org/
Remix IDE
Open the following link to get access to the Remix IDE. https://remix.ethereum.org/
The user interface of the remix IDE is divided into three columns. In the left column, you find the tabs for selecting the type of interaction:
- manage files,
- compile,
- deploy and run transactions,
- plugins
In the second column from the left, you find the user interface. It changes accordingly to the tab you choose and lets you interact with a deployed smart contract, create new files, compiles a contract, and changes environment settings.
In the right column, you find the editor window where you can write your code. Below the editor, the debug console provides information about transactions once you interact with a smart contract.