Isn’t all this encryption going to make things totally slow?
The answer to this is, that encryption is incredibly fast. GNUnet uses mostly AES-256, a very fast and secure cipher. What really often makes anonymous file-sharing slow are artificial delays that were introduced to make timing analysis hard and to group messages into larger packets. The reason is, that this makes it harder to correlate actions. GNUnet must wait for enough traffic from other peers to make it plausible that the traffic did not originate from the local peer. Larger delays also allow for more reordering of messages by the individual peer. By allowing peers to delay messages, it is easier for them to build more efficient messages. The primary cause of CPU consumption in the current implementation are algorithms for message scheduling. GNUnet peers try to maximize bandwidth utility by reordering messages. Also performing downloads in parallel can cause some significant accounting issues.
The answer to this is, that encryption is incredibly fast. GNUnet uses mostly AES-256, a very fast and secure cipher. What really often makes anonymous file-sharing slow are artificial delays that were introduced to make timing analysis hard and to group messages into larger packets. The reason is, that this makes it harder to correlate actions. GNUnet must wait for enough traffic from other peers to make it plausible that the traffic did not originate from the local peer. Larger delays also allow for more reordering of messages by the individual peer. By allowing peers to delay messages, it is easier for them to build more efficient messages. The primary cause of CPU consumption in the current implementation are algorithms for message scheduling. GNUnet peers try to maximize bandwidth utility by reordering messages. Also performing downloads in parallel can cause some significant accounting issues. Many datastructures used currently are simple lists that take time linear to their size