Since I released Chorus, there have been 5 point releases. Each one is because of a significant bug. There has been other work, only the significant bugs fixed are listed here:

Version 1.0.1: FIX: AUTH was broken (bad time comparison)

Version 1.0.2: FIX: Deletion of replaced replaceable events was deadlocking

Version 1.0.3: FIX: LIMIT was happening before screening, so the total events supplied was often too low.

Version 1.0.4: FIX: Events after EOSE were not being screened.

Version 1.0.5: FIX: A tokio runaway performance issue is resolved.

I'm pretty happy with how the relay is operating now. I've tested a number of things and behavior is as expected.

As for peformance (since the 1.0.5 fix), it is using 0.58 seconds of CPU time per hour.

Compare that to my nginx daemon is using 285 seconds of CPU time per hour.

Reply to this note

Please Login to reply.

Discussion

I honestly don't know WTF nginx is doing. It continues to use 6% of CPU pretty much all the time even though it is only getting maybe 10 requests per minute. I've read a number of "optimizing" guides to no avail. Do I need to write an efficient webserver? Nginx is getting pretty old by modern coding standards.

Haproxy is better, but it's not a 'webserver' per-se

Is Caddy a good alternative?

Might be. I should try it.

BTW I'm running my chorus relay on port 444 without any reverse proxying, doing all the SSL in rust. Banned IPs get dropped prior to SSL setup.