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.
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.
The following Solidity global variables behave differently:
block.difficultyis always 0
block.gaslimitis always 0xFFFFFFFFFFFF (infinite)
Retrieval of pending blocks is not supported, because Arthera does not have this concept.
Block Header fields
nonceis always 0
mixHashis always 0
sha3Unclesis always 0
mixHashis always 0
minerfield is an undefined address
difficultyis always 0
extraDatais always empty
gasLimitis always 0xFFFFFFFFFFFF (infinite)
receiptsRootis always 0
timestampNanois a new field and returns the block's consensus time in UnixNano