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 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
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.
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.
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.
Tiếp theo chọn cụ thể VPS, mình cũng chọn loại rẻ nhất.
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.
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.
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.
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.
Đợ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:
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.
Tiếp theo bấm Manage → Control.
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.
Để đă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.
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ụ:
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.
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.
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.
Để truy cập vào tmux, anh em bấm lệnh sau:
tmux
Sau đó bấm Enter.
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.
Bấm Manage, chọn Reinstall.
Sau đó bạn nhập mật khẩu vào, bấm Star Installation.
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.
Theo C98