下载说明

交付产物共有两种提供形式:Docker 镜像和 Embedded MPC Node 压缩包,此文档描述这两种形式的产物如何下载。

交付物

Docker 镜像

以 Docker 镜像形式交付的产物有:

Embedded MPC Node

按使用端区分,压缩包有以下三个:

Access Token

Access Token 为下载所有交付产物的访问凭证,将会通过邮件方式发送。

💡
为了安全起见,访问凭证有效期 3 个月,失效后,Safeheron 会提供新的访问凭证。

下载方式

为了方便开发者下载产品套件,Safeheron 提供了两种下载方式:

我们推荐开发者使用脚本进行下载。

通过脚本下载

使用脚本下载前请确保您的环境中已经安装以下依赖:

请使用 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 镜像 sha256https://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 镜像 sha256https://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 镜像 sha256https://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 sha256https://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 sha256https://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 sha256https://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"