Happy New Year everyone!
Summary for this week:
Next week:
Pull request: lighthouse#3830
My PR was merged to eip4844
branch earlier this week.
Since this endpoint isn't part of the standard API yet, I have implemented it under the /lighthouse
path for now - this is where the "non-standard" endpoints sit. There is an open issue to formally add this to Beacon API spec, which I plan to work on soon.
If you're interested in trying this out, below are the steps:
local_testnet
script from hereblob-utils
:blob-utils tx --rpc-url http://localhost:6001 --blob-file ./blob.txt -to 0xC8D369B164361A8961286CFbaB3bc10F962185a8 --private-key 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8 --gas-limit 210000 --gas-price 20000000000 --chain-id 4242 --priority-gas-price 2000000000 --max-fee-per-data-gas 3000000000
curl http://localhost:8001/lighthouse/beacon/blobs_sidecars/19823
Below are some example outputs:
curl -s http://localhost:8000/lighthouse/beacon/blobs_sidecars/1617 | jq .
{
"data": {
"beacon_block_root": "0x8cc186bbb9ae722211764d54d4eaaab3a383e6ca09dc9a08521b722905d81a73",
"beacon_block_slot": "1617",
"blobs": [],
"kzg_aggregated_proof": "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
}
curl http://localhost:8000/lighthouse/beacon/blobs_sidecars/1616 | jq .
{
"data": {
"beacon_block_root": "0x143150075e8fbd835397c57441d66f5b2d39f5b4c894935f7c964c90899ed7e7",
"beacon_block_slot": "1616",
"blobs": [
"0x3000000000000000000000000000000000000000000000000000000000000000000000000000000000..."
],
"kzg_aggregated_proof": "0xa5926e75519eef67bd4f40cc256e815173c7b4e9fcdd8400ee007692447187e2adc7ddc00ed7b00e680d4cb8d0ae48f0"
}
}
curl -s http://localhost:8000/lighthouse/beacon/blobs_sidecars/genesis | jq .
{
"code": 404,
"message": "NOT_FOUND: Blob with block root 0x9247…c507 is not in the store",
"stacktraces": []
}
I've started working on some tests for this endpoint, and it has been quite challenging as it requires a bit of work to get the test infra setup, e.g. the mock execution layer would need to support forkChoiceUpdatedV2
, getPayloadV3
, as well as the get blobs method - it needs to be able to produce valid blobs sidecars. I've got some help from @realbigsean, so hopefully I'll get this working next week!
I've created a docker-compose setup for running a node on devnet v3: https://github.com/jimmygchen/devnet-v3.
I was able to sync a Lighthouse node all the way to slot 10207, which is the maximum slot that we can sync to right now as the chain has stalled there. I'm not sure exactly what happened, there were some discussions on R&D discord #4844-testing
channel, but this is great effort from the core devs as we've now got multiple clients running on devnet-3, and the group is now looking to start planning for devnet v4.
Last week we had an AMA session with Piper Merriam in the EPF Office Hour call. It was very insightful as Piper was quite generous with sharing his own views and experiences. He gave some really good advices on the fellowship program and becoming a core dev. What he said really resonated with me, and I hope to continue to create positive impact on things I deeply care about, hopefully beyond the EPF program, which is now just less two months to the finishing line!
I've dropped my notes here. I would encourage anyone interested in pursing protocol development to watch this recording here:
https://drive.google.com/file/d/16V09u55059yYWwpGkrgmx-MLuVQWj2ar/view?usp=sharing
And that's all for now, thanks for reading!