Currently, EncryptSymphonyData generates random nonces for every packet using crypto/rand.Read. While the actual encryption (AES-GCM) utilizes CPU hardware acceleration (AES-NI), the nonce generation introduces a significant bottleneck.
Code pointer: https://github.com/appnet-org/arpc/blob/main/pkg/transport/encryption.go#L245
Switch to Deterministic Nonces (RPC ID-based) to eliminate the syscall overhead.
Check quic-go's implementation.