“Blocks-first” refers to a method of synchronizing with the Bitcoin blockchain where the client downloads and verifies full blocks of transactions. This is done in sequential order from the genesis block to the current tip of the blockchain. This is in contrast to the “headers-first” approach, where the client first downloads and verifies the block headers, and then downloads the full blocks.
In the blocks-first approach, the client begins by downloading the genesis block, and then requests subsequent blocks from a peer. The client verifies each block before requesting the next one, ensuring that the blockchain is valid and that each block contains a valid Proof-of-Work.
This process continues until the client reaches the current tip of the blockchain. The blocks-first approach is generally slower than the headers-first approach because it involves downloading and verifying the entire block for each block in the blockchain. However, it provides a higher level of security because it verifies the entire block, including all transactions, rather than just the block header.