P2P network
Ethereum works in a P2P network. This network that can be accessed using TCP port 30303. It works with a protocol called ÐΞVp2p
State machine
Ethereum state transitions are processed by the Ethereum Virtual Machine (EVM), a stack-based virtual machine that executes bytecode (machine-language instructions). EVM programs, called “smart contracts”, are written in high-level languages (e.g., Solidity) and compiled to bytecode for execution on the EVM.
Data structures
Ethereum’s state is stored locally on each node as a database (usually Google’s LevelDB), which contains the transactions and system state in a serialized hashed data structure called a Merkle Patricia Tree.
Clients
Ethereum has several interoperable implementations of the client software, the most prominent of which are open_in_new Go-Ethereum (Geth) and Parity.
web3.js
web3.js is a JS library, which bridges JavaScript applications that run in your browser with the Ethereum blockchain. The
web3.js library also includes an interface to a P2P storage network called Swarm and a P2P messaging service called Whisper. With these three components included in a
JavaScript library running in your web browser, developers have a full application
development suite that allows them to build web3 DApps.
Wallets
Explorers
Two types of accounts
- EOA: externally owned accounts are those that have a private key; having the private key means control over access to funds or contracts.
- Contract account: a contract account has smart contract code, which a simple EOA can’t have. A contract account does not have a private key. It is owned (and controlled) by the logic of its smart contract code.
Info
Useful resources
| Resource | Description |
|---|---|
| open_in_new https://ethereum.org | Official website of Ethereum. |
Andrew Dorokhov