I start to learn smart contract just from a few weeks ago, here is my learning experience I would like to share those who are new to blockchain like me.
Blockchain is a distributed ledge, who is to solve the trust problem amongst the un-trust individules. In 2008, Satoshi published a paper named A peer to peer electronic cash system, where blockchain technology is introduced first time. Next year Sotoshi mined the first 50 bitcoins including genisis block.
For now blockchain is well-known because it is high price for bitcoins, but it is really underestimated for the blockchain technology. Anyway the high price it is great thing, because it attacted more people to focus on the blockchain.
Let's from different perspectives to understand blockchain:
- blockchain is next generation internet (e.g web 3.0)
- blockchain is distributed database
Key features of blockchain:
- transparent
- decentralization
- trustless
Smart contract is a e-contract which is coded and executed by computer. It is first introduced by Nick Szabo in 1994. In the real world we need the contract to complete the work between 2 clients or multiple clients. There are possibily blured points malnupalated by people. Smart contract could program the contract into code.
Here is the course link for prepare ethereum development. The environment includes:
- development env
- deployment env
- testnet
- env
- truffle framework
- code (solidity)
- compile
- test framework in truffle
- migrate (deploy)
- testnet or mainnet
I have 2 examples free course about how to program your first DAPP, and how to issue your own token.
Solidity is official smart contract language provided by Ethereum. Here is the document, here is Chinese document.