运行 STRATO Mercata 节点

  • blockapps
  • 发布于 2024-05-23 20:31
  • 阅读 19

本文档提供了在 AWS 上设置和部署 STRATO Mercata 节点的详细步骤。它涵盖了从购买域名和 SSL 证书到配置虚拟机、安装软件依赖项以及运行 STRATO 脚本的整个过程,并且还包括配置 Sendgrid 以发送邮件通知,最后验证节点部署环节。

初始设置流程:

  1. 注册一个 Sendgrid 账户
  2. Sendgrid API 秘钥(可选,Mercata Marketplace 邮件通知需要) – 在 https://sendgrid.com 上注册并获取
  3. 访问 sendgrid.com,登录或创建账户 -> 设置(左侧) -> API 秘钥 -> 创建 API 秘钥:
    1. API 秘钥名称:<选择_你的_秘钥_名称>
    2. API 秘钥权限:受限访问 -> 勾选 “Mail Send”/“Mail Send” only -> 点击 “Create & View”
  • 保留 API 秘钥用于以下步骤
  1. 购买一个域名(如果你还没有域名)
  2. 示例:https://aws.amazon.com/route53/
  3. 购买域名的 SSL 证书
  4. 示例:https://www.ssls.com/#certs
  5. 从 SSL 颁发者下载 SSL 文件
  6. 将 SSL 私钥和证书 zip 文件解压到本地机器
  7. 部署 Linux 虚拟机 (基于 VM 要求)
  8. AWS (当前支持)
    1. 登录 AWS 控制台
    2. 在控制台主页中,搜索 EC2 服务。
    3. 创建一个新的实例,使用以下配置:
      1. 名称:stratomercata-node1
      2. AMI:Amazon Linux 2023 (默认)
      3. 类型:m6a.xlarge
      4. 密钥对:创建新密钥对,名称为 blockapps-generated-key (保存私钥)
      5. 使用 默认 VPC 或自定义 VPC(如果首选)
      6. 子网:没有偏好
      7. 自动分配公有 IP:“禁用”
      8. 创建安全组:strato-ports,开放端口
        1. 443/tcp (::/0)
        2. 443/tcp(0.0.0.0)
        3. 30303/tcp (0.0.0.0)
        4. 30303/udp (0.0.0.0)
        5. 保留 22/tcp (0.0.0.0)
      9. 磁盘:保留默认 8gb,增加 gp3 80Gb
    4. 点击 “Launch Instance”
    5. 前往 Elastic IPs,分配新的 IP,与新实例关联。
    6. 使用以下命令 ssh 到机器:ssh -i path/to/blockapps-generated-key.pem ec2user@<elastic.ip.address.here>
  9. Azure (文档即将推出)
  10. GCP (文档即将推出)
  11. Oracle Cloud (文档即将推出)
  12. On-prem (文档即将推出)
  13. 将 VM IP 地址添加到 DNS A 记录
  14. 注册 BlockApps Open ID 账户
  15. BlockApps OpenID 凭据:
    1. 访问 support.blockapps.net 并注册或登录
    2. 选择 “Request Client Credentials” 类型的支持请求
    3. 提供你未来节点的域名和你想要加入的网络 (Mercata),然后点击发送

请在 8 个工作小时内查收包含你的客户端凭据的邮件,用于节点部署步骤。

STRATO 节点安装和部署流程:

  1. SSH 到 VM 并安装 软件先决条件
  2. SSH 到 VM 并安装 STRATO 软件
  3. 将 SSL 证书和私钥信息复制到 STRATO 节点脚本文件
  4. 使用 Open ID/通过邮件发送的账户数据和 Send Grid API 秘钥信息更新配置脚本
  5. 执行 STRATO 脚本
  6. 确认颁发验证者证书

目录

Toggle

STRATO Mercata 要求

系统要求

  • 基于 Unix 的 x86 系统 (Linux, 基于 Intel 的 Mac)
  • 4 个 CPU 核心
  • 16GB 内存 (建议 32 GB)
  • 80+ GB SSD 磁盘 (建议 100 GB)
  • 静态 IP 地址

推荐的 AWS EC2 配置:

  • 实例类型:“m6a.xlarge” (或等效类型)
  • Amazon Linux 2023 (支持其他 Linux 发行版,但以下步骤是针对该 AMI 提供的)
  • 80+ GB EBS 卷 (对于更高级的设置,我们建议使用与 OS 分离的数据卷,但本文档中未描述这种情况)
  • 附加 Elastic IP

网络要求

  1. 附加到 IP 地址的域名
  2. 由域名授权机构颁发的 TLS 证书 (.pem + .key) (如果 DNS/CDN 提供商用证书覆盖你的域名,则可选)
  3. 对外开放的端口:
  4. 入站:30303/tcp, 30303/udp (P2P; IPv4), 443/tcp (Web UI; IPv4 (IPv6 可选)
  5. 出站:全部

软件要求

  • Docker Engine v23 或更高版本
  • Docker Compose v2
  • Git

在 Amazon Linux 2023 上安装软件要求

(在 创建 VM 之后执行)

  1. 创建一个名为 install.sh 的 Shell 脚本。复制下面的代码块并粘贴到远程机器上的文件中:
#!/bin/bash
set -e
set -x
if [[ $EUID -ne 0 ]]; then
echo >&2 “Must be run as root”  # 必须以 root 身份运行
exit 1
fi
sudo yum update -y
sudo yum install -y docker git htop jq
# Autostart on reboot  # 重新启动时自动启动
sudo systemctl enable docker
sudo systemctl start docker
# Docker-compose
DOCKER_CONFIG=/usr/local/lib/docker
sudo mkdir -p $DOCKER_CONFIG/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
# ncdu (Amazon Linux 2023 steps)
wget http://packages.eu-central-1.amazonaws.com/2018.03/main/c31535f74c6e/x86_64/Packages/ncdu-1.10-1.3.amzn1.x86_64.rpm
sudo yum install -y ncdu-1.10-1.3.amzn1.x86_64.rpm
  1. 使用 sudo bash install.sh 执行脚本

  2. 使用以下代码块创建 mount.sh:

#!/bin/bash

set-ex

#Mountvolumeto/datadrivedirwithauto-mount(followingtheCloudProvider’ssteps):

lsblk

sudofile-s/dev/nvme1n1#mustreturn`/dev/nvme1n1:data`toconfirmthatnofilesystemexistsonavolume

sudomkfs-txfs/dev/nvme1n1

sudomkdir/datadrive

sudochmod777/datadrive/

sudomount/dev/nvme1n1/datadrive/

sudocp/etc/fstab/etc/fstab.orig

sudobash-c“echo‘UUID=$(sudoblkid\|grepnvme1n1\|cut-d\\”-f2)/datadrivexfsdefaults,nofail02′>>/etc/fstab”

sudoumount/datadrive&&sudomount-a#thisistomakesureauto-mountworks

sudochownec2-user/datadrive/

df-h#confirmthe/datadriveisattachedtovolume

#MoveDockertothedatavolume

sudoservicedockerstop

sudobash-c“echo‘{\\”data-root\\”:\\”/datadrive/docker\\”}’>/etc/docker/daemon.json”

sudorsync-aP/var/lib/docker//datadrive/docker

sudorm-rf/var/lib/docker

sudoservicedockerstart
  1. 使用 sudo bash mount.sh 运行 mount.sh 脚本

设置 STRATO

  1. 执行 touch ~/_NOTE_all-data-is-in-root-datadrive-folder 创建引用文件
  2. 运行命令 cd /datadrive
  3. 从 GitHub 克隆 加粗strato-getting-started加粗
git clone https://github.com/blockapps/strato-getting-started
cd strato-getting-started
  1. 使用 sudo ./strato –compose 下载最新发布版本的 docker-compose.yml

  2. 执行 sudo ./strato –pull

  3. 编辑 `strato-run.sh` 文件,该文件位于 加粗strato-getting-started加粗 目录中,其中包含运行 STRATO 所需的所有参数:

sudo nano strato-run.sh
#!/bin/bash

NODE_HOST=”&lt;DOMAIN_NAME>”\

BOOT_NODE_IP='[“44.209.149.47″,”54.84.33.40″,”52.1.78.10″,”44.198.14.117”]' \

networkID=”6909499098523985262″\

certInfo='{“orgName”:”service-account-&lt;CLIENT_ID_HERE>”,”orgUnit”:””,”commonName”:”service-account-&lt;CLIENT_ID_HERE>”}'\

OAUTH_CLIENT_ID=”&lt;CLIENT_ID_HERE>”\

OAUTH_CLIENT_SECRET=”&lt;CLIENT_SECRET_HERE>”\

SENDGRID_API_KEY='&lt;SENDGRID_API_KEY_HERE>'\

ssl=true\

BASE_CODE_COLLECTION=”f6bd7e19afc20325c6c5170e965fda8fe9a7104a”\

./strato

替换占位符:

  • <DOMAIN_NAME> – 你的 VM 域名
  • <COMMON_NAME> – 证书的唯一机器名
  • <CLIENT_ID> – BlockApps 发给你的客户端 ID (来自 访问先决条件)
  • <CLIENT_SECRET> – BlockApps 发给你的客户端密钥 (来自 访问先决条件)
  • <SENDGRID_API_KEY> – 用于启用 Marketplace 电子邮件通知的 Sendgrid API 密钥 (来自 访问先决条件)

保存并退出 nano (Ctrl+X -> “y” -> Enter)

注意: 有关参数的其他信息,请查看帮助主题:sudo ./strato –help

  1. 将你的 TLS 证书和私钥复制到 ssl/ 目录中:

    注意: 加粗strato-getting-started加粗 默认包含一个虚拟证书,允许你在没有自己的 TLS 证书的情况下运行节点。如果你有 DNS 提供商 (例如,Cloudflare 或 AWS Route53 等) 提供的 TLS 保护,这可能适用于测试或适用。

替换占位符并执行:

cp &lt;path_to_your_pem_file> ssl/private/server.key
cp &lt;path_to_your_pem_file> ssl/cert/server.pem
  1. 执行 `strato-run.sh`
sudo ./strato-run.sh

向验证者颁发证书

接下来,BlockApps 必须使用他们请求的身份信息向验证者颁发证书。在本例中,该信息将是 service-account-<CLIENT_ID_HERE> 作为组织和通用名称(应与 strato-run.sh 脚本中提供的占位符中的值匹配)。

相关文章

应收账款融资

基于资产的贷款与保理

发票保理

  • 原文链接: blockapps.net/blog/runni...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
blockapps
blockapps
江湖只有他的大名,没有他的介绍。