Download latest ephemery release
Clear chain data in local geth directory
rm -r chaindata
Build and run geth branch locally
make geth
./build/bin/geth --ephemery --verbosity 4
Pushed ephemery-geth updates to my fork, created [draft PR] - not ready for peer review (https://github.com/ethereum/go-ethereum/pull/30210)
Reviewed against holesky updates
Noted that Misc struct added for holesky alloc data, need to make sure that ephemery alloc data is fully decoded too
func decodePrealloc
in core/genesis.go
ββββfunc decodePrealloc(data string) types.GenesisAlloc {
βvar p []struct {
β Addr *big.Int
β Balance *big.Int
β Misc *struct {
β Nonce uint64
β Code []byte
β Slots []struct {
β Key common.Hash
β Val common.Hash
β }
β } `rlp:"optional"`
β}
ββββ...
core/mkalloc.go
More review against EIP
βUpdated: Draft PR closed by geth team, before review was requested - next steps / approach to be agreed with ephemery team; geth team feedback:
"We have discussed this PR within the team. We do not want to be responsible for maintaining an up-to-date definition of the Ephemery network and its genesis parameters (premine, etc.). Since the network is meant to be reset, and genesis configurations are provided by the project at https://github.com/ephemery-testnet/ephemery-genesis, the genesis block doesn't have to be generated by geth."
TODO:
minGenesisTimestamp
and genesisDelay
- should these be in genesis.go
or in config.go
?Observations:
params/bootnodes.go
as follows:ββββ// KnownDNSNetwork returns the address of a public DNS-based node list for the given
ββββ// genesis hash and protocol. See https://github.com/ethereum/discv4-dns-lists for more
ββββ// information.
ββββfunc KnownDNSNetwork(genesis common.Hash, protocol string) string {
ββββ var net string
ββββ switch genesis {
ββββ case MainnetGenesisHash:
ββββ net = "mainnet"
ββββ case GoerliGenesisHash:
ββββ net = "goerli"
ββββ case SepoliaGenesisHash:
ββββ net = "sepolia"
ββββ case HoleskyGenesisHash:
ββββ net = "holesky"
ββββ case EphemeryGenesisHash:
ββββ net = "ephemery"
ββββ default:
ββββ return ""
ββββ }
ββββ return dnsPrefix + protocol + "." + net + ".ethdisco.net"
ββββ}