What is Solidity
It is comprised of:
- objects and types
- and handles monetary transactions.
Before jumping to coding with Solidity it is important to familiarize oneself with blockchain's mental models - these are essential because of the contrasting difference in a blockchain application architecture and a common web application architecture. Where we want to go is Web 3.0, where servers and databases are as decentralized as the clients. In other words, clients can also act as servers or databases or both (aka, peer-to-peer). With many-to-many relationships at all levels of the stack, there is no concentration of control and a single point of failure. The network is maximally distributed.
Essentially the following points need to be kept in mind always:
- Memory is limited - each memory element requires all nodes on the blockchain to confirm and store that element
- Computation complexity is limited
- Reading data is free
- Each write operation has a cost associated with it - you pay it with ether. The cost is measured in gas.
Tools for Working With Solidity
- Hardhat: dApp development framework
- Truffle: dApp development framework
- Alchemy SDK: Web3 SDK for deploying / reading smart contracts
- Remix: Web IDE for Solidity
- Metamask: Most popular crypto wallet
- Solidity Docs: Official Solidity Docs
- Solidity By Example: Use short snippets to learn to write Solidity.
- Web3 University: Community-driven hub for smart contract development
- Alchemy University: 10-week courses on Web3 / Smart Contract dev.