So I was bored and I came up with a simple p2p network idea. Here it is. A network consists of nodes and a central inform server. When a node starts it registers with the inform server.
Clients read the list of nodes from the inform server.
They hash the address of each node. To request a file, for each chunk hash, request it from the closest node. If any chunks fail, use the redundant chunks to reconstruct the data, and reinsert the missing chunks. It's not as magical as Freenet, which means it stands a good chance of actually working.