2018-02-13 用树莓派3搭建Storj实验节点
总述
有不少爱好者希望提供树莓派搭建Storj节点的教程,在此梳理一篇。但一定注意树莓派天生低功耗与低内存的特性。树莓派的内存只能跑一个节点,而且可能性能还偏低,时不时还会有节点重启记录。
文章的要点,烧录好系统后,初始化所需软件,接着创建非root账号进行storj相关软件的安装,并且最终以非root账号启动storj。
PS:如果你的网络连通性不好,比如无法连接到github,在捣鼓的过程可能会遇到各种nodejs的报错。
物料
- 树莓派3
- TF卡 16G或以上,记得要有TF卡转USB写入的转换器
- 树莓派外壳 可选,裸板直接跑也没啥大问题
- 移动硬盘 上限8T,2.5寸移动硬盘可以靠树莓派供电,3.5寸的移动硬盘需要额外供电
- 网线
准备阶段
本文档以CentOS7为例:
- 首先下载镜像文件CentOS-Userland-7-armv7hl-Minimal-1708-RaspberryPi3.img.xz
- 下载烧录软件etcher
- 利用软件将镜像烧录到TF卡中
- 将TF卡插入树莓派,接上网线并通电
- 去路由器后台查找树莓派的IP地址,默认情况下会通过路由器的DHCP服务,分配到IP地址
- 通过ssh协议连接到树莓派,root的初始密码为centos:
###修改密码
[root@centos-rpi3 ~]# password 你的新密码
### 升级补丁并安装所需软件
[root@centos-rpi3 ~]# yum update -y
[root@centos-rpi3 ~]# yum -y install vim wget git epel-release htop git gcc-c++ make
### 创建非特权账号,root账号保留不使用
[root@centos-rpi3 ~]# useradd storj
[root@centos-rpi3 ~]# password storj
### 从root切换到storj账号进行后续操作
[root@centos-rpi3 ~]# su - storj
[storj@centos-rpi3 ~] wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash
[storj@centos-rpi3 ~] nvm install --lts
[storj@centos-rpi3 ~] npm install --global storjshare-daemon -registry=https://registry.npm.taobao.org
Storj 节点配置
## 创建Storj节点,其中YOUR_STORJ_TOKEN_WALLET_ADRESS为你的myetherwallet收款钱包地址,storage后面跟着的是文件存储的路径
[storj@centos-rpi3 ~] storjshare create --storj=YOUR_STORJ_TOKEN_WALLET_ADRESS --storage=/mnt/storjmerge/storj.io/
范例如下,请把–storj=后面的内容替换成你自己的,不然赚取的货币就都送给我了
[storj@centos-rpi3 ~] storjshare-create --storj=0xa682270bC2045171873eB17bB195B2273Fea9066 --storage=/data/
Storj 节点启动
## 启动守护进程
[storj@centos-rpi3 ~] storjshare daemon
## 启动节点
[storj@centos-rpi3 ~] storjshare start --config /path/to/storjconfig/xxxx.json
范例如下:
[storj@centos-rpi3 ~] storjshare daemon
[storj@centos-rpi3 ~] storjshare start --config /root/.storjshare/configs/6666666666666666666666.json
Storj 节点验证
## 运行命令查看节点状态
[storj@centos-rpi3 ~] storjshare status
调优
- 配置文件中设定 maximum shard size
注意在”2GB”后添加”,”逗号,并将maxShardSize值设为150M左右,会比较稳定,不容易崩溃
"storageAllocation": "2GB",
// Max size of shards that will be accepted and stored
// Use this and make this lower if you don't have a strong internet connection
"maxShardSize": "150MB",