Node là gì? Cách chạy node đơn giản cho người mới bắt đầu
Node là gì? Chúng ta thường nghe thuật ngữ Node trong Blockchain. Vậy Node có vai trò gì trong Blockchain? Hãy tìm hiểu những kiến thức liên quan đến Node trong Blockchain và cách chạy node cho người mới bắt đầu.
Node là gì?
Node là các nút giúp lưu trữ, truyền tải và bảo toà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, nhưng sự đồng thuận giữa các node.
Node có thể là bất kỳ loại thiết bị nào, nó có thể là PC, Máy tính xách tay, 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 đều đượ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 hoạt động như thế nào trong blockchain
Khi một thợ đào hoặc người xác thực (Validator) cố gắng thêm một block giao dịch mới vào blockchain, họ sẽ truyền khối đó đến tất cả (hoặc một phần, tùy thuộc vào thuật toán đồng thuận blockchain được sử dụng) trên mạng.
Dựa trên tính hợp pháp của block (chữ ký và tính hợp lệ của 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 mới, nó sẽ lưu trữ block đó trên phần còn lại của các block 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 có hợp lệ hay không và chấp nhận hoặc từ chối nó.
- Nếu được chấp nhận, các node sẽ lưu trữ các block (lưu trữ lịch sử giao dịch blockchain).
- Các node phát sóng và truyền bá 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 lịch sử giao dịch).
Các loại node trong Blockchain
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 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 lightweight nodes.
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à các lightweight node hoặc các nút Xác minh thanh toán đơn giản (SPV).
Các loại nút 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ữ một 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.
Chạy các lightweight node không yêu cầu nhiều tài nguyên, nhưng nó hy sinh bảo mật vì mục đích thuận tiện.
Ai có thể chạy blockchain node?
Về mặt lý thuyết, bất kỳ ai cũng có thể chạy một node, nhưng tùy thuộc vào thuật toán đồng thuận của blockchain đó, có những yêu cầu nhất định:
Tuy nhiên, với các Blockchain như BSC, Okexchain, HECO,… 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à, bất kỳ ai cũng có thể chạy một node, nhưng để xác thực các chuỗi PoA, bạn phải thực sự có uy tín trong cộng đồng đó, điều này không phù hợp với đại đa số người dùng thông thường.
Hoặc 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ị của token mà người dùng nắm giữ, nói cách khác, chỉ “top holders” mới có quyền chạy các node đối với 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 nói chung.
Ngoài ra còn có nhiều blockchain phi tập trung hơn với giới hạn đầu vào thấp hơn đáng kể như Ethereum. Ethereum khuyến khích người dùng chạy node của riêng họ để cho phép họ sử dụng Ethereum một cách đáng tin cậy và riêng tư, trong khi vẫn hỗ trợ hệ sinh thái.
Một số lợi ích của việc tự chạy 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 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 cho Mạng Ethereum:
- Một tập hợp các node đa dạng là rất quan trọng đối với tính bảo mật và khả năng phục hồi của Ethereum.
- Các node đầy đủ cung cấp quyền truy cập vào dữ liệu blockchain vào các lightweight nodes phụ thuộc vào nó.
Cách chạy node cho người mới bắt đầu
Ngoài việc stake token/coin để trở thành Node, còn có một hình thức khác để chạy Node thông qua Node. Phương pháp này thường kém phổ biến hơn vì hầu hết những người chơi tiền điện tử không quá chuyên về Node.
Thường chạy Node với code cho testnet, vì dự án chưa phát hành token tại thời điểm đó. Nhưng cũng bởi vì không có token, cơ hội bị Retroavtive là rất lớn.
Có rất nhiều trang web cung cấp dịch vụ cho thuê VPS. Một trong số đó là Contabo. Trong hầu hết các trường hợp, chỉ cần mua Option rẻ nhất là đủ. Dưới đây là các bước thường phải làm:
- Thuê VPS.
- Nhận thông tin đăng nhập.
- Nhập hàm tmux.
- Tùy thuộc vào dự án, 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ột máy tính ảo để người dùng chạy code. Mua một VPS cũng giống như mua một máy tính khác, nhưng không phải là sở hữu vật chất.
Vậy tại sao phải mua VPS để chạy Node? Do hầu hết các project testnet đều không có tính bảo mật tốt nên việc sử dụng máy chính có thể ảnh hưởng đến dữ liệu.
Đầu tiên, hãy vào contabo.com/en/ và chọn VPS rẻ nhất.
Tiếp theo, chọn cụ thể VPS
Chọn thời gian và địa điểm. Ở đây tôi chọn 12 tháng và ASIA. Cập nhật: Bạn KHÔNG CẦN phải chọn Châu Á, chỉ cần chọn Liên minh Châu Âu để tiết kiệm.
Cuộn xuống và nhập Mật khẩu. Các thông tin còn lại vẫn giữ nguyên, bao gồm bộ nhớ SSD 200 GB, hệ điều hành Ubuntu… và nhấp vào Next.
Cuối cùng, điền thông tin cá nhân và thẻ thanh toán để hoàn tất việc thuê VPS.
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.
Chờ trong giây lát, sẽ có một email tiếp theo cung cấp tài khoản đăng nhập và mật khẩu như sau:
Sau đó, chuyển đến my.contabo.com/account/login để đăng nhập. Thay đổi mật khẩu lần lượt theo các bước sau: Chọn Your Services.
Tiếp theo nhấp vào Manage → Control.
Nhấp vào Password Reset.
Cuối cùng nhập Password mới và bạn đã hoàn tất. Lý do có một bước để thay đổi mật khẩu là vì mật khẩu ban đầu của Contabo không thể đăng nhập được mà không rõ lý do.
Bước 3: Điền thông tin đăng nhập
Thông tin đăng nhập bao gồm IP mà chúng tôi có trong email thông tin đăng nhập, cùng với mật khẩu đã thay đổi ở trên.
Để đăng nhập, tùy thuộc vào hệ điều hành, có nhiều cách khác nhau:
- Windows: Start + R; sau đó search CMD và Enter.
- MacOS: Command + Space; sau đó search Terminal và Enter.
Bạn bấm vào cú pháp sau để đăng nhập vào VPS:
ssh root@<Địa chỉ IP>
Sau đó nhấn Enter. Chẳng hạn:
Đối với các VPS đăng nhập lần đầu tiên, hệ thống sẽ hỏi như sau. Chúng tôi nhấn yes (chú ý đến chữ thường, vì đôi khi nó sẽ được viết hoa) và Enter.
Tiếp theo, bạn nhập mật khẩu đã thay đổi ở trên. Lưu ý, các ký tự Mật khẩu không xuất hiện trên Terminal, vì vậy bạn chỉ cần nhấn bình thường. Sau khi hoàn tất, hãy nhấn Enter.
Bước 4: Nhập hàm Tmux
tmux là chức năng chạy Node khi bạn tắt máy. VPS chỉ là một chiếc 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 sẽ dừng lại. Điều này ngăn chặn node chạy.
Để khắc phục điều này, chúng ta cần cài đặt tmux. Khi chạy Node trong tmux sẽ chạy mãi mãi cho đến khi chúng ta chủ động dừng lại, mà không bị ảnh hưởng bởi việc tắt máy.
Sau khi đăng nhập thành công, hãy cài đặt tmux bằng lệnh sau:
apt install tmux
Sau đó enter.
Để truy cập tmux, hãy nhấn lệnh sau:
tmux
Sau đó nhấn Enter.
Bước 5: Chạy node
Qua các bước trên, chúng ta đã trải qua các bước cơ bản để chạy Node. Phần còn lại phụ thuộc vào dự án sử dụng ngôn ngữ lập trình, thiết kế có các lệnh khác nhau.
Vậy là chúng ta đã biết node là gì và cách chạy node đơn giản cho người mới. Chúc bạn thực hiện thành công!