4k prime update fixed and problems with libpowmosm75.so

Earlier today (10/7/2020) we pushed an update to the xx network that increased the security of the encryption (details here). This update included modifications to the native library libpowmosm75.so, which the Server binary depends on. The file was not updated because the wrapper script did not have direct support for updating this file. As a result, the initial update failed.

We were able to push a patch to the wrapper script to allow us to update the file and quickly push the correct library file. Once we made the fix, we reverted the Wrapper Script.

The ability to push arbitrary updates is a result of the flexibility the wrapper script provides so we can fix issues like this which arise as part of the Beta process.

That said, such access is generally antithetical to decentralization and as a result Node operators have always had the ability to disable remote access through the Wrapper Script by disabling automatic updates. To do this, add the correct flag as detailed in the Wrapper Script Arguments section of the Beta Node Handbook. Note that any Node without automatic updates enabled will have to be manually kept up-to-date according to the Deployment Schedule found in the Beta Node Handbook to continue to receive compensation, if applicable.

If you are doing manual updates, you can find instructions to fix your node in the attached PDF.Update Lib.pdf (44.9 KB)

What is libpowmosm75.so?
libpowmosm75.so is a native library that we use to accelerate our cryptography on GPUs. It drastically speeds up modular exponentiations and other slow operations in the cMix precomputation.

The update increased the size of the prime number used to perform encryption in the cMix group. This makes the encryption more difficult to crack, but it also slows down the computations that are involved. Since libpowmosm75.so represents numbers with a size that is fixed at compile-time for speed reasons, recompiling and updating it was necessary to support the new prime number properly. The latest version supports several different prime sizes, so similar changes may not require a recompile in the future.

3 Likes

Running on autoupdates, but for some reason the dashboard was showing “error” from the time of update till manual restart of machine just now.

Not sure if this is considered good practice, but maybe worth forcing a restart upon such updates?