There is no right or wrong answer. Solutions should be well documented and explain every architecture decisions made along the way. Code should be written as a proof of concept demonstrating the core idea behind the solution to the problem. You may structure it as a module with a unit test or create a CLI to interact with it. If you are stuck of cannot find any satisfying solutions, you may write in details about all the possible solutions you tried and why they didn't work. You may also show your solution to any other dev to receive feedback before submitting it.
In a content delivery market, clients pay providers to retrieve content from their point of presence. Content is broken down into blocks formatted as merkle DAGs. Each block is represented by its content identifier (CID) made from the hash of the block and blocks can link to other blocks i.e. if a file is split into 4 chunks, the root block of a file can link to all its chunks.
In the market, clients query the network w