I am interested to see exactly what is coded for Ethereum. I know web3 is on github. Where is all the fundamental source code stored for the EVM and all the main components?
1 Answer
The two most popular Ethereum clients are:
Go-ethereum (geth): https://github.com/ethereum/go-ethereum
and
Parity: https://github.com/paritytech/parity/
Here are some sections of the Geth client code that I have catalogued as useful for my purposes, which are mostly related to the EVM.
Determines which opcodes are valid in each epoch, and also has a 'read-only' mode for byzantium: https://github.com/ethereum/go-ethereum/blob/master/core/vm/interpreter.go
Just objects with opcodes: https://github.com/ethereum/go-ethereum/blob/master/core/vm/opcodes.go
Gas metering: https://github.com/ethereum/go-ethereum/blob/master/core/vm/gas_table.go
Has implementations of the opcodes: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go#L85
Brings it all together? https://github.com/ethereum/go-ethereum/blob/master/core/vm/evm.go
Impls of precompiles: https://github.com/ethereum/go-ethereum/blob/master/core/vm/contracts.go