I guess maybe a bigger obstacle is dealing with floating point numbers… there’s no solution to include floating point operations in contracts, yet, correct?
I suppose one workaround is to use fixed-point arithmetic fixed - Rust . It would be slower but do-able. would mean needing to re-implement a lot more of the smartnoise lib.
Your conclusions are correct, I’m afraid. And in fact we do use decimal libraries, and only use pseudo-randomness. Another problem with openssl is that it depends on dynamic loading of system libraries, which is just not a thing in our runtime (Wasm inside SGX), and even if it didn’t use dynamic linking, openssl uses a bunch of system components which are not available to contracts.