Decent Framework
A wiki repo for Decent Framework, a framework for building secure distributed applications with enclaves.
Primary Projects
(Ordered from most recent to oldest)
Publish/Subscribe system (Decentagram)
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
- On-chain Broker
- Off-chain Broker
- Decent RA on-chain
- DecentRevoker
- Automated revocation of Decent components by using Ethereum smart contracts
- off-chain broker
- on-chain smart contract
Total Eclipse Detection
These are implementations for the paper Total Eclipse of the Enclave: Detecting Eclipse Attacks from Inside TEEs
- EclipseMonitor
- Ethereum Difficulty Monitor Experiment
- DecentEthereum
Remote Attestation (DecentRA)
Enables mutual remote attestation between different enclave components
These are implementations for the paper Secure Distributed Applications the Decent Way
- DecentRA API
- DecentRA Server
- Sample Applications 1: DecentRide
- Sample Applications 2: DecentHT
- Formal Proofs: DecentRA Verif
- Benchmarks: DecentTester
Decent Enclave Library
- 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
Utility Libraries
- SimpleUtf
- SimpleObjects
- 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
- 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
- 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
- Unit Tests Status:
- mbedTLScpp
- SimpleBoostSelector
- SimpleCMakeScripts
Forked Libraries
- MbedTLS
- wasm-micro-runtime
- wabt