EVM是存储单元大端序的、存储单元内小端序的

EVM是一个字长为256bit的栈式虚拟机。

其opcode操作码占一个字节,指令列表见下方链接:

https://github.com/crytic/evm-opcodes

Opcodes for the EVM | ethereum.org

Ethereum Virtual Machine Opcodes (ethervm.io)

EVM的原生高级语言是Solidity

Solidity编译器是solc:https://github.com/ethereum/solidity

使用说明:https://docs.soliditylang.org/en/latest/using-the-compiler.html

但一般情况下推荐直接使用在线IDE remix:https://remix.ethereum.org/

是一个vscode改的编辑器,虽然自动补全几乎没有,但是集成了编译、部署、调用、调试等功能,对于小型智能合约编写来说十分方便。

remix还提供了JavaScript编写的EVM可供链下调试,一般情况下请使用它来调试,因为很多时候链上调试根本用不了😅。

还有一点需要注意的是,remix的UX很傻逼,在DEPLOY & RUN中,调用下方的合约时,需要指定gaslimit和value请修改deploy上方的那两个数值,我找了半天看了文档才发现那里同时控制deploy和run的value。

ETH有很多测试链,官方的有Ropsten和Rinkeby,前者是PoW的,后者是PoA的,一般来说建议后者,因为PoW链上有时有人乱搞,导致一个交易几十分钟还没完成,中心化的PoA就没这个问题。

Ropsten Faucet:Test Ether Faucet (metamask.io) Thinklair Ropsten Faucet

Rinkeby Faucet:Faucets | Chainlink