Tin nóng ⇢

Node là gì? 5 bước chạy node cơ bản của blockchain

Node là gì?

Node là các nút giúp lưu trữ, truyền tải và bảo quản dữ liệu blockchain, vì vậy về mặt lý thuyết, một blockchain tồn tại trên các node. Cốt lõi của Blockchain dựa trên các nguyên tắc của mạng P2P (Peer to Peer). Trong hầu hết các mạng, không có máy chủ trung tâm, mà là sự đồng thuận giữa những node.

node là gì

Node có thể là bất kỳ loại thiết bị nào, nó có thể là PC, Laptop, các máy chủ lớn hơn,… Các node tạo thành cơ sở hạ tầng của một blockchain. Tất cả các node trên một blockchain được kết nối với nhau, chúng liên tục trao đổi dữ liệu mới nhất với nhau để tất cả các node luôn được cập nhật.

Node trong Blockchain hoạt động như thế nào?

Khi một thợ đào hay Validator (người xác thực) cố gắng thêm một block giao dịch mới vào blockchain, họ sẽ truyền block tới tất cả (hoặc một phần, tùy vào thuật toán đồng thuận của blockchain sử dụng) các node trên mạng.

Dựa trên tính hợp pháp của block (tính hợp lệ của chữ ký và giao dịch), các node có thể chấp nhận hoặc từ chối block đó. Khi một node chấp nhận một block giao dịch mới, nó sẽ lưu trữ block đó trên đầu các block còn lại mà nó đã lưu trữ. Tóm lại, đây là những gì các node làm:

  • Các node kiểm tra xem một block giao dịch có hợp lệ không và chấp nhận hoặc từ chối nó.
  • Nếu chấp nhận, các node sẽ lưu trữ các block giao dịch (lưu trữ lịch sử giao dịch blockchain).
  • Các node phát và lan truyền lịch sử giao dịch này đến các node khác để đồng bộ hóa với blockchain (cập nhật về lịch sử giao dịch).

Phân loại Node trong Blockchain

Có hai loại node chính:

  • Full nodes (node đầy đủ).
  • Lightweight nodes (node nhẹ).
full node light node
Full Node & Light Node (Lightweight Node)

Full Node

Full Node hoạt động như một máy chủ trong một mạng phi tập trung. Nhiệm vụ chính của nó bao gồm duy trì sự đồng thuận giữa các node khác và xác minh các giao dịch.

Nó cũng lưu trữ một bản sao của blockchain, do đó an toàn hơn và cho phép các chức năng nâng cao như quyền biểu quyết cho các đề xuất trong mạng. Một số đặc điểm chính của một Full Node:

  • Lưu trữ đầy đủ dữ liệu blockchain.
  • Tham gia xác nhận block, xác minh tất cả các block và trạng thái.
  • Tất cả các trạng thái có thể bắt nguồn từ node đầy đủ.
  • Cung cấp dữ liệu theo yêu cầu cho các node nhẹ.

Lightweight nodes

Một loại node khác được sử dụng trong các hoạt động tiền điện tử hàng ngày, là Lightweight nodes, hay nút xác minh thanh toán đơn giản (SPV – Simple Payment Verification).

Các loại node này giao tiếp với blockchain trong khi dựa vào các nút đầy đủ để cung cấp cho chúng thông tin cần thiết. Vì chúng không lưu trữ bản sao của toàn bộ blockchain, chúng chỉ truy vấn trạng thái hiện tại để xử lý các giao dịch.

Việc chạy Lightweight nodes không yêu cầu nhiều tài nguyên, nhưng nó hy sinh tính bảo mật vì lợi ích thuận tiện.

Ai có thể chạy một Blockchain Node?

Về mặt lý thuyết, bất kỳ ai cũng có thể chạy một blockchain node, nhưng tùy vào thuật toán đồng thuận của blockchain đó mà có có một số yêu cầu nhất định:

Tuy nhiên, với những Blockchain như BSC, Okexchain, HECO,… Chúng sử dụng thuật toán đồng thuận Proof of Authority (PoA), một thuật toán đồng thuận dựa trên danh tiếng. Có nghĩa là, ai cũng có thể chạy node, nhưng để xác thực cho các chain PoA thì bạn phải thực sự là người có danh tiếng trong cộng đồng đó, điều này không phù hợp với đại đa số người dùng phổ thông.

proof of authority node
Thuật toán đồng thuận Proof Of Authority

Hay với blockchain sử dụng thuật toán đồng thuận Delegated Proof of Stake (DPoS), đây là thuật toán dựa trên giá trị số token mà người dùng nắm giữa, nói cách khác, chỉ có “top holder” mới có quyền để chạy các node cho các blockchain này, điều này cũng không phù hợp với đại đa số người dùng phổ thông.

dpos node
Thuật toán đồng thuận DPoS

Bên cạnh đó cũng có những blockchain phân quyền hơn, giới hạn gia nhập thấp hơn đáng kể như Ethereum. Ethereum khuyến khích người dùng tự chạy node riêng để cho phép họ sử dụng Ethereum một cách tin cậy và riêng tư, trong khi vẫn hỗ trợ cho hệ sinh thái.

Một số lợi ích của việc tự chạy một Ethereum Full Node:

  • Node của bạn tự xác minh tất cả các giao dịch theo các quy tắc đồng thuận. Điều này có nghĩa là bạn không phải dựa vào bất kỳ node nào khác trong mạng hoặc hoàn toàn tin tưởng vào chúng.
  • Bạn sẽ không phải rò rỉ địa chỉ và số dư ví của mình cho các node ngẫu nhiên.
  • Dapp của bạn có thể an toàn và riêng tư hơn nếu bạn sử dụng node của riêng mình.
  • Bạn có thể lập trình các RPC endpoints tùy chỉnh của riêng mình.

Một số lợi ích đem lại cho Ethereum Network:

  • Một tập hợp các node đa dạng rất quan trọng đối với sự bảo mật và khả năng phục hồi hoạt động của Ethereum.
  • Các node đầy đủ cung cấp quyền truy cập vào dữ liệu blockchain cho các node nhẹ phụ thuộc vào nó.

5 bước chạy Node cơ bản cho người mới

Ngoài việc stake token/coin để trở thành Node, có một dạng nữa là chạy Node thông qua Node. Cách này thường kén người làm vì đa phần người chơi trong crypto không rành về Node.

Thông thường chạy Node bằng code dành cho testnet, vì lúc đó dự án chưa ra mắt token. Nhưng cũng chính vì chưa có token, nên cơ hội nhận Retroactiv1qe là lớn.

Có rất nhiều trang cung cấp dịch vụ thuê VPS. Một trong số đó là Contabo. Đa phần các trường hợp chỉ cần mua option rẻ nhất là được. Dưới đây là các bước mình thường làm:

  • Thuê VPS.
  • Nhận thông tin đăng nhập.
  • Nhập hàm tmux.
  • Tùy dự án mà sau đó nhập các lệnh khác nhau.

Bước 1: Thuê VPS

VPS (Virtual Private Server) có thể hiểu là máy tính ảo để người dùng chạy code. Việc mua VPS giống như chúng ta mua một chiếc máy tính khác, nhưng không sở hữu vật lý.

Vậy tại sao phải mua VPS mới chạy được Node? Bởi vì các dự án testnet đa phần không có bảo mật tốt, nên nếu dùng máy chính có thể ảnh hưởng đến dữ liệu.

Đầu tiên, truy cập contabo.com/en và chọn VPS rẻ nhất.

thuê vps chạy node 1
Chọn option rẻ nhất

Tiếp theo chọn cụ thể VPS, mình cũng chọn loại rẻ nhất.

thuê vps chạy node 2
Chọn cụ thể VPS

Chọn thời gian và địa điểm. Ở đây mình chọn 12 tháng và ASIA.

Cập nhật: Bạn KHÔNG CẦN chọn Châu Á, cứ chọn European Union cho tiết kiệm cũng được.

thuê vps chạy node 3
Chọn thời gian thuê và địa điểm

Kéo xuống và nhập Password. Các thông tin còn lại giữ nguyên, bao gồm bộ nhớ 200 GB SSD, hệ điều hành Ubuntu… và bấm Next.

thuê vps chạy node 4
Điền Password

Cuối cùng điền thông tin các nhân cùng thẻ thanh toán để hoàn tất thuê VPS.

thuê vps chạy node 5
Bước cuối cùng trước khi thanh toán

Bước 2: Nhận thông tin đăng nhập

Sau khi hoàn tất, hệ thống sẽ gửi email cho bạn.

email confirm chạy node 1
Thư xác nhận đặt hàng thành công

Đợi thêm một lát, sẽ có email tiếp theo cung cấp tài khoản, mật khẩu đăng nhập như sau:

login data chạy node
Thông tin đăng nhập

Sau đó, truy cập my.contabo.com/account/login để đăng nhập. Lần lượt thực hiện việc đổi mật khẩu theo các bước như sau: Chọn Your services.

your service chạy node
Bấm Your service

Tiếp theo bấm Manage → Control.

manage control chạy node
Bấm Manage – Control

Bấm Password Reset.

password reset chạy node
Bấm Password reset

Cuối cùng nhập Password mới là hoàn tất. Sở dĩ có bước đổi mật khẩu là do mật khẩu cung cấp ban đầu của Contabo không biết vì lý do gì không thể đăng nhập được.

Bước 3: Nhập thông tin đăng nhập

Thông tin đăng nhập bao gồm IP chúng ta có ở email thông tin đăng nhập, cùng với mật khẩu đã đổi ở trên.

ip chạy node
IP đăng nhập nằm ở đây

Để đăng nhập, tùy vào hệ điều hành mà có các cách khác nhau:

  • Windows: Start + R; sau đó search CMD và Enter.
  • MacOS: Command + Space; sau đó search Terminal và Enter.
terminal chạy node
Giao diện Terminal của MacOS

Anh em bấm cú pháp sau để đăng nhập vào VPS:

ssh root@<địa chỉ IP>

Sau đó bấm Enter. Ví dụ:

ssh [email protected]

Với các VPS lần đầu đăng nhập vào máy, hệ thống sẽ hỏi như sau. Chúng ta bấm yes (chú ý viết thường, vì có lúc sẽ viết hoa) và Enter.

yes no chạy node
Bấm yes và Enter để tiếp tục

Tiếp theo, anh em nhập Password đã đổi ở trên vào. Lưu ý, các kí tự Password không hiện trên Terminal, nên anh em cứ bấm bình thường. Sau khi hoàn tất thì bấm Enter.

ip password chạy node
Giao diện khi đăng nhập vào VPS thành công trên Contabo

Bước 4: Nhập hàm tmux

tmux là hàm để chạy Node khi anh em tắt máy. VPS chỉ là máy tính thông thường, khi chúng ta tắt Terminal, VPS cũng sẽ tắt, và mọi hoạt động cũng dừng theo. Điều này làm việc chạy Node bị ngừng lại.

Để khắc phục điều này, ta cài thêm tmux vào. Khi chạy Node trong tmux sẽ chạy vĩnh viễn đến khi chúng ta chủ động dừng lại, mà không bị ảnh hưởng bởi tắt máy.

Sau khi đăng nhập thành công, anh em cài tmux bằng lệnh sau:apt install tmux

Sau đó Enter.

tmux chạy node
Cài đặt tmux

Để truy cập vào tmux, anh em bấm lệnh sau:

tmux

Sau đó bấm Enter.

tmux interface chạy node
Giao diện trong tmux

Bước 5: Chạy Node

Thông qua các bước trên, chúng ta đã đi hết các bước cơ bản để chạy Node. Phần còn lại tùy thuộc vào từng dự án sử dụng ngôn ngữ lập trình, thiết kế mà có các lệnh khác nhau.

Reinstall node (không bắt buộc)

Reinstall node là hành động xóa TẤT CẢ dữ liệu trong node, dùng khi bạn có nhiều dữ liệu nhưng không muốn, hoặc không biết xóa thủ công. Sau khi reinstall, node sẽ thành node mới hoàn toàn. Cách reinstall như sau:

Sau khi đăng nhập vào VPS, bấm Your services.

reinstall node 1

Bấm Manage, chọn Reinstall.

reinstall node 2

Sau đó bạn nhập mật khẩu vào, bấm Star Installation.

reinstall node 3

Thanh trạng thái sẽ là Pending → Running → Finish. Nếu đợi khoảng 10 phút mà không thấy Finish, bạn có thể bấm Refresh để làm mới trạng thái.

reinstall node 4

Theo C98

Có thể bạn quan tâm

Mục lục