This is the archival repository for the source code of Decentagram submitted to Artifact Evaluation (AE) of DSN 2024. The repository with DOI assigned made for the AE submission is available at: https://doi.org/10.5281/zenodo.10224298
Please note that this is an archival repository. Therefore, the source code stored here is not being actively maintained. For links to the actively maintained repositories, please read below.
Distinguished Artifact Award at DSN 2024
Code Reproducible (subsumes both the “Reviewed” and “Available” badges)
cameraready.pdf
: This is the paper associated with this workartifact-eval-steps.pdf
: This document lists the steps to run AEpubsub-onchain
- Actively maintained repository: https://github.com/lsd-ucsc/decent-pubsub-onchain
- This directory contains the source code for the Publisher, Subscriber, and Broker contracts.
revoker-onchain
- Actively maintained repository: https://github.com/lsd-ucsc/decent-revoker-onchain
- This directory contains the source code for the revoker contracts.
Ethereum
- Actively maintained repository: https://github.com/lsd-ucsc/DecentEthereum
- This directory contains the source code for the Ethereum client, which acts as an off-chain broker introduced in our paper.
Revoker
- Actively maintained repository: https://github.com/lsd-ucsc/DecentRevoker
- This directory contains the source code for the off-chain revocation list monitor.
libs
contains all the libraries needed to compile the programs and contracts. It also contains helper programs to deploy contracts on the EVM-compatible networks. Here, we will be highlighting some of the important libraries:ra-onchain
:- Actively maintained repository: https://github.com/lsd-ucsc/decent-ra-onchain
- This library contains the smart contracts for on-chain parsing and verification of the Decent Self-Attestation certificates generated by enclaves.
PyEthHelper
andPyEthHelper2
:- Actively maintained repository: https://github.com/lsd-ucsc/PyEthHelper
- This is the helper program that interacts with the Ethereum network via JSON-RPC over HTTP. It is used to deploy contracts, send transactions, and call contract functions.