Different types of decentralized P2P applications and protocols have different structures of user data, and different ways of using that data, but they all share an underlying infrastructure.
Components of a typical P2P application