--- 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)