以下是日文版操作说明:MVD_of_EDC |备忘录博客
Eclipse 数据空间 设置组件
首先,创建一个 Eclipse Dataspace 设置组件 (EDC)。 EDC 是实现数据空间数据联动的框架。 请按照以下步骤设置 EDC:
1. 准备
项目readme描述了 Requirements 所需的环境。
- Docker
- KinD
- Terraform
- JDK 17+
- Git
- shell
- Postman
- openssl,
- newman
- jq(curl 环境下的json处理命令,是个单独的程序)
- Kubernetes
OpenSSL 协议安装
sudo apt install openssl
newman安装
sudo apt install nodejs npm n
sudo n stable
sudo npm install -g newman
克隆源代码
git clone https://github.com/eclipse-edc/MinimumViableDataspace.git cd MinimumViableDataspace
官网环境配置图
2. 构建和启动
在 K8S 上启动各种服务。
./gradlew build ./gradlew -Ppersistence=true dockerize
Child (K8S) 環境起動
# Create the cluster
kind create cluster -n mvd --config deployment/kind.config.yaml
# Load docker images into KinD
kind load docker-image controlplane:latest dataplane:latest identity-hub:latest catalog-server:latest sts:latest -n mvd
# 確認
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7f31408c498 kindest/node:v1.27.3 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 127.0.0.1:32825->6443/tcp mvd-control-plane
在 k8s 上部署 Ingress NGINX 控制器
# Deploy an NGINX ingress
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
# Wait for the ingress controller to become available
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s
部署此 MVD 环境
# Deploy the dataspace, type 'yes' when prompted
cd deployment
terraform init
terraform apply
确认
kubectl get pods --namespace mvd
结果(如果看到以下内容,则说明部署成功)
NAME READY STATUS RESTARTS AGE
consumer-controlplane-68c4696c57-2qmh2 1/1 Running 0 55s
consumer-dataplane-75d79bfd56-t5mt2 1/1 Running 0 39s
consumer-identityhub-545fdb579c-df6bq 1/1 Running 0 55s
consumer-postgres-687484545b-sp8xr 1/1 Running 0 96s
consumer-sts-778bb7bb44-kfqxp 1/1 Running 0 70s
consumer-vault-0 1/1 Running 0 95s
dataspace-issuer-server-7ff68bd8b4-qh7c7 1/1 Running 0 96s
provider-catalog-server-58b67bdb89-nxtvq 1/1 Running 0 54s
provider-identityhub-bb68bfcf4-bv42v 1/1 Running 0 55s
provider-manufacturing-controlplane-86bdd7c967-b6r7h 1/1 Running 0 54s
provider-manufacturing-dataplane-7d66445bf8-dp24n 1/1 Running 0 39s
provider-postgres-7fd78d95b8-x2kzd 1/1 Running 0 96s
provider-qna-controlplane-dc894c5ff-qxcd7 1/1 Running 0 55s
provider-qna-dataplane-8574c764fd-t2x8z 1/1 Running 0 39s
provider-sts-64cd87f4f6-n5cvq 1/1 Running 0 70s
provider-vault-0 1/1 Running 0 95s
3. 数据初始化
您可以使用项目下的 seed-k8s.sh 或 seed-k8s.sh 脚本运行初始化数据。执行前请根据环境调整url。
seed-k8s.sh 是在newman(postman环境下的自动化脚本)的docker环境下执行
seed-k8s.sh 是在newman(postman环境下的自动化脚本)的k8s环境下执行
bash seed-k8s.sh
说明: Postman (Newman) 可以进行参数化运行给出。
如下newman命令所示,这次执行的是 “Seed” 文件夹下的所有内容。 请注意,此注册过程在以下两台主机provider-qna、 provider-manufacturing 批量执行
newman deployment/postman/MVD.postman_collection.json 中的seed文件夹中的请求
echo "Seed data to 'provider-qna' and 'provider-manufacturing'"
for url in 'http://127.0.0.1/provider-manufacturing/cp' 'http://127.0.0.1/provider-qna/cp'
do
newman run \
--folder "Seed" \
--env-var "HOST=$url" \
./deployment/postman/MVD.postman_collection.json
done
以下是postman操作的中文解释
分类 操作
Seed(种子数据初始化)
创建资产和策略
1. **Create Asset 1(创建资产1)**
2. **Create Asset 2(创建资产2)**
3. **Create Membership Policy(创建会员政策)**
4. **Create DataProcessor policy(创建数据处理者政策)**
5. **Create Sensitive Data Processor policy(创建敏感数据处理者政策)**
6. **Create "member-and-data-cred" definition(创建“会员和数据凭证”定义)**
7. **Create "require sensitive" definition(创建“需要敏感数据”定义)**
8. **Create linked Asset for provider-qna(为提供商Q&A创建链接资产)**
9. **Create linked Asset for provider-manufacturing(为提供商制造部门创建链接资产)**
10. **Create normal asset for CatalogServer(为目录服务器创建普通资产)**
11. **Create Membership Policy(创建会员政策)**
12. **Create "require membership" definition(创建“需要会员”定义)**
ControlPlane Management(控制平面管理)
资产和目录管理
13. **Get Assets(获取资产)**
14. **Request Catalog(请求目录)**
15. **Get Cached Catalogs(获取缓存的目录)**
16. **Initiate negotiation(发起协商)**
17. **Get Contract Negotiations(获取合同协商)**
18. **Initiate Transfer(发起传输)**
19. **Get transfer processes(获取传输过程)**
20. **Get cached EDRs(获取缓存的EDR)**
21. **Get EDR DataAddress for TransferId(获取传输ID的EDR数据地址)**
22. **Download Data from Public API(从公共API下载数据)**
IdentityHub(身份中心)
参与者上下文管理API
23. **Get Participant By ID(按ID获取参与者)**
24. **Get all participants(获取所有参与者)**
25. **Create Participant(创建参与者)**
26. **Create Participant (existing key)(创建参与者(使用现有密钥))**
27. **Update Roles(更新角色)**
28. **Regenerate Token(重新生成令牌)**
29. **Activate Participant(激活参与者)**
30. **Deactivate Participant(停用参与者)**
31. **Delete Participant(删除参与者)**
密钥对资源管理API
32. **Get KeyPair for Participant(获取参与者的密钥对)**
33. **Get all KeyPairs(获取所有密钥对)**
34. **Add KeyPair(添加密钥对)**
35. **Rotate key(轮换密钥)**
36. **Revoke key(撤销密钥)**
DID文档管理API
37. **Query DIDs(查询DIDs)**
38. **Get All DID Documents(获取所有DID文档)**
39. **Publish DID(发布DID)**
40. **Add endpoint(添加端点)**
41. **Un-Publish DID(取消发布DID)**
42. **Delete DID(删除DID)**
43. **Get DID Document state(获取DID文档状态)**
可验证凭证管理API
44. **Get Credential By ID(按ID获取凭证)**
45. **Get All Credentials(获取所有凭证)**
46. **Query Credentials by Type(按类型查询凭证)**
47. **Make Credential Request(发起凭证请求)**
48. **Get Credential Reqeusts(获取凭证请求)**
IssuerService(发行服务)
管理API
证明管理
49. **create Attestation(创建证明)**
50. **query Attestations(查询证明)**
凭证定义管理
51. **create Credential Definition(创建凭证定义)**
52. **query Credential Definitions(查询凭证定义)**
53. **get by ID(按ID获取)**
54. **update Credential Definition(更新凭证定义)**
55. **delete Credential Definition By Id(按ID删除凭证定义)**
凭证管理
56. **query Credentials(查询凭证)**
57. **resume Credential(恢复凭证)**
58. **revoke Credential(撤销凭证)**
59. **check Credential Status(检查凭证状态)**
60. **suspend Credential(暂停凭证)**
61. **get Credentials(获取凭证)**
参与者管理
62. **update Participant(更新参与者)**
63. **Create Participant(创建参与者)**
64. **query Participants(查询参与者)**
65. **get Participant By Id(按ID获取参与者)**
发行流程管理
66. **Query issuance processes(查询发行流程)**
Seed Issuer SQL(种子发行者SQL)
创建参与者和定义
67. **Create consumer participant(创建消费者参与者)**
68. **Create provider participant(创建提供者参与者)**
69. **Create attestation definitions(创建证明定义)**
70. **Create credential definitions(创建凭证定义)**
Seed Issuer(种子发行者)
71. **Create consumer participant(创建消费者参与者)**
72. **Create provider participant(创建提供者参与者)**
73. **Create attestation definitions(创建证明定义)**
74. **Create credential definitions(创建凭证定义)**