The whitepaper for the Citadel Protocol can be found in the repository here. Note: this whitepaper has not been updated since July 2022. While the protocol is very similar to what is covered in the whitepaper, it has since evolved. The whitepaper will be synced to the source code in the near future.
For examples on building applications, please check the docs
OpenSSL and clang are required in order to compile the libraries. View the CI files in .github for an example of getting the code to compile on a bare machine
When running unit tests inside citadel_sdk
, you must run the tests with the feature localhost-testing
enabled, and, allow only one test to run at a time (b/c of a static Arc<Barrier>
for synchronizing between peers) via -- --test-threads=1
example: cargo test --package citadel_sdk --features=localhost-testing -- --test-threads=1
Not only does allowing one test at a time help with synchronization, it also helps with reading debug info too.
The target triple wasm32-wasi
is a WIP for support. These commands should be executed in order to compile to wasm
```bash
curl https://wasmtime.dev/install.sh -sSf | bash
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sysroot-12.0.tar.gz tar -xvzf wasi-sysroot-12.0.tar.gz rm wasi-sysroot-12.0.tar.gz
export WASISDKDIR="$(pwd)/wasi-sysroot" export WASMTIMEHOME="$(pwd)/.wasmtime" export PATH="$WASMTIMEHOME/bin:$PATH" export RUSTFLAGS="--cfg tokio_unstable"
export PATH="/opt/homebrew/Cellar/llvm/
Additionally, the feature wasm
should be enabled when checking/compiling.
Thomas Braun - Founder
Contributions are welcome! I have been the only developer for the past 5 years, and, need more people to help make the ecosystem flourish.