Here are the key aspects of peer-to-peer system architecture:
1. Decentralized network with no central authoritative server. Peers are both suppliers and consumers of resources.
2. Dynamic membership - peers can join and leave the network at any time.
3. Self-organizing - peers must discover each other and organize routing/searches with no central coordination.
4. Distributed hash table (DHT) - peers store and retrieve data from each other based on file hash/attribute keys in a DHT overlay network.
5. Incentive mechanisms - some systems use incentives/credits to encourage sharing and prevent free-riding.
6. Caching/replication - popular content