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
va-de-evan
关于
此crate允许您在Trust and Trace上使用DID和零知识证明VC。它提供了一个命令行界面和一个wasm包,用于与预配置的Vade
实例进行交互。
编译va-de-evan
"常规"构建
这里没有惊喜
cargo build --release
默认功能
默认情况下,使用了功能cli
、did
、didcomm
、portable
和vc-zkp
。因此,所有包含的内容都可以在命令行界面中使用。
功能可以省略。例如,可以跳过vc-zkp
或did
。
可以通过启用简单JWT签名来创建和验证VC,而不是使用vade-evan-bbs
和vade-evan-cl
。
cargo build --release --no-default-features --features cli,did-sidetree,did-read,portable,vc-jwt
DID功能
默认情况下,功能did
启用了与DID相关的操作 => did-resolve
、did-create
、did-update
使用vade-evan-substrate
和did-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-substrate
或vade-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-create
和did-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
功能或同时使用did
和vc-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_credential 和vc_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