A wiki repo for Decent Framework, a framework for building secure distributed applications with enclaves.
(Ordered from most recent to oldest)
These are the implementations for the paper Decentagram: Highly-Available Decentralized Publish/Subscribe Systems
The paper can also be accessed via https://dsn2024uq.github.io/Proceedings/pdfs/DSN2024-6rvE3SSpzFYmysif75Dkid/410500a274/410500a274.pdf
- Submitted Artifact
- This is the artifact package submitted to the DSN 2024 conference
- This artifact received the Distinguished Artifact Award from the DSN 2024 conference
- The formal DOI for this artifact is https://doi.org/10.5281/zenodo.10224298
- Git Repo: https://github.com/lsd-ucsc/Decentagram
- Repo visibility: Public
- Open source: MIT license
- Below are the major components of the Decentagram implementation
- On-chain Broker
- The on-chain broker for Decentagram
- Git Repo: https://github.com/lsd-ucsc/decent-pubsub-onchain
- Repo visibility: Public
- Open source: MIT license
- Off-chain Broker
- Please refer to the DecentEthereum in Total Eclipse Detection section for more details
- Decent RA on-chain
- On-chain smart contract for Remote Attestations of secure enclaves
- Git Repo: https://github.com/lsd-ucsc/decent-ra-onchain
- Repo visibility: Public
- Open source: MIT license
- DecentRevoker
- Automated revocation of Decent components by using Ethereum smart contracts
- off-chain broker
- The off-chain broker for DecentRevoker
- Git Repo: https://github.com/lsd-ucsc/DecentRevoker
- Repo visibility: Public
- Open source: MIT license
- on-chain smart contract
- The on-chain smart contract for DecentRevoker
- Git Repo: https://github.com/lsd-ucsc/decent-revoker-onchain
- Repo visibility: Public
- Open source: MIT license
These are implementations for the paper Total Eclipse of the Enclave: Detecting Eclipse Attacks from Inside TEEs
-
EclipseMonitor
- Git Repo: https://github.com/lsd-ucsc/EclipseMonitor
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
- Git Repo: https://github.com/lsd-ucsc/EclipseMonitor
-
Ethereum Difficulty Monitor Experiment
-
DecentEthereum
- A Ethereum Light client running inside of enclave
- It provides block header hash verification service and smart contract event subscription service
- Git Repo: https://github.com/lsd-ucsc/DecentEthereum
- Repo visibility: Public
- Open source: MIT license
Enables mutual remote attestation between different enclave components
These are implementations for the paper Secure Distributed Applications the Decent Way
-
DecentRA API
- C++ library for DecentRA
- Git Repo: https://github.com/zhenghaven/decent-ra-api
-
DecentRA Server
- Implementation of DecentRA Server, which is used for generating SA report for local Decent components
- Git Repo: https://github.com/zhenghaven/decent-ra-server
-
Sample Applications 1: DecentRide
- Ride-sharing application built based on the micro-services architecture similar to Uber
- Git Repo: https://github.com/zhenghaven/decent-ridesharing
-
Sample Applications 2: DecentHT
- Distributed Hash Table (DHT) implemented with DecentRA, where only authorized Decent components can access the data
- Git Repo: https://github.com/zhenghaven/DecentDHT
-
Formal Proofs: DecentRA Verif
- Formal verification of the DecentRA protocols using ProVerif
- Git Repo: https://github.com/zhenghaven/DecentRaVerif
-
Benchmarks: DecentTester
- YCSB benchmarks on DecentHT
- Git Repo: https://github.com/zhenghaven/DecentTester
- DecentEnclave
- This is the new repo replacing the decent-ra-api of the DecentRA project
- All utility and helper classes and functions have been separated out from
the
decent-ra-api
and became individual libraries and repos mentioned in this documentation - DecentEnclave is now only focusing on the foundational functionalities of the Decent Enclave framework
- Git Repo: https://github.com/zhenghaven/DecentEnclave
- Repo visibility: Public
- Open source: MIT license
-
SimpleUtf
- A simple and lightweight C++ library used to convert characters among UTF-8, UTF-16, and UTF-32
- Git Repo: https://github.com/zhenghaven/SimpleUtf
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleObjects
- A simple and lightweight C++ library implements dynamic object types
- Git Repo: https://github.com/zhenghaven/SimpleObjects
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleJson
- A simple and lightweight C++ library parses JSON encoded messages into SimpleObjects, and encodes SimpleObjects into JSON messages
- Git Repo: https://github.com/zhenghaven/SimpleJson
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleRlp & AdvancedRlp
- A simple and lightweight C++ library parses RLP and AdvancedRLP encoded messages into SimpleObjects, and encodes SimpleObjects into RLP or AdvancedRLP messages
- Git Repo: https://github.com/zhenghaven/SimpleRlp
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleSysIO
- Provides virtual classes / interfaces for System IO operations, such as read/write files and TCP connections
- It also provides implementation for SystemIO outside of an enclave environment, by using C standard library and Boost library
- Git Repo: https://github.com/zhenghaven/SimpleSysIO
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
mbedTLScpp
- This library provides many C++ class wrappers for MbedTLS C objects
- Git Repo: https://github.com/zhenghaven/mbedTLScpp
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleBoostSelector
- A set of CMake scripts utilize CMake's FetchContent module to help you to only fetch the Boost sub-libraries that are needed by your project
- Git Repo: https://github.com/zhenghaven/SimpleBoostSelector
- Repo visibility: Public
- Open source: MIT license
- Unit Tests Status:
-
SimpleCMakeScripts
- Provides some helper CMake scripts to setup:
- Unit test code coverage report
- Decent Enclave CMake targets
- Git Repo: https://github.com/zhenghaven/SimpleCMakeScripts
- Repo visibility: Public
- Open source: MIT license
- Provides some helper CMake scripts to setup:
-
MbedTLS
- Git Repo: https://github.com/zhenghaven/MbedTLS
- We added additional CMake targets for DecentEnclave related projects
-
wasm-micro-runtime
- Git Repo: https://github.com/zhenghaven/wasm-micro-runtime
- We added additional CMake targets for DecentEnclave related projects
-
wabt
- Git Repo: https://github.com/zhenghaven/wabt
- We added additional CMake targets for DecentEnclave related projects