https://github.com/trustbloc/sandbox
Demonstration environments
https://github.com/trustbloc/sandbox
decentralized-identifiers did didcomm verifiable-credentials
Last synced: 12 months ago
JSON representation
Demonstration environments
- Host: GitHub
- URL: https://github.com/trustbloc/sandbox
- Owner: trustbloc
- License: apache-2.0
- Created: 2020-01-06T21:07:03.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2023-08-17T14:59:40.000Z (almost 3 years ago)
- Last Synced: 2025-03-28T15:51:50.140Z (about 1 year ago)
- Topics: decentralized-identifiers, did, didcomm, verifiable-credentials
- Language: Go
- Homepage:
- Size: 9.03 MB
- Stars: 21
- Watchers: 12
- Forks: 31
- Open Issues: 96
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/trustbloc/sandbox/releases/latest)
[](https://raw.githubusercontent.com/trustbloc/sandbox/main/LICENSE)
[](https://godoc.org/github.com/trustbloc/sandbox)
[](https://dev.azure.com/trustbloc/edge/_build/latest?definitionId=27&branchName=main)
[](https://codecov.io/gh/trustbloc/sandbox)
[](https://goreportcard.com/report/github.com/trustbloc/sandbox)
# sandbox
Sandbox contains the sample implementations of Issuer and Verifier/RP to demonstrate the following main features provided
by the [TrustBloc](https://github.com/trustbloc) projects.
- [W3C Verifiable Credential(VC)](https://w3c.github.io/vc-data-model/)
- [W3C Decentralized Identifier(DID)](https://w3c.github.io/did-core/)
- [Hyperledger Aries](https://www.hyperledger.org/use/aries)
- [DIF Sidetree](https://identity.foundation/sidetree/spec/)
- [DID Orb Method](https://trustbloc.github.io/did-method-orb/)
## Projects
Follow this [link](docs/projects/README.md) to learn more about all the TrustBloc projects and APIs.
## Sample Applications
- [Issuer](docs/issuer/README.md)
- [Relying Party/Verifier](docs/rp/README.md)
- [Anonymous Comparator and Extractor - Relying Party (ACE-RP)](docs/ace-rp/README.md)
## Demo
- [TrustBloc OpenID for Verifiable Credentials (OpenID4VC)](docs/demo/background-check-usecase.md)
- [TrustBloc VCS](docs/demo/sandbox_vcs_playground.md) : CHAPI + VC Services + Selective Disclosure
- [Flight Boarding use case](docs/demo/flight-boarding-usecase.md)
- [TrustBloc Adapter](docs/demo/sandbox_adapter_playground.md) : [CHAPI](https://w3c-ccg.github.io/credential-handler-api/)/[WACI-PEx](https://identity.foundation/waci-presentation-exchange/) + DIDComm
- [Duty Free Shopping use case](docs/demo/duty-free-shop-usecase.md) (WACI-PEx (Issuance + Share) + DIDComm V2)
- [New Bank Account use case](docs/demo/new-bank-account-usecase.md) (CHAPI + DIDComm V1)
- [TrustBloc Anonymous Comparator and Extractor(ACE)](docs/demo/sandbox_ace_playground.md)
## Components
- [TrustBloc VCS](docs/components/vcs_components.md)
- [TrustBloc Adapter](docs/components/adapter_components.md)
- [TrustBloc Anonymous Comparator and Extractor(ACE)](docs/components/ace_components.md)
## OpenAPI specifications
- Follow this [link](docs/index.md)
## Build and Deployment
For pre-requisites, please refer [TrustBloc k8s deployments](https://github.com/trustbloc/k8s/blob/main/README.md).
Also, [refer](./docs/dev_steps.md) for detailed steps to update components in sandbox.
The sandbox k8s is dependent on [TrustBloc k8s](https://github.com/trustbloc/k8s). The TRUSTBLOC_CORE_K8S_COMMIT
variable in [Makefile](Makefile) points to the TrustBloc k8s deployment version. In case of any code/docker
image changes to the underlying components, update the variable with [k8s commit id](https://github.com/trustbloc/k8s/commits/main).
Alternatively, uncomment the [symlink command](./k8s/scripts/core_deployment.sh) to point it to the cloned TrustBloc k8s repo.
Run following target to run the components locally.
```
# builds the sandbox images, creates k8s cluster and deploys the trustbloc components
make build-setup-deploy
# pulls the sandbox images from remote registry, creates k8s cluster and deploys the trustbloc components
make setup-deploy
# stops the k8s cluster
make minikube-down
# undeploys all the components without bringing down minikube
make undeploy-all
# deploys all the components provided minikube is up
make deploy-all
```
The SSL CA cert located inside `~/.trustbloc-k8s/local/certs/` need to be imported to system cert chain.
Refer [Build and Deployment](./docs/demo/build.md) for more information
## Automated testing
Use following targets to run the automation tests built using [WebDriverIO](https://webdriver.io). To run
this, [npm](https://www.npmjs.com) need to be installed in the system.
```
# runs tests for configurations in ./test/ui-automation/wdio.conf.js (by default, it runs against local deployment)
make automation-test
# runs tests against locally deployed k8s cluster
make automation-test-local
# runs tests against cloud deployed dev k8s cluster
make automation-test-dev
```
## Workaround for connection issues when using a VPN on macOS
Certain VPNs (on the host machine) have known issues with port conflicts when using the Hyperkit driver. The Hyperkit
driver is used when running on an x86-64 machine.
If disabling the VPN is not possible, one workaround is to use the `docker` driver along with the `docker-mac-net-connect` brew service.
To do this:
1. Install the brew [docker-mac-net-connect](https://github.com/chipmk/docker-mac-net-connect) service: `brew install chipmk/tap/docker-mac-net-connect`.
2. Start the service: `sudo brew services start chipmk/tap/docker-mac-net-connect`. Note: must be started with root permissions.
3. Change the driver to `docker` in the `minikube_setup.sh` script.
## Contributing
Thank you for your interest in contributing. Please see our [community contribution guidelines](https://github.com/trustbloc/community/blob/main/CONTRIBUTING.md) for more information.
## License
Apache License, Version 2.0 (Apache-2.0). See the [LICENSE](LICENSE) file.