---
title: EPF Cohort 4 - Week 12 Updates
---
Hey there, I am Manav Darji and these are my updates for week 12 (02/10 - 08/10). The goal of this week was to continue on the geth PR and try to complete the block verification engine API.
Updates
- Geth PoC
- Completed the implementation of the last engine API `engine_newPayloadVePBS` which does the block verification before it's imported. It does the following things.
- Takes a new block payload as input along with an inclusion list which it satisfies, the parent hash it's built upon and an exclusion list.
- Inclusion list as mentioned in the specs is list of (address, gasLimit) pairs which the block needs to include *on top*.
- Exclusion list is nothing but a list of index of transactions of parent block which represents the transactions in current inclusion list and can be removed from verification
- This needs to be done because when the inclusion list is proposed, the current block payload isn't revealed. Hence there can be inclusion of *some* of the transactions which inclusion list was referring to in the current block's payload intentionally or un-intentionally.
- **This verification happens before the block goes for the state transition**
- The scope of verification assumes the block won't be verified if wrong lists (inclusion and exclusion both) are constructed. This is also proven in the consensus specs.
- The function verifies if the block has transactions which satisfies the inclusion list voted upon in the previous block.
- It returns appropriate errors if not.
Next steps
- Test the above implementation
- I found that the engine API specs (in execution-specs repo) are a bit outdated and can be a bit verbose given the things I've implemented. Moreover, at some places it doesn't follow the same structure as defined in previous specs. I plan to update that in the coming weeks.
[Back](https://hackmd.io/@manav2401/epf-project-updates)