Try   HackMD

[WIP] Final dev update: Eth Deb Repository

Project abstract

This project is packaging the Ethereum clients for Debian-based systems while providing additional packages that make installing and running nodes much easier.

Running a node is hard, one-click installation through a command line or similar should be a norm. In-depth configuration should be an option and not a requirement.

Creating Debian packages is quite challenging if the official Debian way is followed. This project also extends official packaging without altering it by adding reusable specification files and building a system to hide the complexities of packaging.

This project is trying to adhere to Ethereum philosophy of sandwich complexity and hide many aspects of complexities:

  • node running
  • installations
  • how packaging is done
  • maintenance
  • security patching
  • configuration of nodes
  • and many more

Project proposal
Eth-deb
WIP Debcrafter docs

Status report

The current progress:

  • Packaging binaries
  • Creating working examples of packaging binaries and + services + configs together through apt repository
  • Build system for packaging
  • Documentation for Debcrafter
  • Documentation for the project

Future of the projects

I would like to keep working on this project because I think it has a great potential for the Ethereum ecosystem, and way beyond that as well.
The project is very close to finish, but there are a lot of areas that need more work, or stabilization work.

  • Fix nimbus, lighthouse, and besu packaging (the process for these 3 is slightly broken)
  • Fix the client issues that arose on the Debian system (bookworm, bullseye, buster)
  • Add additional architecture (arm, i386, etc)
  • Improve package testing with autopkg
  • Rewrite the build system to address its various issues. The initial build system was to provide a basic working example.
  • Extend the build system to include packaging for any client version.
  • Extend the build system so each new client release would result in a PR request to eth-deb.
  • Issues with the Distribution/Codename/component field
  • Reprepro has a couple of bugs when adding packages.
  • Improve the configuration options of the nodes. Add various options: testnet, devnet, etc.
  • Monitoring, Exposing API.
  • Extend debcrafter to support various packaging needs that arise as part of this task.
  • Add rpm. There are possibilities for this.
  • Set up Ubuntu distributions.

Self-evaluation, general feedback about my project and activity within EPF

I mentioned this before, but I jumped too soon into the project that I chose, which turned out to be quite a challenge.
If I were giving myself advice, I would tell myself to shop around more, because there are tons of mentors who I can learn a lot from. I found the mentors inspiring, humble, and extremely smart.
My second advice would be to do a less challenging project, we tended to have a sense that this is about showing off, which is not the case. The EPF program allows us a chance to get acquainted with the ecosystem which will need chats and calls with other developers to align ourselves with our chosen area of focus. Also whatever topic is chosen, it will be something challenging and that ends up being quite time-consuming to get to know, if you come without years of experience, and much of use tends to come without those.

My other personal feedback that I had a challenge with is my health. I did not communicate enough about the issues I was facing under the program. I think communicating about it, would have resulted in less stress.

Another thing, I would have done differently is to have someone to work alongside me. I found working alone quite challenging, I went off track 1-2 times, which resulted in the project delay. I don't think those delays, were useless, but should have come later.

Feedback about EPF

I found the EPF as an excellent chance to get to know more about Ethereum while being able to actively contribute back to the ecosystem.
I found the program useful for many reasons

  • there is access to core contributors where we can chat with them
  • we have fellows who are also on the same path as us, it's tremendously inspiring to see others working on similar projects and sharing pains and gains
  • we can choose to form teams or work alone, and on projects that feel would be a good fit for us
  • the program provides a path to becoming either a long-term contributor to the Ethereum ecosystem or a core developer
  • there is autonomy and flexibility while having a strong work ethos of making progress on chosen areas

I was based in Asia, for the 4 months the program took place. There were some issues with the late calls, but as there were few fellows from Asian timezones the time could not be adjusted.

I also wish there would be more fellows from Asia from future cohorts.