Tại sao nên mở port 3414 cho Grin node

Bài này về kỹ thuật nên không liên quan đến coin nhiều, bạn nào có chút kiến thức về IT sẽ dễ hiểu hơn.

Là một Grin fan thì mình thường chạy nhiều node để giúp mạng lưới Grin tốt hơn và bảo mật hơn. Và chạy node thường tốn chút tiền máy tính (điện+mạng 24/7) và không có tiền thưởng như bên máy đào nên nếu bạn thực sự yêu thích coin nào và dư giả tài chính thì chạy node để ủng hộ mạng lưới coin của mình. Chứ không có lợi ích về mặt tài chính nhé 😀

Trong một blockchain công khai thì sẽ yêu cầu tất cả những người tham gia mạng lưới ( là node) phải nhận thức được trạng thái hiện tại của blockchain. Vì vậy các node phải liên tục nói chuyện với nhau và luôn cập nhật giao dịch từ nhau. Giao tiếp P2P liên tục này là cách mà toàn bộ hệ thống mạng giữ trạng thái đồng bộ với nhau. Bạn sẽ thấy giao thức này na ná như giao thức download torrent, file chia sẻ sẽ phân tán trên mỗi máy dùng torrent chứ không lưu tại một nơi cố định.

Blockchain node của bạn sẽ là một sổ cái công khai, giữ một danh sách các thay đổi (giao dịch) mà các node khác giao tiếp với nhau, nên sẽ chia thành hai loại kết nối:

  • Kết nối ra bên ngoài (Outbound peers) – Đây là các kết nối ra ngoài tới node khác ra. Node của bạn sẽ liên lạc tới các node này đầu tiên và thông báo thông tin thay đổi đang có ở node của bạn tới các node này.
  • Kết nối vào bên trong (Inboud peers) – Là các kết nối đi vào node của bạn, node của bạn sẽ luôn ở trạng thái lắng nghe và chấp nhận các yêu cầu để trở thành một node ngang hàng (peer).

Như hình trên bạn sẽ thấy danh sách địa chỉ IP mà node của bạn sẽ tiếp nhận và cung cấp thông tin. Nói dễ hiểu thì Outbound là các IP mình sẽ cung cấp thông tin cho nó, còn Inbound là mình sẽ chấp nhận thông tin đi vào.

Theo cấu hình mặc định, grin node sẽ có ít nhất 8 kết nối ra và tối đa 128 kết nối vào.

Để có được các kết nối đi vào node của bạn, bạn cần cho phép các kết nối bên ngoài đi vào trước. Node grin của bạn sẽ luôn ở trạng thái lắng nghe thế giới bên ngoài thông qua cổng 3414 và để các node khác cập nhật đồng bộ, bạn sẽ phải mở cổng này, dân IT hay gọi là Port Forwarding hay NAT. Điều này sẽ làm cho node của mình trở thành một node công khai.

Vậy tại sao mình nên cho phép kết nối đi vào node của mình?

Một node không mở kết nối bên ngoài đi vào mình tạm hiểu là leeching. Nghĩa là node đó không cho phép các node mới (hoặc mới trở lại) mà muốn đồng bộ blockchain để lấy dữ liệu từ node này. Node riêng tư sẽ chỉ yêu cầu kết nối với các node khác mà đã được cập nhật. Cũng cần lưu ý rằng trong giao thức bồ công anh (dandelion protocol), các giao dịch chỉ được chuyển qua các node công khai (đã đc mở port) trước khi chúng được phát lên toàn bộ mạng lưới. Một node riêng tư (chưa mở cổng 3414) không thể tham gia vào quá trình gốc (như các node stem như hình dưới).

Kết luận: Nếu bạn có kết nối Internet ổn định và có kế hoạch giữ cho node của mình hoạt động liên tục 24/7, thì việc mở cổng 3414 sẽ rất có giá trị đối với tính an toàn và bảo mật của toàn bộ mạng lưới blockchain của Grin.

Thông thường thì các ví dạng mobile thì sẽ dùng pruned node, được cắt tỉa gọn nhẹ, trên điện thoại nếu dùng kết nối 3G-4G-5G (không dùng wifi) thì thông thường sẽ không có tường lửa (firewall) chặn kết nối ra vào qua cổng 3414.

Còn với các máy tính kết nối internet mọi người hay sử dụng, sẽ phải thông qua một con modem hay router để mà có thể vào mạng internet được. Trong ví dụ này mình dùng modem của VNPT đê mở port 3414.

Mình cần phải biết địa chỉ của modem của mình để kết nối vào, thông thường thì là 192.168.1.1. Để biết chắc chắn cách dễ nhất là vào:

Trên Windows, bạn vào Run, gõ cmd rồi nhập

powershell -command "ipconfig | select-string default" 

Trên Linux bạn dùng lệnh

ip route | grep default
Mở cổng trên Modem

Đầu tiên mình cần cố định địa chỉ IP cho node của mình để modem không thay đổi IP của node liên tục, để biết MAC address của mình là bao nhiêu, bạn có thể tham khảo đây. Trường hợp này mình gán IP 192.168.1.9 là cố định vĩnh viễn cho con node của mình

co dinh dia chi ip voi mac address tren modem vnpt

Sau đó vào mục NAT để điền port 3414 cho IP này

Rồi kiểm tra lại sẽ thấy dòng vừa thêm vào

Mở tường lửa (firewall) trên máy chạy node

Nếu bạn chạy node trên cloud như của Amazon, Google hay Azure thì mình cũng cần phải vào mục firewall hoặc Networking để cho phép kết nối vào (Inbound connection).

Ở đây mình chạy trên máy ảo ở nhà nên trên chính con node mình (nếu có cài firewall) cũng cần phải cho phép firewall chấp nhận port 3414 hoặc chấp nhận ứng dụng grin chạy trên tất cả các port.

Cho phép grin chạy trên Windows:

Trên Linux thì có nhiều loại firewall, tùy mỗi loại mình sẽ chạy lệnh tương ứng:

sudo ufw allow 3414/tcp
vi /etc/csf/csf.conf
TCP_IN = "3414, port khác,..."
sudo iptables -A INPUT -p tcp --dport 3414 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 3414 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo firewall-cmd --zone=public --permanent --add-port=3414/tcp
sudo firewall-cmd --zone=public --permanent --add-port=3414/udp


Kiểm chứng:

Để kiểm tra node của mình đã mở công khai hay không, bạn truy cập https://canyouseeme.org/ để đảm bảo rằng port 3414 có thể truy cập được. Node của bạn phải đang chạy trong khi bạn kiểm tra trên trang này.

Nếu bạn có khúc mắc gì hay chỗ nào cần giải đáp thì bạn comment phía dưới nha. Thanks

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Related Posts