#did #vc #zkp #ssi #命令行界面

bin+lib va-de-evan

为vade提供的零知识证明VC和TnT DID处理

8个版本

0.3.0 2022年5月6日
0.0.8 2020年9月8日
0.0.5 2020年5月8日
0.0.4 2020年3月31日

#290 in WebAssembly

每月 25 次下载

自定义许可

170KB
3.5K SLoC

TypeScript 2K SLoC // 0.1% comments Rust 1.5K SLoC // 0.1% comments JavaScript 140 SLoC // 0.1% comments Java 30 SLoC // 0.2% comments C 15 SLoC // 0.1% comments Shell 9 SLoC

va-de-evan

Apache-2 licensed

关于

此crate允许您在Trust and Trace上使用DID和零知识证明VC。它提供了一个命令行界面和一个wasm包,用于与预配置的Vade实例进行交互。

编译va-de-evan

"常规"构建

这里没有惊喜

cargo build --release

默认功能

默认情况下,使用了功能clididdidcommportablevc-zkp。因此,所有包含的内容都可以在命令行界面中使用。

功能可以省略。例如,可以跳过vc-zkpdid

可以通过启用简单JWT签名来创建和验证VC,而不是使用vade-evan-bbsvade-evan-cl

cargo build --release --no-default-features --features cli,did-sidetree,did-read,portable,vc-jwt

DID功能

默认情况下,功能did启用了与DID相关的操作 => did-resolvedid-createdid-update使用vade-evan-substratedid-resolve使用vade-universal-resolver插件。

我们还支持基于sidetree的实现,如果使用非默认功能,可以启用它,为此将功能did-sidetree添加到功能集合中。

cargo build --release --no-default-features --features cli,did-sidetree,did-read,did-write,didcomm,portable,vc-zkp

以类似的方式,如果您想使用vade-evan-substratevade-universal-resolver,您必须将它们添加到功能集合中。

cargo build --release --no-default-features --features cli,did-substrate,did-read,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-universal-resolver,did-read,didcomm,portable,vc-zkp

可以根据具体需求调整功能,如果您想限制读取(did-resolve)或写入(did-createdid-update)操作DID。

cargo build --release --no-default-features --features cli,did-sidetree,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-sidetree,did-read,didcomm,portable,vc-zkp

使用sdk功能的C构建

可以通过启用sdk功能(仅与c-lib功能一起使用)调整功能以支持与IN3 SDK的集成,通过启用此功能,HTTP请求/响应通过IN3 SDK管理。

cargo build --release --no-default-features --features did-sidetree,did-write,didcomm,portable,vc-zkp,c-lib,sdk 

命令行界面

如果您正在使用非默认功能,请启用cli,只需将功能cli添加到功能集即可

cargo build --release --features cli

现在您可以使用vade-evan cli了。通过调用后查看帮助开始使用

./target/release/vade_evan_cli

WASM

WASM打包

要编译vade-evan为wasm,请使用wasm pack。

您可以选择仅使用did功能或同时使用didvc-zkp。以下示例将使用这两个功能。

同时,您还需要指定是要构建浏览器还是nodejs环境。

nodejs

wasm-pack build --release --target nodejs -- --no-default-features --features did,didcomm,vc-zkp,wasm

browser

wasm-pack build --release --target web -- --no-default-features --features did,didcomm,vc-zkp,wasm

WASM打包的包装器

已添加一个包装对WASM文件调用的项目,并将其放置在builds/wasm

要构建它,您需要在您的vade-evan项目旁边检出以下内容:

  • vade-evan-cl
  • vade-evan-bbs
  • vade-didcomm
  • vade-evan-substrate

然后,可以通过导航到builds/wasm并调用

yarn && yarn build

如果您想尝试它,请导航到builds/wasm/example并运行

yarn && node index.js

此示例将生成一个新的DID,将其分配给一个文档并随后更新它。

构建功能

功能 默认 内容
cli x 启用命令行界面
c-lib 为C应用程序提供vade的C接口
did x 启用DID功能
did-read x 启用did_resolve方法进行DID相关操作
did-write x 启用did_create和did_update方法进行DID相关操作
did-substrate x 通过vade-evan-substrate插件启用DID功能(did_resolve、did_create、did_update)
did-universal-resolver x 通过vade-universal-resolver插件启用did_resolve方法
did-sidetree 通过vade-sidetree插件启用基于Sidetree的DID功能
didcomm x 启用DIDComm消息处理
sdk 通过IN3 SDK管理http请求/响应启用SDK集成
java-lib 为Java应用程序提供vade的Java接口
vc-zkp x 默认情况下,通过vc-zkp-bbs、vc-zkp-cl、vc-jwt功能启用VC功能
vc-zkp-bbs x 通过vade-evan-bbs插件启用VC功能
vc-zkp-cl x 通过vade-evan-cl插件启用VC功能
vc-jwt x 目前支持使用JWT签名vc_zkp_issue_credentialvc_zkp_verify_proof
portable x 通过优化构建以本地运行,与wasm功能不兼容
wasm 通过优化构建以作为Web Assembly运行,与portable不兼容

依赖项

目前,所有vade相关依赖项(vade本身及其插件)都应从develop分支的最新提交中提取。由于依赖项处理将此提交的哈希存储在锁文件中,因此默认情况下不会使用develop分支的更新。

如果需要拉取这些更新,则需要删除Cargo.lock文件中的条目,并再次运行cargo build来更新这些哈希值。如果想要更新特定的依赖项,可以手动从Cargo.lock中删除。如果想要更新所有与vade相关的依赖项,可以使用脚本(scripts/remove-vade-dependencies-from-lockfile.sh)。请注意,此脚本依赖于dasel,因此必须在本地安装,例如使用homebrew。

依赖项

~6–28MB
~473K SLoC