星鉴网>技术干货>EC2的IPFS集群对等安装程序

EC2的IPFS集群对等安装程序

2019/1/25 16:15:06 1393人阅读

【导读】 EC2服务器的IPFS集群对等安装程序,第一次开始使用IPFS和IPFS集群时所需要的一行安装程序脚本

  这是我们第一次开始使用IPFS和IPFS集群时所需要的一行安装程序脚本:


  #!/usr/bin/env bash

  set -e

  [ -z "$CLUSTER_SECRET" ] && echo "Need to set CLUSTER_SECRET" && exit 1;

  echo 'export IPFS_PATH=/data/ipfs' >>~/.bash_profile

  echo 'export IPFS_CLUSTER_PATH=/data/ipfs-cluster' >>~/.bash_profile

  source ~/.bash_profile

  # ipfs daemon

  wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz

  tar xvfz go-ipfs_v0.4.15_linux-amd64.tar.gz

  rm go-ipfs_v0.4.15_linux-amd64.tar.gz

  sudo mv go-ipfs/ipfs /usr/local/bin

  rm -rf go-ipfs

  # ipfs cluster service

  wget https://dist.ipfs.io/ipfs-cluster-service/v0.4.0/ipfs-cluster-service_v0.4.0_linux-amd64.tar.gz

  tar xvfz ipfs-cluster-service_v0.4.0_linux-amd64.tar.gz

  rm ipfs-cluster-service_v0.4.0_linux-amd64.tar.gz

  sudo mv ipfs-cluster-service/ipfs-cluster-service /usr/local/bin

  rm -rf ipfs-cluster-service

  # ipfs cluster ctl

  wget https://dist.ipfs.io/ipfs-cluster-ctl/v0.4.0/ipfs-cluster-ctl_v0.4.0_linux-amd64.tar.gz

  tar xvfz ipfs-cluster-ctl_v0.4.0_linux-amd64.tar.gz

  rm ipfs-cluster-ctl_v0.4.0_linux-amd64.tar.gz

  sudo mv ipfs-cluster-ctl/ipfs-cluster-ctl /usr/local/bin

  rm -rf ipfs-cluster-ctl

  # init ipfs

  sudo mkdir -p $IPFS_PATH

  sudo chown ec2-user:ec2-user $IPFS_PATH

  ipfs init -p server

  ipfs config Datastore.StorageMax 100GB

  # uncomment if you want direct access to the instance's gateway

  #ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080

  # init ipfs-cluster-service

  sudo mkdir -p $IPFS_CLUSTER_PATH

  sudo chown ec2-user:ec2-user $IPFS_CLUSTER_PATH

  ipfs-cluster-service init

  if [ ! -z "$CLUSTER_BOOTSTRAP" ]; then

  sed -i -e "s;\"bootstrap\": \[\];\"bootstrap\": [\"${CLUSTER_BOOTSTRAP}\"];" "${IPFS_CLUSTER_PATH}/service.json"

  fi

  sed -i -e 's;127\.0\.0\.1/tcp/9095;0.0.0.0/tcp/9095;' "${IPFS_CLUSTER_PATH}/service.json"

  # ipfs systemctl service

  sudo bash -c 'cat >/lib/systemd/system/ipfs.service <

  [Unit]

  Description=ipfs daemon

  [Service]

  ExecStart=/usr/local/bin/ipfs daemon --enable-gc

  Restart=always

  User=ec2-user

  Group=ec2-user

  Environment="IPFS_PATH=/data/ipfs"

  [Install]

  WantedBy=multi-user.target

  EOL'

  # ipfs-cluster systemctl service

  sudo bash -c 'cat >/lib/systemd/system/ipfs-cluster.service <

  [Unit]

  Description=ipfs-cluster-service daemon

  Requires=ipfs.service

  After=ipfs.service

  [Service]

  ExecStart=/usr/local/bin/ipfs-cluster-service daemon

  Restart=always

  User=ec2-user

  Group=ec2-user

  Environment="IPFS_CLUSTER_PATH=/data/ipfs-cluster"

  [Install]

  WantedBy=multi-user.target

  EOL'

  # enable the new services

  sudo systemctl daemon-reload

  sudo systemctl enable ipfs.service

  sudo systemctl enable ipfs-cluster.service

  # start the ipfs-cluster-service daemon (the ipfs daemon will be started first)

  sudo systemctl start ipfs-cluster


  在要成为群集对等方的每个框上运行此命令。它将安装ipfs,ipfs-cluster-service和ipfs-cluster-ctl ...初始化ipfs并ipfs-cluster...为每个服务器编写一些自动重启SystemD服务,然后最终启动它们。


  注意:您需要第二代Amazon Linux用于SystemD服务。


  用法


  第一个节点(node_0)设置


  $ export CLUSTER_SECRET=$(od -vN 32 -An -tx1 /dev/urandom | tr -d ‘ \n’)$ echo $CLUSTER_SECRET← other nodes must also use this secret


  其他节点(node_n> 0)设置


  在运行安装程序后的node_0上


  $ journalctl -u ipfs-cluster -n10


  在上面的日志输出中,查看该行INFO cluster: IPFS Cluster listening on: cluster.go并记下完整的非loopback ip4集群multiaddress(cluster.listen_multiaddress)。这将引用您实例的私有IP地址,并将用于引导其他节点。


  返回其他节点(node_n> 0)


  $ export CLUSTER_SECRET =$ export CLUSTER_BOOTSTRAP =


  运行安装程序


  $ wget https://gist.github.com/sanderpick/8660d93abd7cef3c8372565081e280fe/raw/5f190e578a6c480feda8ba210b5fd80b4583ac47/install.sh&& bash install.sh


  完整性检查


  $ sudo systemctl status ipfs $ sudo systemctl status ipfs-cluster


  尾群集日志


  $ journalctl -u ipfs-cluster --follow


  负载平衡网关


  运行公共网关?您可以通过创建将LB的端口80映射到实例端口8080(或任何实例网关端口)的目标组,将每个对等框放在EC2应用程序负载均衡器之后。


  防火墙


  最后,为集群对等体配置安全组,并在每个盒子上使用它。群集流量最有可能对全世界开放,但所有其他端口可以限制在VPC内的安全组。但是,这一切都取决于您的需求。像这样......


  IPFS Cluster Peer安全组


  ...网关端口仅限于负载均衡器SG,集群REST API代理仅限于您的VPC中的某些其他SG(可能是应用程序API或您计划从哪里固定文件),以及集群间通信仅限于同行的SG。


  本文作者:Sander Pick


7

参与讨论

登录后参加评论......

全部评论 0

作者

返回顶部