下载说明
交付产物共有两种提供形式:Docker 镜像和 Embedded MPC Node 压缩包,此文档描述这两种形式的产物如何下载。
交付物
Docker 镜像
以 Docker 镜像形式交付的产物有:
- smn-service:部署在服务端的 MPC 可信计算节点,提供 Restful API 供开发者使用。
- smn-relayer:P2P 通信中间件,用于多个 MPC Node 之间的通信。
- smn-ca:用于授权 SMN Service 中的可信应用以及横向授权其他 SMN CA 实例。
Embedded MPC Node
按使用端区分,压缩包有以下三个:
- libsmnSDK-JS:提供 Javascript API 供开发者使用。
- libsmnSDK-iOS:提供 iOS Native API 供开发者使用。
- libsmnSDK-Android:提供 Android Native API 供开发者使用。
Access Token
Access Token 为下载所有交付产物的访问凭证,将会通过邮件方式发送。
💡
为了安全起见,访问凭证有效期 3 个月,失效后,Safeheron 会提供新的访问凭证。
下载方式
为了方便开发者下载产品套件,Safeheron 提供了两种下载方式:
- 通过脚本下载
- 通过手动下载
我们推荐开发者使用脚本进行下载。
通过脚本下载
使用脚本下载前请确保您的环境中已经安装以下依赖:
- Docker:可选,如果需要下载 Docker 镜像则需要安装
- curl:用于下载文件
- shasum/sha256sum:用于检查文件 hash
请使用 Safeheron 邮件中提供的 download_smn.sh ,并且替换其内容中的 Access Token 为邮件中发送的 token:
# Prohibit direct export SAFEHERON_ACCESS_TOKEN on the command line
SAFEHERON_ACCESS_TOKEN="Access Token"可以通过以下命令下载镜像或者 SDK 压缩包,压缩包会下载到当前目录下并解压:
bash download_smn.sh artifact_name version比如:
bash download_smn.sh smn-service 1.0.0
bash download_smn.sh smn-ca 1.0.0
bash download_smn.sh smn-relayer 1.0.0
bash download_smn.sh libsmnSDK-Android 1.0.0
bash download_smn.sh libsmnSDK-iOS 1.0.0
bash download_smn.sh libsmnSDK-JS 1.0.0
--------------Output Example--------------
Start downloading artifact: libsmnSDK-JS, version: 1.0.0 ...
Artifact download success.
OK! Artifact sha256 verify success.通过手动下载
所有产物的下载地址如下:
| smn-service 镜像 | registry.gitlab.com/safeheron-mpc-node/smn/smn-service:${VERSION} |
| smn-service 镜像 sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/smn-service/${VERSION}/smn-service-${VERSION}_SHA256SUMS |
| smn-relayer 镜像 | registry.gitlab.com/safeheron-mpc-node/smn/smn-relayer:${VERSION} |
| smn-relayer 镜像 sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/smn-service/${VERSION}/smn-relayer-${VERSION}_SHA256SUMS |
| smn-ca 镜像 | registry.gitlab.com/safeheron-mpc-node/smn/smn-ca:${VERSION} |
| smn-ca 镜像 sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/smn-service/${VERSION}/smn-ca-${VERSION}_SHA256SUMS |
| libsmnSDK-JS 压缩包 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-JS/v${VERSION}/libsmnSDK-JS-v${VERSION}.tar.gz |
| libsmnSDK-JS sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-JS/v${VERSION}/libsmnSDK-JS-v${VERSION}_SHA256SUMS |
| libsmnSDK-iOS 压缩包 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-iOS/v${VERSION}/libsmnSDK-iOS-v${VERSION}.tar.gz |
| libsmnSDK-iOS sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-iOS/v${VERSION}/libsmnSDK-iOS-v${VERSION}_SHA256SUMS |
| libsmnSDK-Android 压缩包 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-Andorid/v${VERSION}/libsmnSDK-Andorid-v${VERSION}.tar.gz |
| libsmnSDK-Android sha256 | https://gitlab.com/api/v4/projects/51105746/packages/generic/libsmnSDK-Andorid/v${VERSION}/libsmnSDK-Andorid-v${VERSION}_SHA256SUMS |
下载地址中 ${VERSION} 为产物的版本号,如 1.0.0。
下载 Docker 镜像时需要本地安装 Docker 环境,下载 hash 文件和 SDK 压缩包时需要使用类似 curl 等工具,通过 shasum 或者 sha256sum 命令。
在下载 Docker 镜像前需要首先通过 docker login 命令登录 Docker 镜像仓库,然后使用 docker pull命令下载,登录密码为通过邮件发送的 Access Token,用户名为空;在下载 hash 文件和 SDK 压缩包时,需要在请求头中增加自动 PRIVATE-TOKEN: Access Token。
以下载 smn-ca 和检查 hash 为例:
# Prohibit direct export SAFEHERON_ACCESS_TOKEN on the command line
export SAFEHERON_ACCESS_TOKEN="Access Token from email"
ARTIFACT="smn-ca"
VERSION="1.0.0"
# login docker registry
docker login registry.gitlab.com/safeheron-mpc-node/smn -u any --password-stdin <<< ${SAFEHERON_ACCESS_TOKEN}
# pull docker image
docker pull registry.gitlab.com/safeheron-mpc-node/smn/${ARTIFACT}:${VERSION}
# download the sha256 hash file of the image
curl --header "PRIVATE-TOKEN: ${SAFEHERON_ACCESS_TOKEN}" \
"https://gitlab.com/api/v4/projects/51105746/packages/generic/${ARTIFACT}/${VERSION}/${ARTIFACT}-${VERSION}_SHA256SUMS" -o "${ARTIFACT}-${VERSION}_SHA256SUMS"
# check sha256 hash
# if the check is successful, there will be no output
docker image inspect --format '{{index (split (index .RepoDigests 0) "@") 1}}' registry.gitlab.com/safeheron-mpc-node/smn/${ARTIFACT}:${VERSION} | diff ${ARTIFACT}-${VERSION}_SHA256SUMS -以下载 libsmnSDK-Android 和检查 hash 为例:
# Prohibit direct export SAFEHERON_ACCESS_TOKEN on the command line
export SAFEHERON_ACCESS_TOKEN="Access Token from email"
ARTIFACT="libsmnSDK-Android"
VERSION="1.0.0"
# download libsmnSDK-Android file
curl --header "PRIVATE-TOKEN: ${SAFEHERON_ACCESS_TOKEN}" \
"https://gitlab.com/api/v4/projects/51105746/packages/generic/${ARTIFACT}/v${VERSION}/${ARTIFACT}-v${VERSION}.tar.gz" -o "${ARTIFACT}-v${VERSION}.tar.gz"
# download the sha256 hash file
curl --header "PRIVATE-TOKEN: ${SAFEHERON_ACCESS_TOKEN}" \
"https://gitlab.com/api/v4/projects/51105746/packages/generic/${ARTIFACT}/v${VERSION}/${ARTIFACT}-v${VERSION}_SHA256SUMS" -o "${ARTIFACT}-v${VERSION}_SHA256SUMS"
# check sha256 hash
# if match, output: libsmnSDK-Android-v1.0.0.tar.gz: OK
sha256sum -c "${ARTIFACT}-v${VERSION}_SHA256SUMS"
# or use shasum on macOS
# shasum -a 256 -c "${ARTIFACT}-v${VERSION}_SHA256SUMS"