EVM & API differences
Arthera is a Layer 1 protocol and blockchain platform, and the Arthera Network is separate from the Ethereum network. While the Arthera blockchain node is implemented on top of go-ethereum (or geth), it has small differences, the most notable one being a leaderless proof-of-stake DAG-based asynchronous BFT consensus mechanism.
In terms of programmability, Arthera is similar to Ethereum. Both networks run the Ethereum Virtual Machine (EVM) to support smart contract functionality. This means that all programming languages, developer tooling and standards that target the EVM are relevant to Arthera as well. Developers building on Arthera can write smart contracts in Solidity, using their tooling of choice and take advantage of smart contract standards that have already been developed for Ethereum.
Differences
The EVM in Arthera works the same way as in Ethereum and Polygon with the following exceptions:
- 10% of unspent gas gets spent as a disincentive to militate against excessive transaction gas limits
- Transactions in blocks aren't necessarily sorted by gas price. Even though transactions in each event and in the txpool are sorted by gas price, events are sorted by their topological ordering in the DAG. A new block includes transactions from multiple confirmed events in that topological order.
- The Arthera protocol uses an asynchronous BFT Proof-of-Stake for consensus. This allows blocks to be created in 2 seconds, as compared to ~12+ seconds on Ethereum. In addition, all blocks are finalized immediately, so there is no need to wait for more than 1 block confirmation to ensure that a transaction won't be reverted.
- Retrieval of pending blocks is not supported, because Arthera does not have this concept.
Solidity differences:
The following Solidity global variables behave differently:
block.difficulty
is always 0block.gaslimit
is always 0xFFFFFFFFFFFF (infinite)
API differences:
Pending blocks
Retrieval of pending blocks is not supported, because Arthera does not have this concept.
Block Header fields
nonce
is always 0mixHash
is always 0sha3Uncles
is always 0mixHash
is always 0miner
field is an undefined addressdifficulty
is always 0extraData
is always emptygasLimit
is always 0xFFFFFFFFFFFF (infinite)receiptsRoot
is always 0timestampNano
is a new field and returns the block's consensus time in UnixNano
Unavailable namespaces
shh
db
bzz