---
# System prepended metadata

title: Second Thoughts On the Project Proposal
tags: [Besu, Ephemery, EPF, "\_Ethereum"]

---

Weeks Four and Five EPF6
# Second Thoughts On the Project Proposal 

Since the [last update](https://hackmd.io/_Bs7S1RqRRSNuQp1i7OZUA), I've been reading into the code base of Besu to have an overall understanding of the structure and what module I should probably change to make the Ephemery testnet completely done. Thanks to Mario, who got me very helpful feedback on my project proposal. Improving the proposal required me to first read more on the codebase and second check for past works that had been done on different clients by other developers and fellows from previous EPFs, and then see what remained. 

While running Besu, I got “build failed” by running the `./gradlew clean assemble` command. I found this way (suggested by AI) to get rid of the errors for now:

```java=6

// Add this to your build.gradle file to disable the problematic ErrorProne warnings

tasks.withType(JavaCompile) {
    options.errorprone {
        disableWarningsInGeneratedCode = true
        disable(
            "ArrayRecordComponent",           // Record components should not be arrays
            "EnumOrdinal",                   // Enum.ordinal() usage warnings
            "ClassInitializationDeadlock",   // Class initialization deadlock warnings
            "PatternMatchingInstanceof",     // Pattern matching instanceof suggestions
            "VoidUsed",                      // Void-typed variable usage
            "UnnecessaryMethodReference",    // Unnecessary method reference warnings
            "ImpossibleNullComparison"       // Impossible null comparison warnings
        )
        
        // Alternative: If you want to keep ErrorProne but treat all issues as warnings
        // instead of errors, uncomment the line below:
        // allErrorsAsWarnings = true
    }
}

```

>[!Warning]
>Maybe a better way to handle it is to find a command that ignores error-prone on the assemble command. I started reading into the code base while keeping an eye on remaining tasks with Ephemery implementation on Besu.


### Previous Works on Ephemery Implementation


Reviewing works on Ephemery by other fellows from previous cohorts helped me to get familiar with the challenges on the road. Teri and Holly are from cohort 4, and Glory is from cohort 5.

It sounds like there is no native implementation of Ephemery on Lighthouse and Reth (links provided below) so far. I might be wrong though, so as always, do your own research. Thus, if you are interested in working on those clients, give it a shot. What is available for now is that one can [manually](https://github.com/ephemery-testnet/ephemery-scripts/pull/12) set up the testnet.




Ephemery has been natively developed on [Lodestar](https://github.com/ChainSafe/lodestar) (typescript CL client) mostly by [Holly](https://github.com/ChainSafe/lodestar/pull/6054), and also [Besu](https://github.com/hyperledger/besu/pull/7563/), [Teku](https://github.com/Consensys/teku/pull/8543), by Glory. You might be curious about what I'm going to do on Besu. There are some remaining tasks on Besu to finish the native development of Ephemery. [Here](https://hackmd.io/@0xEllie/SkxwSfKHgl) in my project proposal, I've sorted out tasks and also my approach toward getting it done.

Ephemery onLighthouse:
https://github.com/sigp/lighthouse/issues/4664
https://github.com/sigp/lighthouse/pull/4764
https://github.com/search?q=repo%3Asigp%2Flighthouse%20ephemery&type=code 


Ephemery on reth:
https://github.com/paradigmxyz/reth/issues/4340  
https://github.com/paradigmxyz/reth/pull/5124
https://github.com/search?q=repo%3Aparadigmxyz%2Freth%20ephemery&type=code 