Abydos Tutorial
This is the companion repository for the KERI Tutorial Series: Treasure Hunting in Abydos! Issuing and Verifying a Credential (ACDC) blog article.
- KLI: Use the KERI Command Line to create witnesses, controllers, and issue credentials
./workflow.sh
- Agents: Use KERI Agents to create controllers and issue credentials. Uses the KLI for witness creation.
./workflow.sh -a
- kaslcred for generation of schemas
- vLEI server (vLEI-server)
- sally
See the installation section for a detailed dependency set up walkthrough.
- vLEI-server: https://github.com/WebOfTrust/vLEI
- sally (my fork): https://github.com/kentbull/sally
Install Kaslcred from PyPi like so:
python3 -m pip install kaslcred==0.1.6
KASLCred depends on the following libraries being installed:
- KERIpy
- Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- Libsodium:
brew install libsodium
- Rust:
Install version 1.1.20 of KERIpy from PyPi: you have to install from source like so:
python3 -m pip install keri==1.1.20
KERIpy further depends on the following set of dependencies being installed:
Install with the typical script.
# the "-s -- -y" options are for a silent, unattended install. Omit them if you want to configure the install.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# Remember to set the PATH variable to include the Cargo binary directory like so: PATH="$HOME/.cargo/bin:$PATH
The Homebrew installation of Libsodium is not sufficient, or did not work for me. I had to do the following instructions like stated in Libsodium's Gitbook Installation documentation
You need Libsodium on your PATH.
Download a tarball of libsodium, preferably the latest stable version, then follow the ritual:
./configure
make && make check
sudo make install
The vLEI-server binary is created from the WebOfTrust/vLEI repository.
Install it like so:
git clone https://github.com/WebOfTrust/vLEI.git
cd vLEI
python -m pip install -e ./
# installs the vLEI-server binary to your Python bin directory.
The sally component is a small credential handler wrapper on top of KERIpy.
You could think of it as a custom controller.
Make sure to download my fork at https://github.com/kentbull/sally.
Sally depends on KERIpy so all of KERIpy's dependencies must be installed including Rust and Libsodium.
Do not use the GLEIF-IT/sally upstream repository unless you want to write your own customizations.
If you end up writing a lot of customizations you may as well write your own custom controller from scratch using my fork and the GLEIF-IT sally as inspiration.
This means you don't have the configuration directory properly set, or you may not be running the script from the root of this repository.
Make sure you are running the script from the root of the repository.
Use "${VARNAME}"
instead of ${VARNAME}
. See SC2086