EVM兼容性
eSpace 实现了一个以太坊虚拟机 (EVM)。 以下是 eSpace 和以太坊之间的一些区别:
交易类型
目前 eSpace 仅支持 155 类型 交易。 暂不支持 1559 类型交易。
EVM 操作码
BLOCKHASH
操作码只能接受NUMBER-1
作为输入。 (与以太坊不同的是,以太坊可以接受NUMBER-256
到NUMBER-1
之间的任何整数作为输入)。 这是唯一的中断操作码.。
区块时间
NUMBER
opcode将返回树图epoch number
。 因此,在 eSpace 合约中使用的 block.number
不会以稳定和可预测的速率增长,因此它可能不适合用于测量时间。
区块的生成速率是每个区块 1.25 秒(主网),与 Core Space Epoch 时间相同。
合约大小
合约最大代码大小是 49152
,是以太坊的两倍。
交易费用
SSTORE
操作码和SUICIDE
opcode中不会退还gas。- 占用存储的操作有不同的gas消耗。
- 当将存储条目从零更改为非零时,
SSTORE
花费 40000 gas(而以太坊中为 20000 gas)。 - 部署新合约时,每个字节花费 400 gas(而以太坊中为 200 gas)。
- 通过
CALL
或SUICIDE
创建新账户时,该操作消耗 50000 gas(而以太坊中为 25000 gas)。
- 当将存储条目从零更改为非零时,
- 最多
1/4
的交易gasLimit
可 以被退还(如果未使用)
交易的 Gas 上限
只有区块高度是 5
的倍数的区块才能打包以太坊类型交易。 这些交易的总 gas 上限不能超过区块 gas 上限的一半(1500w)。
EVM 预编译合约
支持所有标准预编译合约。
地址 | ID | 名称 | 规范 | 状态 |
---|---|---|---|---|
0x01 | ECRecover | ECDSA 公钥恢复 | Yellow Paper | ✅ |
0x02 | SHA256 | SHA-2 256 哈希函数 | Yellow Paper | ✅ |
0x03 | RIPEMD160 | RIPEMD 160 哈希函数 | Yellow Paper | ✅ |
0x04 | Identity | 身份函数 | Yellow Paper | ✅ |
0x05 | ModExp | 大整数模幂运算 | EIP-198 | ✅ |
0x06 | BN128Add |