The code you referred to is exactly Fortanix's code. The JoinHandle is 
implemented using untrusted Mutex. I don't think their implementation could 
provide any trustworthiness. They bring too much uncertainty to the SGX 
environment. Personally, I strongly disagree with their implementation because 
they provide a LibOS-like Rust-SGX environment without any ability to 
control/audit the usercalls in compile time. It sounds like pushing the 
programmers to the edge of a cliff and say: you have the choice to not step 
forward. As an experienced researcher, you can hardly got away from the falling 
down because too much stuffs depends on their usercalls. The bad design is not 
desired by Fortanix, but a result of combining libstd to an environment without 
thread/fs/time/env/process/net. Similar runtimes such as webassembly are facing 
the same problem. I think you must know 
[pwasm-std](https://github.com/paritytech/pwasm-std). Parity create this to 
provide a real runtime for wasm instead of using the default one -- you can 
open a file in a .rs file and compile it to webassembly, which would triggers a 
runtime panic. "if it builds, it works" is not true today, due to a bad design 
of libstd.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/dmlc/tvm/issues/2887#issuecomment-480156261

Reply via email to