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
[email protected]:~# wget https://dl.google.com/go/go1.13.5.linux-arm64.tar.gz
[email protected]:~# tar -C /usr/local -xzf go1.13.5.linux-arm64.tar.gz
[email protected]:~# cd /etc/profile.d/
[email protected]:/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
[email protected]:/etc/profile.d# cd /etc
[email protected]:/etc# nano hostname
Đổi tên cho bo mạch là
skyminermanager
Khởi động lại
[email protected]:/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
[email protected]:~$ sudo apt-get install -y curl git mercurial make binutils gcc bzr bison libgmp3-dev screen gcc build-essential
[email protected]:~$ go version
go version go1.13.5 linux/arm64
[email protected]:~$ git version
git version 2.17.1
[email protected]:~$ 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.
[email protected]:~$ source .bash_profile
[email protected]:~$ mkdir -p $GOPATH/src/github.com/skycoin
[email protected]:~$ cd $GOPATH/src/github.com/skycoin
[email protected]:~/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.
[email protected]:~/go/src/github.com/skycoin$ cd $GOPATH/src/github.com/skycoin/skywire/cmd
[email protected]:~/go/src/github.com/skycoin/skywire/cmd$ go install ./...
[email protected]:~/go/src/github.com/skycoin/skywire/cmd$ cd $GOPATH/bin
[email protected]:~/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
[email protected]:~/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
[email protected]:~/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ó
[email protected]:~/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-028ec969bdeb92a1991bb19c948645ac8150468a6919113061899051409de3f243
là đị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
[email protected]:~# cd /etc/systemd/system
[email protected]:/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
[email protected]:/etc/systemd/system# systemctl daemon-reload
[email protected]:/etc/systemd/system# systemctl enable skywire-manager.service
[email protected]:/etc/systemd/system# systemctl start skywire-manager.service
[email protected]:/etc/systemd/system# systemctl status skywire-manager.service
Trên là cài service skywire-manager, giờ là skywire-node
[email protected]:/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
[email protected]:/etc/systemd/system# systemctl daemon-reload
[email protected]:/etc/systemd/system# systemctl enable skywire-node.service
[email protected]:/etc/systemd/system# systemctl start skywire-node.service
[email protected]:/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