# P2P

To make the network fully decentralized, nodes need to talk to each other frequently to keep the network moving. There will be a lot of communication going on in the process, which consumes a lot of bandwidth, which a a major factor affecting overall network throughput.

## 1. Bandwidth

The overall bandwidth requirement is pretty much determined by the number of nodes and the data volume. With a slow network connection, even if a node can process enough transactions, the overall network TPS won’t be high enough because of the communication overhead. The network communication is another major factor that determines network throughput.

## 2. Scaling

Arcology allowing binding multiple P2P services together to work around the bandwidth limit. This feature is especially useful in a cloud environment. On platform like AWS, there is an upper limit on how much bandwidth each machine can have. For example, an Arcology node cluster can dynamically start 4 instances of the P2P services and have them deployed on 4 machines. If one machine has 5G of bandwidth, by combining 4 machines together, there is a total bandwidth of 5G x 4 = 20G.

![multi p2p](https://2830574769-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdh3lVEKBH6C8t0LM3wpG%2Fuploads%2Fgit-blob-4978590bd5caa73718115e386b8f0e2457c0edf6%2Fmulti-p2p.svg?alt=media)

## 3. Dynamic Adjustment

The P2P service can dynamically adjust itself connections according to the bandwidth requirement and network status.
