apache / incubator-teaclave

Apache Teaclave (incubating) is an open source universal secure computing platform, making computation on privacy-sensitive data safe and simple.
https://teaclave.apache.org
Apache License 2.0
766 stars 159 forks source link

Rust toolchain update #664

Closed henrysun007 closed 1 year ago

henrysun007 commented 2 years ago

Motivation & problem statement

Current rust version is nightly-2020-10-25. It is two years behind nightly-2022-10-22 that is supported by Teaclave SGX SDK.

The upgrade plan was also asked. #656 The old toolchain is not supported by macos-12. #662

Proposed solution

Use v2.0.0-preview of Teaclave SGX SDK, which supports cargo-std-aware.

The 2.0 version reimplements SGX Trts, protected file system and other modules with rust. Some underling SGX structures are refactored becoming more "rust". The version is still under preview.

Strength

Refer to README of Teaclave SGX SDK.

Weakness

I encounted some encalve crashes due to its incompatibility with Intel's implementation when I updated another project using the 2.0 version.

Describe alternatives you've considered

Use v1.1.5 of Teaclave SGX SDK. Hundreds of third-party rust crates need to be modified.

Please give some advice, thanks!

@volcano0dr @mssun

henrysun007 commented 2 years ago

Just talked with @volcano0dr. Teaclave SGX SDK 2.0.0 will not have breaking changes in the future and is becoming stable. It seems a good choice to upgrade to the 2.0.0 version. Let me know if you guys have any suggestions.