Zencash 安全節(jié)點(diǎn)搭建指南(主網(wǎng)測試)

最新消息:

安全節(jié)點(diǎn)beta版將于11月30日(12月1日)遷移至zencash主網(wǎng)

安全節(jié)點(diǎn)目前已經(jīng)正式在zencash主網(wǎng)運(yùn)行。

英文版安全節(jié)點(diǎn)搭建指南(最新完整版)

搭建過的舊版本的需要做一些升級(jí)操作旧乞,或者刪除secnodetracker文件夾离福,重新clone最新版本堤撵。

運(yùn)行安全節(jié)點(diǎn)的必要條件:

  • 1個(gè)域名
  • 1臺(tái)租用的VPS服務(wù)器
  • 43個(gè)ZEN
本教程是用Ubuntu 16.04 64bit 進(jìn)行搭建推汽。
域名:

任何后綴的域名都可以亭罪,不僅限于com, net這種貴的域名复哆,可以是非常便宜的 .top, .cc, .xyz 之類欣喧。

域名解析:

每個(gè)安全節(jié)點(diǎn)需要一個(gè)二級(jí)域名,用A記錄指向VPS服務(wù)器梯找。


配置域名解析:

我使用的dnspod.cn唆阿。


在自己的電腦上試一下能否解析成功:

ping znode2.bidb.io

域名解析生效需要等一會(huì)兒,可以先進(jìn)行下一步锈锤。


VPS服務(wù)器可以選擇linode的10美元方案驯鳖。

(測試期間選擇的5美元配置闲询,但在正式網(wǎng)中挑戰(zhàn)應(yīng)答總是超時(shí),所以現(xiàn)在推薦10美元的配置)


配置VPS服務(wù)器

登錄VPS服務(wù)器:
ssh root@45.79.90.93
更新系統(tǒng)和軟件:
apt-get -o Acquire::ForceIPv4=true update  && apt-get -y upgrade

更新過程如果出現(xiàn)下圖中的提示臼隔,選第二個(gè)選項(xiàng)后按Tab建切換到Ok嘹裂,回車?yán)^續(xù)。

修改主機(jī)名:
hostnamectl set-hostname znode2
向hosts文件中添加一個(gè)域名映射:
vi /etc/hosts

45.79.66.111 znode2 znode2.bidb.io

znode2 是你的主機(jī)名摔握,znode2.bidb.io改成你的二級(jí)域名寄狼。

設(shè)定時(shí)區(qū)
timedatectl set-timezone 'Asia/Shanghai'
添加管理員用戶:

新建一個(gè)擁有管理權(quán)限的用戶

adduser znuser && adduser znuser sudo

根據(jù)提示,重復(fù)輸入兩次新用戶的密碼氨淌。


退出root賬戶泊愧,今后只使用新用戶znuser登錄。

exit
使用新用戶名重新登錄服務(wù)器盛正。
ssh znuser@45.79.66.111
為了服務(wù)器更加安全删咱,需要禁用root登錄。
sudo vim /etc/ssh/sshd_config

移動(dòng)到第28行豪筝,修改配置文件痰滋,將PermitRootLogin設(shè)置為no,然后保存退出续崖。
修改之后如下所示:

重啟sshd服務(wù)使修改生效:
sudo systemctl restart sshd.service
安裝一些常用工具:
sudo apt-get -o Acquire::ForceIPv4=true update
sudo apt -y install git screen vim nmap ncdu busybox inxi links unzip python
配置防火墻

為了服務(wù)器更加安全敲街,必須配置防火墻。

查看防火墻是否正常運(yùn)行:

sudo ufw status
防火墻未開啟
配置防火墻:
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow http/tcp
sudo ufw allow https/tcp
sudo ufw allow 9033/tcp
sudo ufw logging on
開啟防火墻:
sudo ufw enable

配置完成后严望,檢查一次防火墻狀態(tài)多艇。

sudo ufw status
ssh安全防護(hù):

使用Fail2Ban防止黑客非法登錄你的服務(wù)器。(fail2ban會(huì)限制ssh重試登錄次數(shù)像吻,10次密碼錯(cuò)誤后峻黍,請(qǐng)求登錄的IP地址會(huì)被加入黑名單,10分鐘之后才可以再次登錄拨匆。)

sudo apt -y install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

可以通過如下命令姆涩,查看非法登錄的攔截記錄:

sudo tail -f /var/log/fail2ban.log
增大虛擬內(nèi)存。

我們租用的VPS內(nèi)存比較少涮雷,通過增大SWAP交換空間(虛擬內(nèi)存)阵面,可以避免一些內(nèi)存不足的情況。

查看當(dāng)前的內(nèi)存使用信息:
free -h
配置4G大小的交換空間:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
再次查看內(nèi)存:
free -h

優(yōu)化交換空間的參數(shù):

sudo vi /etc/sysctl.conf
將如下配置添加到文件末尾:
vm.swappiness=10
配置重啟后自動(dòng)掛載交換空間:
sudo vi /etc/fstab
將如下配置添加到文件末尾:
/swapfile none swap sw 0 0

安裝zencash

為了避免一些錯(cuò)誤洪鸭,我們先要禁用ipv6:
sudo vi /etc/sysctl.conf
在文件末尾添加如下內(nèi)容:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

執(zhí)行如下命令使配置生效
sudo sysctl -p 

安裝常用工具:
sudo apt -y install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake
下載zencash代碼:
mkdir zencash
cd zencash
git clone https://github.com/ZencashOfficial/zen.git
下載zkSNARK 數(shù)據(jù)包:
cd zen
./zcutil/fetch-params.sh
下載編譯好的zen客戶端
cd ~
wget https://github.com/ZencashOfficial/zen/releases/download/v2.0.10-1/zen-2.0.10-1-amd64.deb
開始安裝
sudo dpkg -i zen-2.0.10-1-amd64.deb
sudo apt-get -f -y install
運(yùn)行zend:
zend

第一次運(yùn)行zend會(huì)生成一個(gè)配置文件 ~/.zen/zen.conf

編輯zen.conf
vim ~/.zen/zen.conf

把如下內(nèi)容粘貼進(jìn)文件样刷,將 rpcpassword 換成你自己的密碼。

addnode=zen.suprnova.cc
addnode=zpool.blockoperations.com
addnode=zen.bitfire.one
addnode=zenmine.pro
addnode=minez.zone
addnode=zennodes.network
rpcuser=znodeuser
rpcpassword=63Qa5VybvCTPppBpVmn8HpjrKgxqaaEAqfYVrHjk9WtBG738
rpcport=18231
rpcallowip=127.0.0.1
server=1
daemon=1
listen=1
txindex=1
logtimestamps=1

可以使用如下命令隨機(jī)密碼生成:

sudo tr -dc A-Za-z0-9 < /dev/urandom | head -c 48 | xargs
配置開機(jī)自動(dòng)運(yùn)行:
crontab -e

第一次運(yùn)行會(huì)提示選擇編輯器.


把如下內(nèi)容添加到文件末尾:

@reboot /usr/bin/zend
再次運(yùn)行zend:
zend

如果你已經(jīng)開啟了览爵,先關(guān)閉再重新執(zhí)行:

cd ~
zen-cli stop
zend
查看信息:

第一次運(yùn)行會(huì)同步一段時(shí)間置鼻,當(dāng)兩次查看blocks數(shù)值沒有變化,說明區(qū)塊數(shù)據(jù)同步完成了蜓竹。

zen-cli getinfo

生成SSL證書

sudo ufw status numbered
檢查防火墻箕母,確保80, 443端口開啟:
檢查80和443端口是否被占用:
netstat -tan
執(zhí)行如下命令储藐,下載安裝acme.sh腳本。
cd
sudo apt install socat
mkdir acme
cd acme
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install
生成證書:
cd ~
sudo .acme.sh/acme.sh --issue --standalone -d znode2.bidb.io
證書的完整路徑
添加定時(shí)任務(wù)嘶是,自動(dòng)更新證書:
sudo crontab -e
在文件末尾添加如下內(nèi)容:

6 0 * * * "/home/znuser/.acme.sh"/acme.sh --cron --home "/home/znuser/.acme.sh" > /dev/null

將兩處 znuser 替換成你自己的用戶名钙勃。

配置證書

在 /usr/share/ca-certificates/ 目錄下創(chuàng)建letsencrypt目錄來保存CA證書。

sudo mkdir /usr/share/ca-certificates/letsencrypt/
sudo cp /home/znuser/.acme.sh/znode2.bidb.io/ca.cer /usr/share/ca-certificates/letsencrypt/ca.crt
sudo dpkg-reconfigure ca-certificates

出現(xiàn)如下窗口聂喇,選yes(用鍵盤方向鍵選擇)辖源,按Tab鍵切換到Ok, 回車進(jìn)入下一步希太。

按下空格鍵選中第一項(xiàng)[*]克饶,然后Tab到Ok,回車誊辉。

zend開啟TLS支持

修改zen.conf配置矾湃,添加證書路徑開啟TLS支持。

vim ~/.zen/zen.conf
將如下內(nèi)容添加到文件末尾:

tlscertpath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.cer
tlskeypath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.key

將znuser替換成你的用戶名堕澄,后面的文件夾和文件名都要換成你自己的邀跃。

停止安全節(jié)點(diǎn),重新啟動(dòng):
zen-cli stop
zend
測試TLS是否正常:

正式網(wǎng)絡(luò)使用9033端口

openssl s_client -connect znode2.bidb.io:9033
正常狀態(tài)如下圖:
安裝Node.js:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
安裝secnodetracker :
cd ~/zencash
git clone https://github.com/ZencashOfficial/secnodetracker.git
安裝node modules:
cd secnodetracker
npm install
運(yùn)行安全節(jié)點(diǎn)需要至少43個(gè)ZEN蛙紫,其中42放在一個(gè)T地址錢包坞嘀,1個(gè)ZEN放在安全節(jié)點(diǎn)的Z地址中。
新建一個(gè)Z地址:
zen-cli z_getnewaddress
查看錢包余額:
zen-cli z_gettotalbalance

使用Swing Wallet 向這個(gè)z地址轉(zhuǎn)入至少1個(gè)ZEN(拆分成4-5個(gè)小訂單轉(zhuǎn)過去推薦每次轉(zhuǎn)0.2個(gè))

最好是1.1個(gè)惊来,每次挑戰(zhàn)應(yīng)答都需要耗費(fèi)0.0001 交易費(fèi)。

在Windows下面轉(zhuǎn)賬ZEN會(huì)更容易一些

轉(zhuǎn)賬確認(rèn)需要3分鐘左右棺滞,在服務(wù)器上用如下命令來查詢余額(private 是Z地址的余額):
zen-cli z_gettotalbalance

等ZEN到賬后再進(jìn)行下一步裁蚁。

配置secnodetracker:
cd ~/zencash/secnodetracker
node setup.js
node setup
  • Stake transparent address: 填寫余額大于42個(gè)ZEN的T地址
  • Alert email address: 用來接收信息的郵箱地址。
  • Full hostname (FQDN) 填寫二級(jí)域名
  • Region code: 區(qū)域代碼, 北美(na)歐洲(eu)東南亞(sea) 填寫服務(wù)器所在地的對(duì)應(yīng)代碼继准。如果也是Fremont 機(jī)房枉证,填寫na 。

運(yùn)行secnodetracker:

node app.js

顯示內(nèi)容可能略有不同移必,不過只要顯示Authenticated 就說明運(yùn)行正常了.

收到一次挑戰(zhàn)
收到一次挑戰(zhàn)(完成挑戰(zhàn)后會(huì)有相應(yīng)獎(jiǎng)勵(lì))室谚。

ctrl+c 結(jié)束這次執(zhí)行,接下來配置pm2守護(hù)進(jìn)程崔泵。

設(shè)置開機(jī)自動(dòng)運(yùn)行:
安裝pm2:
sudo npm install pm2 -g
配置開機(jī)自動(dòng)運(yùn)行:
pm2 start app.js --watch
pm2 save
pm2 startup
執(zhí)行提示中的內(nèi)容秒赤。
查看secnodetracker的運(yùn)行狀態(tài):
pm2 list
查看你的安全節(jié)點(diǎn)狀態(tài):
通過這個(gè)網(wǎng)站可以查詢安全節(jié)點(diǎn)運(yùn)行狀態(tài)

安全節(jié)點(diǎn)劃分為3個(gè)區(qū)域,根據(jù)填寫的Region code訪問對(duì)應(yīng)的查詢頁面憎瘸。

北美: https://securenodes.na.zensystem.io/
歐洲: https://securenodes.eu.zensystem.io/
東南亞: https://securenodes.sea.zensystem.io/

正式網(wǎng)的安全節(jié)點(diǎn)入篮。

本篇教程參考英文版搭建教程,并做了一定修改幌甘。以下是英文版教程:

https://blockoperations.com/how-to-build-and-operate-a-zencash-secure-node/


007邀請(qǐng)函
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潮售,一起剝皮案震驚了整個(gè)濱河市痊项,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酥诽,老刑警劉巖鞍泉,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肮帐,居然都是意外死亡咖驮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門泪姨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來游沿,“玉大人,你說我怎么就攤上這事肮砾【魇颍” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵仗处,是天一觀的道長眯勾。 經(jīng)常有香客問我,道長婆誓,這世上最難降的妖魔是什么吃环? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮洋幻,結(jié)果婚禮上郁轻,老公的妹妹穿的比我還像新娘。我一直安慰自己文留,他們只是感情好好唯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燥翅,像睡著了一般骑篙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上森书,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天靶端,我揣著相機(jī)與錄音,去河邊找鬼凛膏。 笑死杨名,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猖毫。 我是一名探鬼主播镣煮,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼鄙麦!你這毒婦竟也來了典唇?” 一聲冷哼從身側(cè)響起镊折,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎介衔,沒想到半個(gè)月后恨胚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炎咖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年赃泡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乘盼。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡升熊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绸栅,到底是詐尸還是另有隱情级野,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布粹胯,位于F島的核電站蓖柔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏风纠。R本人自食惡果不足惜况鸣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竹观。 院中可真熱鬧镐捧,春花似錦、人聲如沸臭增。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽速址。三九已至,卻和暖如春由驹,著一層夾襖步出監(jiān)牢的瞬間芍锚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工蔓榄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留并炮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓甥郑,卻偏偏與公主長得像逃魄,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澜搅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理伍俘,服務(wù)發(fā)現(xiàn)邪锌,斷路器,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • feisky云計(jì)算癌瘾、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,827評(píng)論 0 5
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 我媽非常喜歡和陌生人聊天觅丰,這一點(diǎn)上,我挺佩服妨退,能和陌生人聊起來妇萄。 所謂陌生,也不是完全沒交集咬荷,很多是日常接觸到的…...
    尚濤易捷北京閱讀 476評(píng)論 0 0
  • 要做什么冠句? 休息日的時(shí)候,突然有了大把自由支配的時(shí)間,要干點(diǎn)什么好呢?沒有時(shí)間的卻讓人緊張,時(shí)間太多又很不...
    Mtrestm閱讀 369評(píng)論 0 0