This is the 2.8.0 release for the mandatory service node upgrade required before block 1,641,104 @ 31 July 2024, 23:30 UTC. It should be installed alongside oxen-core v10.6.0.
What's Changed
Following our previous release which fixed crashes in the storage server, upon network stability returning, we identified further bottlenecks in the Storage Server's ability to proxy requests to the Session file server and Session Communities. This new release introduces a much improved capacity for managing such pending requests which drastically increases the network's capacity and will reduce the number of timeouts and retries for file upload/downloads and connections to Communities.
The technical details
In previous releases, the storage server used a limited size pool of connections for proxied HTTP/HTTPS connections from the final hop to a Community or to the Session file server, with one thread started to handle each connection. This threadpool had a fairly small limit, however, and once the pool was full new requests would have to wait until an existing request was finished. As the network activity has grown, it has become more and more likely for this limit to be hit, introducing delays into proxied requests. Worse, if many requests themselves were slow (such as from an overloaded Community, or from many simultaneous requests momentarily slowing down the Session file server), these slow connections would cause timeouts, causing Session clients to retry, adding to the network load and network timeouts.
This new release completely replaces the old, one-request-per-thread implementation with an asynchronous implementation using the same underlying event processing as our recently added quic implementation, which is capable of managing a large number of parallel requests at once without individual slow requests blocking other pending requests, and with better performance than the old implementation.
Upgrading
As usual, upgrades for Debian 11+ and Ubuntu 20.04+ are available from our APT repository. Static binaries for other users are available below.
Signatures for static release binaries
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Signed SHA256 hashes of release files. These are signed using Jason's GPG
key available at:
- the oxen-io/oxen-core repository, at /utils/gpg_keys/Jason.asc
- OpenPGP key servers (Jason Rhinelander <[email protected]>, A88D4262)
- https://imaginary.ca/public.gpg
- https://github.com/jagerman.gpg
9488e04da2c687378b3966efe97092b5c5cfca1b7fa07aaf4f0367f2c8eb788f oxen-storage-linux-x86_64-2.8.0.tar.xz
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEZjYdjjyW5Bxty3BRxJks56iNQmIFAmae3toACgkQxJks56iN
QmKWcA//U3TmRy9A7SmtLxx825UHSjzVqzx3kFLKEVGS+a8GU3Bl3bxB8YKsxHEF
xCEQG4KHORzhr/hX/HCweEXyKhmyVUH/2uCKMBkZ+n4xgzFf683h6Rwwhxqc6XAo
mCl6+0E8u4HjqM97GFKIcR7WR7W93IjW3IgS2E7oRAN36HFU5qFUYkiYZak4hSNp
UPtq8GnEfOKBfGAB0i+YN3fpVef857IQX0WgG4sP49Uj3NqIQ52Xnu8fI6aeiWSF
50M0inIb/WHD25A2R0R8SDODKMNM9zrjQdwZlHHkgm4ccxeNaIrsdSDLKP67+4Gb
NA+qW5MVFdaiX/b+6OUFWGCWWfF4Qxwwmu1ZSnpyz3KtjjXUIgoJhV4ZGKUsPCMc
rsIOVk3dMdljYU1/kHlkcUS7C/Z+WNXPTujp6FpBiCEPqludITZYygmv1DWupW1e
MJWk389HW4OFf7AYZYbpy9b26qRTbC3zEgff0LQBDNjLccORiUhhkQ+pbNjc9yTf
H7YAy7Ctu8rHtbU9ym74Ksb5EMCZvjY23uJNLOU940UHldZyan10WBXYe3j81u9t
w2rhP8MVOjS0/teRIIOMMsDJNRIprv3zBPKOw3kH4oHahftFcmsOGLC6vr2M9BKX
VRM7BEDObvFyx5QPx+3UV7H96EckMgj7ehO3jJU02s73kkLPQhQ=
=noDg
-----END PGP SIGNATURE-----