---
# System prepended metadata

title: Dev notes - w/c 15 July 2024
tags: [EF]

---

# Dev notes - w/c 15 July 2024
## Align with holesky additions

### ephemery-geth local quickstart
1. Download latest [ephemery release](https://github.com/ephemery-testnet/ephemery-genesis/releases)
2. Clear chain data in local geth directory

    `rm -r chaindata`

3.  Build and run geth branch locally

    `make geth`
    `./build/bin/geth --ephemery --verbosity 4`

### Updates

1. Pushed ephemery-geth updates to my fork, created [draft PR] - *not ready for peer review* (https://github.com/ethereum/go-ethereum/pull/30210)

2. Reviewed against [holesky updates](https://github.com/ethereum/go-ethereum/pull/28007)

3. Noted that Misc struct added for holesky alloc data, need to make sure that ephemery alloc data is fully decoded too
    - Check in prog `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"`
	}
    ...
    ```
    - Check in prog `core/mkalloc.go`


3. More review against [EIP](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6916.md) 
---

❗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:**
- [x] Review holesky commit and ensure my updates follow a similar approach
- [ ] Alloc data review Misc struct (see above)
- [ ] Discovery list (see observations below)
- [ ] Review config. Where to include `minGenesisTimestamp` and `genesisDelay` - should these be in `genesis.go` or in `config.go`?
- [ ] Update ephemery params to correctly reflect EIP spec
- [ ] Run with CL client (again) to verify starting correctly
- [ ] Peer review
- [ ] Share draft PR with geth team


**Observations:**

- need to add ephemery here? https://github.com/ethereum/discv4-dns-lists 
    - If so, add ephemery case in ephemery-geth `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"
    }
    ```
    