W1-1 区块链及智能合约平台介绍
W1-1 区块链及智能合约平台介绍
什么是以太坊
- 一台世界计算机(去中心化,任何人都可以使用)
- 一个状态机(由交易触发的状态转换系统)
- 一个智能合约平台(计算平台)
智能合约
- 智能:可执行
- 合约:协议、规则
- 链上执行的程序,是代码和数据(状态)的集合
合约的组成
EVM
- 类似Java至于JVM
- EVM是一个封闭的环境(不可访问外部系统)
- 只能直接写入数据到链上
以太坊客户端
- 以太坊客户端:EVM载体、网络中的节点程序
- 只要符合网络规范,(几乎)任何语言都可以实现客户端
- 常见客户端:Geth(Go实现)、OpenEthereum(Rust)实现
- 通过RPC提供服务
账户
钱包
- Metamask
- ImToken
- TrustWallet
GAS
- EVM的计价单位,也防止图灵死机的问题
- GAS是一个工作量单位,复杂度越大,所需gas越多
- 费用 = gas数量 * gas单价(以太币计价gwei)
以太币单位
- 最小单位:Wei(伟)
- 10^9 Wei = 1 Gwei
- 10^12 Wei = 1 szabo(萨博)
- 10^15 Wei = 1 finey(芬尼)
- 10^18 Wei = 1 Ether
不同的网络
- 主网(价值网络)
- 测试网
- 开发模拟环境(本地环境)
合约开发工具
- Remix:适用于小合约开发
- VSCode + solidity扩展
- Truffle + Ganache
- Hardhat
Remix
- 编译
- 部署
- 执行
- 橙⾊:触发交易
- 蓝⾊:仅读取
remixd
在remix中访问本地⽂件
- 安装remixd:
npm install -g @remix-project/remixd
- 共享⽂件:
remixd -s <path-to-the-shared-folder> -remix-ide <remix-ide-instance-URL>
Truffle
编译、部署、测试合约的⼀整套开发⼯具
- ⽂档:https://trufflesuite.com/docs/truffle/
- 中⽂⽂档:https://learnblockchain.cn/docs/truffle/
Truffle 工程包括
- contracts:智能合约目录
- migrations:迁移文件、用来指示如何部署智能合约
- test:智能合约测试用例文件
- turffle-config:配置文件呢,配置truffle连接的网络以及编译选项
部署
- 配置网路
- 便携部署脚本
- 启动网络(本地)
- 执行部署
- 指定部署某个(顺序第2个)合约
truffle migrate -f 2
- 指定部署某个(顺序第2个)合约
Truffle工具
- truffle console
- 直接在控制台调⽤合约
- truffle-min.sh
- 压缩 artifacts ⽂件
Ganache
开发区块链,提供本地模拟的链上环境
This post is licensed under CC BY 4.0 by the author.