Hướng dẫn cài Skyminer tham gia vào node Skywire

Tiếp theo bài viết trước về Skycoin và Skywire, hôm nay tôi xin hướng dẫn các bạn cài Skyminer trên bo mạch Orange Pi. Vì Orange Pi Prime chi phí khá cao, hơn nữa sản phẩm này đã EOL và có khả năng không sản xuất nữa, do vậy tôi chuyển hướng sang cài Skyminer trên bo mạch Orange Pi Zero Plus.  Orange Pi Zero Plus cũng sử dụng chip H5 như Prime, mặc dù RAM chỉ có 512MB nhưng bù lại Orange Pi Zero Plus lại có cổng LAN Gigabit, rất phù hợp với chạy cluster cho dàn miner crypto coin. Kích thước nhỏ bằng Orange Pi Zero 48 mm × 46mm cũng là cũng một lợi thế khi làm dàn cluster chiếm ít diện tích, dễ làm mát.

Đầu tiên là cài Skyminer phiên bản đơn trước, tôi sử dụng một bo mạch Orange Pi Zero Plus, lắp thêm case và quạt để đảm bảo bo mạch hoạt động ổn định. Bo mạch này sẽ sử dụng luôn làm Skyminer Manager quản lý các nodes còn lại, cho nên cần trang bị cho nó ổn định 1 chút. Như hình là được nhỉ 🙂

 

Bạn cần:

  • 01 bo mạch Orange Pi Zero Plus
  • Case nhựa in 3D
  • Quạt và tản nhiệt
  • Nguồn 5v 2A microUSB

Đầu tiên, hãy cài Armbian phiên bản cho Orange Pi Zero Plus H5, tôi sử dụng bản Armbian_19.11.3 kernel 5.3.9. Cài armbian cho Orange Pi Zero đã hướng dẫn ở đây, dùng cả 2 tài khoản root và tài khoản sudo, tôi đặt là admin/123456 để dễ nhớ. Sau đây câu lệnh nào dùng root, câu lệnh nào dùng admin tôi cũng sẽ chú thích đầu câu lệnh

Vì Skyminer dùng ngôn ngữ GoLang, nên phải cài GoLang trước, vẫn ở tài khoản root sau khi khởi động Orange Pi như ảnh trên xong

root@orangepizeroplus:~# wget https://dl.google.com/go/go1.13.5.linux-arm64.tar.gz
root@orangepizeroplus:~# tar -C /usr/local -xzf go1.13.5.linux-arm64.tar.gz
root@orangepizeroplus:~# cd /etc/profile.d/
root@orangepizeroplus:/etc/profile.d# nano go.sh

Dán đoạn text này này vào

#!/bin/bash
export PATH=$PATH:/usr/local/go/bin

Cltr+X để thoát, nhấn Y để lưu
root@orangepizeroplus:/etc/profile.d# cd /etc
root@orangepizeroplus:/etc# nano hostname

Đổi tên cho bo mạch là

skyminermanager

Khởi động lại
root@orangepizeroplus:/etc# reboot

Đăng nhập lại bằng tài khoản admin, cài các dependencies cần thiết, kiểm tra phiên bản go, phiên bản git, sau đó sửa bash_profile
admin@skyminermanager:~$ sudo apt-get install -y curl git mercurial make binutils gcc bzr bison libgmp3-dev screen gcc build-essential
admin@skyminermanager:~$ go version
go version go1.13.5 linux/arm64
admin@skyminermanager:~$ git version
git version 2.17.1
admin@skyminermanager:~$ nano .bash_profile

Dán đoạn text này này vào

export GOPATH=$HOME/go
export GOBIN=$HOME/go/bin

Cltr+X để thoát, nhấn Y để lưu.
admin@skyminermanager:~$ source .bash_profile
admin@skyminermanager:~$ mkdir -p $GOPATH/src/github.com/skycoin
admin@skyminermanager:~$ cd $GOPATH/src/github.com/skycoin
admin@skyminermanager:~/go/src/github.com/skycoin$ git clone https://github.com/skycoin/skywire.git
Cloning into 'skywire'...
remote: Enumerating objects: 164, done.
remote: Counting objects: 100% (164/164), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 22480 (delta 25), reused 59 (delta 5), pack-reused 22316
Receiving objects: 100% (22480/22480), 55.17 MiB | 1.09 MiB/s, done.
Resolving deltas: 100% (13494/13494), done.
admin@skyminermanager:~/go/src/github.com/skycoin$ cd $GOPATH/src/github.com/skycoin/skywire/cmd
admin@skyminermanager:~/go/src/github.com/skycoin/skywire/cmd$ go install ./...
admin@skyminermanager:~/go/src/github.com/skycoin/skywire/cmd$ cd $GOPATH/bin
admin@skyminermanager:~/go/bin$ sudo apt install tmux

Đến đoạn này là Skywire cơ bản cài xong. Đầu tiên chạy phiên bản Manager để quản lý các node

admin@skyminermanager:~/go/bin$ ./skywire-manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager

Nếu dòng lệnh chạy không báo lỗi, có nghĩa là bạn thành công, hãy truy cập vào PI để quản lý dưới dạng http://IP_CUA_PI:8000
Bạn sẽ thấy màn hình như thế này, thế là OK.

Tuy nhiên ở màn hình CLI, dòng lệnh skywire-manager vẫn đang chạy, để thoát nó bạn cần bấm Cltr + C, nhưng cũng đồng nghĩa với việc kết thúc skywire-manager. Do vậy câu lệnh cài tmux có tác dụng lúc này, chạy lệnh

admin@skyminermanager:~/go/bin$ nohup ./skywire-manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager > /dev/null 2>&1 &sleep 3

Bạn sẽ ko phải lo câu lệnh skywire-manager đang chạy nữa. Giờ chạy 1 node trên chính bo mạch này, và kết nối vào chính nó để quản lý nó

admin@skyminermanager:~/go/bin$ ./skywire-node -connect-manager -manager-address 127.0.0.1:5998 -manager-web 127.0.0.1:8000 -discovery-address testnet.skywire.skycoin.com:5999-028ec969bdeb92a1991bb19c948645ac8150468a6919113061899051409de3f243 -address :5000 -web-port :6001

Trong câu lệnh này:

  • 127.0.0.1 là IP của chính bo mạch này, nếu bạn cài nodes khác trên 1 bo mạch khác, thì thay IP này bằng IP của bo mạch manager
  • testnet.skywire.skycoin.com:5999-028ec969bdeb92a1991bb19c948645ac8150468a6919113061899051409de3f243là địa chỉ testnet mới nhất của Skycoin, giữ nó như vậy

Quay lại trình duyệt, đánh mật khẩu mặc định là 1234 để truy cập. Bạn sẽ thấy như vậy. Hãy bỏ qua các node tôi đã cài độc lập riêng với IP khác, bạn sẽ thấy node số 4 có IP trùng với IP của manager, đấy chính là bo mạch này chạy cùng lúc manager và node. Vậy là bạn đã cài xong.

Bonus thêm. Cài skywire-manager và skywire-node như các service chạy ngầm mỗi khi khởi động

root@skyminermanager:~# cd /etc/systemd/system
root@skyminermanager:/etc/systemd/system# nano skywire-manager.service

Dán đoạn này

[Unit]
Description=Skywire Manager
After=network.target

[Service]
User=admin
Group=admin
WorkingDirectory=/home/admin/go/bin
ExecStart=/home/admin/go/bin/skywire-manager -web-dir /home/admin/go/src/github.com/skycoin/skywire/static/skywire-manager
KillMode=process
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=manager

[Install]
WantedBy=multi-user.target

Cltr+X để thoát, nhấn Y để lưu

root@skyminermanager:/etc/systemd/system# systemctl daemon-reload
root@skyminermanager:/etc/systemd/system# systemctl enable skywire-manager.service
root@skyminermanager:/etc/systemd/system# systemctl start skywire-manager.service
root@skyminermanager:/etc/systemd/system# systemctl status skywire-manager.service

Trên là cài service skywire-manager, giờ là skywire-node

root@skyminermanager:/etc/systemd/system# nano skywire-node.service

Dán đoạn này

[Unit]
Description=Skywire Manager
After=network.target

[Service]
User=admin
Group=admin
WorkingDirectory=/home/admin/go/bin
ExecStart=/home/admin/go/bin/skywire-node -connect-manager -manager-address 192.168.0.240:5998 -manager-web 192.168.0.240:8000 -discovery-address testnet.skywire.skycoin.com:5999-028ec969bdeb92a1991bb19c948645ac8150468a6919113061899051409de3f243 -address :5000 -web-port :6001
KillMode=process
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=manager

[Install]
WantedBy=multi-user.target

Cltr+X để thoát, nhấn Y để lưu

root@skyminermanager:/etc/systemd/system# systemctl daemon-reload
root@skyminermanager:/etc/systemd/system# systemctl enable skywire-node.service
root@skyminermanager:/etc/systemd/system# systemctl start skywire-node.service
root@skyminermanager:/etc/systemd/system# systemctl status skywire-node.service

Trong phần sau tôi sẽ gửi video hướng dẫn cụ thể. Chúc các bạn thành công

Phần tiếp theo: Cluster 2x Orange Pi Zero Plus chạy Skyminer

Bình luận

bình luận

Add Comment

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.