Specification & Implementations
Yellow paper : http://gavwood.com/paper.pdf
Implementations in various languages. C++: eth, Python: pyethapp, golang: geth (most popular)
Peer-to-peer protocol: DEVp2p, TCP based messaging protocol, default port 30303
Dapp to Client/Node protocol (Peer) :
- IPC-RPC (default, considered much more secure than JSON-RPC, for local Dapp)
- JSON-RPC (http://localhost:8545)
- WS-RPC
JS API Console
- Attach a console to client/node and use Web3 API to invoke various functions
- Connect to peers to receive data
- Receive data
- Validate
- If validated, save to local database (file system)
- Sends blocks if requested from another peer
- Participate in mining process
- Dapp/wallet simply send a command to let client/node start mining
- Serve Dapp
- Dapp send transactions to client/(or)node
- send/receive ether
- deploy contract
- execute contract
- Node propagate to network
- Serve explorer with history
- Execute smart contract functions
https://dev.to/5chdn/the-ethereum-blockchain-size-will-not-exceed-1tb-anytime-soon-58a
https://ethereum.stackexchange.com/questions/143/what-are-the-ethereum-disk-space-needs
See the effect of different modes and storage size