美文网首页
如何在一个服务器上跑三个FileStorm子链节点

如何在一个服务器上跑三个FileStorm子链节点

作者: 区块链_献哥 | 来源:发表于2018-07-16 23:38 被阅读0次

一般来说,一台服务器上只会跑一个墨客子链节点。但是因为测试需要,我们可能会在一台服务器上部署多个子链节点。这也是可以的,但我们就必须保证各个线程不会互相干扰,尤其是当我们跑FileStorm子链的时候,我们必须保证每个节点底层的IPFS Daemon是独立的。所以,我们把流程写在下面。所有的指令在Macbook上执行,其他机型需要做相应调整。

前提条件:

机器上必须安装redis, ipfs daemon, scsserver和ipfs_monkey.

redis安装流程:

sudo apt update
sudo apt full-upgrade
sudo apt install build-essential tcl
curl -O http://download.redis.io/redis-stable.tar.gz
tar xzvf redis-stable.tar.gz
sudo apt install redis-server

ipfs daemon安装流程
从这个链接下载最新版本ipfs软件包。我们以ubuntu版本为例

wget https://dist.ipfs.io/go-ipfs/v0.4.17/go-ipfs_v0.4.17_linux-amd64.tar.gz
tar xvfz go-ipfs_v0.4.17_linux-amd64.tar.gz
sudo mv go-ipfs/ipfs /usr/local/bin/ipfs

scsserver和ipfs monkey的安装流程

scsserver 可以通过 make scs 生成。
ipfs_monkey 可以通过 make monkey 生成。

(将来会发布一个能从我们的github下载的版本。)

环境部署要求:在本机上建立三个独立运行的FileStorm子链节点。

首先,我们必须建立三个ipfs daemon,建立方法如下:

IPFS_PATH=~/.ipfs2 ipfs init
IPFS_PATH=~/.ipfs3 ipfs init
IPFS_PATH=~/.ipfs4 ipfs init

这样,我们就建立了三个ipfs节点,他们的根目录分别是/.ipfs2,/.ipfs3,~/.ipfs4。

然后,我们必须修改ipfs的设置,修改设置可用如下指令:

vi ~/.ipfs2/config

然后找到如下设置,将4000,5000和8080改掉。因为我们的ipfs根目录是~/.ipfs2,可将三个数字改成4002,5002,8082。

  "Addresses": {
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4000",
      "/ip6/::/tcp/4002"
    ],
    "Announce": [],
    "NoAnnounce": [],
    "API": "/ip4/127.0.0.1/tcp/5000",
    "Gateway": "/ip4/127.0.0.1/tcp/8080"
  },

然后把另外两个ipfs设置也做相应修改

`vi ~/.ipfs3/config
将三个数字改成4003,5003,8083。

`vi ~/.ipfs4/config
将三个数字改成4004,5004,8084。

接下来,我们要把下载的scsserver目录复制三份,放在三个目录下。

~/Test/scsnode2
~/Test/scsnode3
~/Test/scsnode4

目录的结构应该是

config
userconfig.json
bin
scsserver
ipfs_moneky

然后,我们需要修改一下scsserver的设置文件config/userconfig.json。

{
    "VnodeServiceCfg": "localhost:50062",
    "SCSServiceCfg": "localhost:50061",
    "DataDir": "./scsdata",
    "LogPath": "./_logs",
    "Beneficiary": "0xa801aa91c91c9354140b40cf9aa9c89969e0c044",
    "VnodechainId": 1975,
    "Capability": 10,
    "ReconnectInterval": 5,
    "LogLevel": 4,
    "FileStorm": {
        "IpfsDir": "/Users/xiannongfu/.ipfs2",
        "MonkeyPort": 18080
    }
}

对下面的设置做修改:

    "FileStorm": {
        "IpfsDir": "[选取一个IPFS节点路径]",
        "MonkeyPort": [选取一个ipfs_monkey端口]
    }

其他设置参考子链部署文档。

设置完以后,我们就可以将FileStorm节点需要跑的程序都开启了。

首先是到每个节点执行文件所在的路径下。然后所有的文件执行都放到后台运行。
第一个执行的是 ipfs daemon,这个其实不跑也没关系,因为scsserver开启时,会根据userconfig.json文件中地址开启相应的daemon。
第二个执行的是 redis。执行端口要指明。
第三个执行的是 ipfs_monkey,这个要指明三个端口,分别是自己的监听端口,redis端口和ipfs api端口。
第四个执行的是 scsserver。请注意,如果需要通过连接到某个SCS节点上来调用子链上的状态,必须用--rpcaddr和--rpcport来打开一个SCS的RPC端口。

cd ~/Test/scsnode2/bin
nohup IPFS_PATH=~/.ipfs2 ipfs daemon &
nohup redis-server --port 6372 &
nohup ./ipfs_monkey --listen-host-port 127.0.0.1:18082 --redis-host-port 127.0.0.1:6372 --ipfs-host-port 127.0.0.1:5002 & 
nohup ./scsserver &

cd ~/Test/scsnode3/bin
nohup IPFS_PATH=~/.ipfs3 ipfs daemon &
nohup redis-server --port 6373 &
nohup ./ipfs_monkey --listen-host-port 127.0.0.1:18083 --redis-host-port 127.0.0.1:6373 --ipfs-host-port 127.0.0.1:5003 & 
nohup ./scsserver &

cd ~/Test/scsnode4/bin
nohup IPFS_PATH=~/.ipfs4 ipfs daemon &
nohup redis-server --port 6374 &
nohup ./ipfs_monkey --listen-host-port 127.0.0.1:18084 --redis-host-port 127.0.0.1:6374 --ipfs-host-port 127.0.0.1:5004 & 
nohup ./scsserver --rpcaddr 127.0.0.1 --rpcport 2345 &

这样,一台服务器上的三个SCS节点就跑起来了。

相关文章

网友评论

      本文标题:如何在一个服务器上跑三个FileStorm子链节点

      本文链接:https://www.haomeiwen.com/subject/fmvipftx.html