Skywire trên Orange Pi Prime

Lưu ý:

  • Bài viết chỉ thực hiện cài đặt skywire trên board mạch orange pi prime
  • Dưới đây là những tóm lược ghi chú, tôi sẽ cập nhật dần dần
  • Nếu bạn có thắc mắc hoặc hỏi thêm mời gia nhập nhóm telegram https://t.me/OpenLedgerVN

Giới thiệu

Để chạy Skywire trong gia đình tôi có mua một vài bo mạch Orange Pi Prime như theo khuyến nghị của nhóm Skycoin. Tôi bắt tay vào cài đặt và cấu hình sau khi đã có sự chuẩn bị về phần cứng và phần mềm như sau:

Chuẩn bị

Phần cứng

  • Bo mạch Orange Pi Prime
  • Thẻ nhớ 32Gb Class 10
  • Cấp nguồn và dây mạng

Phần mềm

Lưu ý dây cấp nguồn của orange pi từ cổng hơi đặc biệt (4x1.7mm) nên tôi phải lùng mấy chỗ bán linh kiện máy tính gần nhà mới có vì tôi không muốn mua hàng online phải đợi lâu

Cài đặt

  • Flash hệ điều hành vào thẻ nhớ dùng phần mềm Etcher

  • Nhét thẻ nhớ đã có hệ điều hành vào board, cắm dây mạng vào router và cắm nguồn. Board sẽ tự động khởi động sau khi cắm nguồn một vài giây.

  • Kiểm tra và cập nhật bản skywire mới nhất trên github skywire

Cập nhật

# apt-get update && apt-get upgrade -y  

Kiểm tra remote repository

Vào thư mục skywire

# cd $GOPATH/src/github.com/skycoin/skywire

kiểm tra

git remote -v

Kết quả như sau là OK

origin  https://github.com/skycoin/skywire (fetch)
origin  https://github.com/skycoin/skywire (push)

Nếu không đúng thì dùng lệnh

cd $GOPATH/src/github.com/skycoin/skywire
git remote set-url origin https://github.com/skycoin/skywire.git

Cập nhật phiên bản mới nhất của skywire bằng các lệnh git sau đây:

cd $GOPATH/src/github.com/skycoin/skywire
git reset --hard
git clean -f -d
git pull origin master
go install -v ./...

Chạy thử

Trước khi chạy thử Skywire, bạn có thể cài thêm gói mdns để có thể truy xuất bo mạch cài manager thông qua tên host, không cần phải mất công dùng địa chỉ ip mỗi lần truy cập và tránh được tình trạng modem tự động cấp phát ip thay đổi địa chỉ cho bo mạch cài Skywire Manager

Tham khảo cách cài đặt mdns ở đây.

Skywire manager

cd $GOPATH/bin
nohup ./manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager > /dev/null 2>&1 &sleep 3

Skywire node

cd $GOPATH/bin
nohup ./node -connect-manager -manager-address :5998 -manager-web :8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001 > /dev/null 2>&1 &cd /

Kết nối và sử dụng như socks 5. Tôi thường sử dụng socks 5 có IP Mỹ, để đạt được tốc độ cao nhất bạn nên kiểm tra thành phố ở Mỹ có tốc độ cao nhất ở link sau:

https://broadbandnow.com/fastest-cities

Dựa vào kết quả đó bạn tìm thành phố kết nối cho tốc độ cao nhất

Script cho skywire

Để các node của skywire tự động chạy sau khi khởi động lại hệ điều hành hoặc cúp điện thì các bạn dùng script được viết sẵn cho nó để thực hiện.

Để không xảy ra xung đột bạn cần tắt dịch vụ skymanager và skynode nếu bạn đã kích hoạt trước đó:

sudo systemctl stop skymanager.service
sudo systemctl stop skynode.service

Chuyển thư mục đến thư mục hệ thống

cd /etc/systemd/system
# Tạo dịch vụ cho bo mạch manager (bo quản lý) (chỉ thực hiện trên board manager)

vi skymanager.service

# Thêm những dòng sau lưu lại và thoát

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

[Service]
User=root
Group=root
WorkingDirectory=/usr/local/skywire/go/bin
Environment="GOPATH=/usr/local/skywire/go" "GOBIN=$GOPATH/bin"
ExecStart=/usr/local/skywire/go/bin/manager -web-dir /usr/local/skywire/go/src/github.com/skycoin/skywire/static/skywire-manager
ExecStop=kill
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# Tạo dịch vụ cho node (làm cho tất cả các bo mạch bao gồm manager)

vi skynode.service

# Thêm những dòng sau, lưu và thoát
(thay thế địa-chỉ-ip-bo-mạch-quản-lý với ip của bo mạch quản lý)

[Unit]
Description=Skywire Node
After=network-online.target

[Service]
User=root
Group=root
WorkingDirectory=/usr/local/skywire/go/bin
Environment="GOPATH=/usr/local/skywire/go" "GOBIN=$GOPATH/bin"
ExecStart=/usr/local/skywire/go/bin/node -connect-manager -manager-address <địa-chỉ-ip-bo-mạch-quản-lý>:5998 -manager-web <địa-chỉ-ip-bo-mạch-quản-lý>:8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001
ExecStop=kill
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# Thêm dịch vụ vào systemctl

sudo systemctl daemon-reload # thực hiện cho tất cả các bo mạch 
sudo systemctl enable skymanager.service # chỉ thực hiện cho bo mạch quản lý
sudo systemctl enable skynode.service # thực hiện cho tất cả các bo mạch 
sudo systemctl start skymanager.service # chỉ thực hiện cho bo mạch quản lý
sudo systemctl start skynode.service # thực hiện cho tất cả các bo mạch

Hoặc các bạn cũng có thể tải file service cho manager và node tại địa chỉ bên dưới

Sau đó

  • Giải nén được những .service và copy vào thư mục ‘/etc/systemd/system’
  • Kích hoạt dịch vụ

Backup

Để backup bạn nén thư mục .skywire

[email protected]:~# tar czvf skywire-node1.tgz .skywire/

Dùng WinSCP copy file skywire-node1.tgz vừa nén xuống máy và lưu lại

Khi cần khôi phục bạn đặt copy file đã nén để và giải nén

[email protected]:~# tar xzvf skywire-node1.tgz

Kiểm tra node trên skywire discovery và uptime

Tất cả các public key của node hiện nay đều được hiển thị tập trung ở trang discovery của skycoin ở địa chỉ sau

http://discovery.skycoin.net:8001/

Kiểm tra uptime của node hằng tháng

https://skywirenc.com
https://skycoin-node.bchain.ovh/