Skywire

Skywire là một mesh network, nó được kì vọng sẽ thay đổi cách thức mà chúng ta giao tiếp qua internet. Hiện tại bạn có thể dùng Skywire như là một VPN xịn với tốc độ khá nhanh. Bài viết này hướng dẫn bạn cài Skywire trên hệ điều hành Linux gốc debian. Tôi đã cài thử và thành công trên Debian, Ubuntu 32bit lẫn 64 bit.

Để cài đặt Skywire, bạn cần phải cài:

1. GOLANG: môi trường GO để chạy Skywire Manager & Node ​ ​
2. Skywire: phần mềm Skywire do nhóm skycoin phát triển

Trước khi cài đặt GOLANG ta tiến hành cập nhật và cài linux dependenci cần thiết

sudo apt-get update && apt-get upgrade -y
sudo apt-get install -y curl git mercurial make binutils gcc bzr bison libgmp3-dev screen gcc build-essential

1. Cài đặt GOLANG

Vì skywire chạy bằng ngôn ngữ GO nên phải cài đặt GO trước khi cài skywire

Khai báo phiên bản GO cần cài đặt. Ở đây tôi cài đặt GO 1.10

cd ~ 
export GOV=1.10 # phiên bản golang. Có thể là 1.9, 1.10... tuỳ theo yêu cầu tối thiểu của từng phiên bản skycoin
1.1 Tải và giải nén mã nguồn golang

Các bản GOLANG tương ứng cho từng kiến trúc vi xử lý có thể tham khảo ở link sau:

https://golang.org/dl/

Về cơ bản đối với phiên bản 64bit và 32bit có thể tải ở link bên dưới

64bit

curl -sS https://storage.googleapis.com/golang/go$GOV.linux-amd64.tar.gz > go$GOV.linux-amd64.tar.gz
tar xvf go$GOV.linux-amd64.tar.gz
rm go$GOV.linux-amd64.tar.gz

32bit

curl -sS https://storage.googleapis.com/golang/go$GOV.linux-386.tar.gz > go$GOV.linux-386.tar.gz
tar xvf go$GOV.linux-386.tar.gz
rm go$GOV.linux-386.tar.gz
1.2 Cài đặt GO
sudo mv go /usr/local/go 
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go 
sudo ln -s /usr/local/go/bin/godoc /usr/local/bin/godoc 
sudo ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt 

Tạo thư mục GO

mkdir -p $HOME/go
mkdir -p $HOME/go/bin
mkdir -p $HOME/go/src
mkdir -p $HOME/go/pkg

Thiết lập biến $GOPATH

(i) Từ thư mục nhà (cd ~), sửa file .bashrc bằng cách sử dụng lệnh vi (hoặc nano)

nano .bashrc

(ii) Trong nano, thêm vào những dòng sau đây

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

thiet-lap-bien-GOPATH.jpg
(iii) Bấm Crtl + O để lưu nội dung và Ctrl + X để thoát nano (iv) Load lại đường dẫn (Path) bằng cách sử dụng lệnh sau

source ~/.bashrc 

Kiểm tra việc cài đặt GOLANG thành công bằng lệnh

go version

Nếu ở bước này có lỗi bạn thực hiện lại việc cài đặt GOLANG từ đầu, lưu ý chọn đúng kiến trúc của hệ điều hành bạn đang xài. Sau khi hoàn tất việc cài đặt GOLANG tiến hành cài đặt Skywire và chạy thử.

2. Cài đặt Skywire

2.1 Cài đặt

Cài đặt skywire bao gồm tải skywire trên github và tạo file chạy skywire manager và skywire node trên hệ điều hành

Tải skywire trên github của nhóm skycoin

mkdir -p $GOPATH/src/github.com/skycoin
cd $GOPATH/src/github.com/skycoin
git clone https://github.com/skycoin/skywire.git

Tạo file chạy skywire trên Linux

cd $GOPATH/src/github.com/skycoin/skywire/cmd
go install ./...

2.1 Chạy thử Skywire Manager và Skywire Node

a. Chạy thử Skywire Manager

cd $GOPATH/bin
./manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager

Tip: với lệnh chạy thử ở trên bạn sẽ không thể đóng cửa sổ hiện hành, nếu bạn đóng của sổ hiện hành nó sẽ đóng luôn ứng dụng Skywire Manger. Do đó lệnh ở trên chỉ để xem sự hoạt động ban đầu của Skywire Manager có bị lỗi gì hay không. Sau khi Skywire Manager chạy và không báo lỗi bạn có thể Ctrl + C để ngắt lệnh đang chạy và chạy câu lệnh sau để chạy ngầm ứng dụng Skywire Manager

Lưu ý: không thực thi 2 lệnh bên trên cùng lúc, chỉ chọn 1 trong 2 lệnh.

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

b. Kiểm tra việc chạy thử Skywire Manager

Sau khi chạy Skywire Manager, bạn kiểm tra sự hoạt động của nó bằng cách mở trình duyệt và gõ vào địa chỉ của máy cài skywire:

http://ip_của-máy-cài-skywire:8000 (ví dụ http://192.168.1.10:8000) 
hoặc http://localhost:8000 nếu bạn cài trực tiếp trên máy đang sử dụng.

Bạn đã thành công cài đặt và chạy Skywire Manager nếu trình duyệt hiển thị form đăng nhập của Skywire Manager. Pass đăng nhập mặc định là 1234

c. Chạy thử Skywire Node

Tương tự Skywire Manger, Skywire Node cũng có 2 lệnh tương tương ứng. Bạn chỉ thực hiện 1 trong 2 lệnh và không chạy đồng thời

cd $GOPATH/bin
./node -connect-manager -manager-address 127.0.0.1:5998 -manager-web 127.0.0.1:8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001
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 /

d. Kiểm tra việc chạy thử Skywire Node

Gõ địa chỉ của máy cài skywire lên trình duyệt và đăng nhập, bạn sẽ thấy node hiển thị sau khi đăng nhập,

Kết nối và sử dụng như socks 5

Backup

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

tar czvf skywire-node1.tgz .skywire/

Dùng WinSCP copy file skywire-node.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

tar xzvf skywire-node.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/
ps aux | grep node

Bonus: cập nhật GO lang

https://golangcode.com/updating-go-on-ubuntu/

https://skywug.net/forum/Thread-Configure-Skywire-Node-on-Ubuntu-Server