Over the past two weeks, my primary focus has been on completing the initial two phases of my project proposal.
This effort marks a step toward achieving the first two steps of my project proposal, enhancing monitoring capabilities, and providing valuable insights to users and developers.
In my last update, I emphasized that the final step would involve implementing comprehensive tests to examine the code, which introduces missed block metrics in LH.
I found myself delving into the code to comprehend how tests were conducted for other components, given the lack of available tests for the validator monitor component - the one responsible for appending metrics to a validator list that the node operator wants metrics from. Luckily, the LH team created a useful utility named 'harness beacon chain.' This tool conveniently allows a developer to mock its dependencies and establish the state of a beacon chain at a specified slot. Consequently, this facilitated the crafting of several test scenarios for my code, such as (eg. scenario 1):
As adding the missed non-finalized blocks is almost done, I moved on to the second part of my EPF project which is analyzing the BeaconProcessor and adding a Grafana dashboard that would potentially highlight some performance issues.
After a talk with Paul asking if I was on the right path, I kept on learning more about that Scheduler and the different tasks it's handling as well as its technical implementation.
I had to read a few things about the network layer Gossip and some specific events such as Gossip Lightclient events. You can find a comprehensive list here.
Having concluded the tests and validated the (nearly) final modifications with Paul Hauner, I will proceed to integrate the chart into the lighthouse-metrics repository. Consequently, Part 1 of my project proposal has nearly reached completion.
Upon conducting a more thorough investigation into Gossip, I will also incorporate a Grafana Dashboard.
Once everything is merged, I plan to compile my own version of LH and deploy it on either Holesky or Sepolia, depending upon the stability of the network. Interestingly, more missed blocks would actually be advantageous in my situation!