Skip to main content
  1. Posts/

PolygonID 项目研究:如何运行起来

·1 min·
Tech Enthusiast running out of Coffee.
Table of Contents

Polygon ID 最核心的是 issuer-node,该项目是一个后端服务,提供了 polygon id 所需的核心 api,issuer-node 系统组成如下图所示。

  • postgresql 存储相关的 credentials 和一些其他数据
  • vault 存储证书、私钥等相关的数据
  • redis 存储系统所需的一些元数据
  • issuer-api 提供了系统所需的 api
  • issuer-api-ui 提供了一个 api 的 ui 解码
  • issuer-ui 提供了 credentials DID 的 ui

运行 issuer-node
#

1. 获取以太坊 api 地址
#

我使用的是 infura, 通过 infura 注册账号后可以获得 etheruem 地址,选择切换测试网,复制保存下来

2. 获取 ehtereum 私钥
#

infura 使用以太坊哪个网络,就需要获取哪个网络上账户的私钥,例如我是 Goerli,通过 metamask 获取

3. 获取代码
#

git clone https://github.com/0xPolygonID/issuer-node.git
cd issuer-node
git checkout v.2.1.0

切换到 v.2.1.0 版本,main 分支本地没有 run 起来

4. 通过 docker 启动
#

  1. 拷贝 .env-api.sample.env-api 以及 .env-issuer.sample.env-issue.

  2. 配置 .env-issuer 中的 ethereum 地址

    ISSUER_ETHEREUM_URL=从 infura 获取的连接
    
  3. 然后编译和启动 vault, postgres, redis 容器

        make up
    
  4. 添加以太坊私钥到 vault

    
    make private_key=<从 metamask 获取的私钥> add-private-key;
    
  5. 通过命令配置 vault token,实际上配置的是 .env-issuer 中的 ISSUER_KEY_STORE_TOKEN 这个变量

     make add-vault-token;
    
  6. 生成 DID

    # x86 运行这个命令
    make generate-issuer-did;
    
    # 如果是 arm,运行这个命令
    make generate-issuer-did-arm;
    
  7. 启动 api 相关的容器

    # x86 运行这个命令
    make run;
    
    # 如果是 arm,运行这个命令
    make run-arm;
    
  8. (可选项)启动 ui 相关的容器

    # x86 运行这个命令
    make run-ui;
    
    # 如果是 arm,运行这个命令
    make run-ui-arm;
    

所有容器都启动好之后,我们需要配置 api-ui 的认证,访问 http://localhost:3002/

在页面上测试是否可以访问, 点击 try

最后,访问 issuer ui: http://localhost:8088/,不出现 Network Error 报错就完成了

运行验证者
#

一般验证者是结合自身的逻辑自己实现,并分为:链下验证和链上验证,所以 Polygon ID 提供的是相关的库。

钱包
#

Polygon ID 提供了 fluter sdk,并自己使用该 sdk 实现了一个 app,可以在 App Store 下载,如果需要定义 app 应用可以使用该 sdk 编写自己的业务逻辑。

Related

零知识编程入门
·7 mins
零知识证明