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 board 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

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

orangepi_prime

Phần mềm

  • File ảnh chứa hệ điều hành cho orange pi prime do nhóm skycoin tạo lưu ở github
  • Phần mềm format thẻ nhớ SD Card Formatter
  • Phần mềm ghi file ảnh vào thẻ nhớ Etcher

Lưu ý dây cấp nguồn của orange pi từ cổng hơi đặc biệt (4mm) 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 ra 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

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 thông qua git:

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

Chạy thử

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 board 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.target

[Service]
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ế ip_of_manager với ip của bo manager)

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

[Service]
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 ip_of_manager:5998 -manager-web ip_of_manager: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
sudo systemctl enable skymanager.service # chỉ thực hiện cho bo quản lý
sudo systemctl enable skynode.service # thực hiện cho tất cả các board
sudo systemctl start skymanager.service # chỉ thực hiện cho bo quản lý
sudo systemctl start skynode.service # thực hiện cho tất cả các bo

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