Full Node là gì? Cách hoạt động và phân loại Full Node
Full Node là gì?
Full node là loại node giúp lưu trữ lịch sử giao dịch trên mạng lưới blockchain, bao gồm dữ liệu của tất cả các khối (block) đã được tạo. So với light node (chỉ lưu trữ dữ liệu tiêu đề khối), việc chạy một full node yêu cầu người vận hành phải đầu tư nhiều tài nguyên hơn và phần cứng mạnh hơn.
Vai trò của full node là duy trì sự đồng thuận giữa các node trong mạng lưới bằng cách xác thực giao dịch và khối mới, sau đó truyền dữ liệu này đến các full node khác để tiếp tục xác thực, nhằm đảm bảo rằng các khối mới được thêm vào blockchain là hợp lệ.
Cách hoạt động của Full Node
Về bản chất, blockchain là một mạng lưới bao gồm nhiều node hoạt động để đảm bảo thực thi chính xác theo các quy tắc trong cơ chế đồng thuận của nó.
Khi người dùng thực hiện một giao dịch, mỗi node phải xác thực giao dịch đó và truyền đến các node khác. Cho đến khi phần lớn (hoặc tất cả) các node đều hoàn thành việc xác thực, blockchain sẽ đạt được trạng thái đồng thuận và giao dịch đó sẽ được thêm vào khối mới trên mạng.
Đối với các full node, bên cạnh việc xác thực giao dịch, nó cũng lưu trữ bản ghi của toàn bộ giao dịch đã được xác thực trên blockchain. Mỗi blockchain sẽ có các yêu cầu về dữ liệu khác nhau để chạy full node. Ví dụ:
- Việc vận hành full node trên blockchain Bitcoin sẽ yêu cầu khoảng vài trăm GB dung lượng và có thể chạy trên máy tính cá nhân với phần cứng mạnh mẽ.
- Tuy nhiên, blockchain Ethereum yêu cầu full node phải chuẩn bị dung lượng lưu trữ ít nhất 1TB, vì vậy, các full node trên đó chỉ có thể được vận hành bởi các máy tính doanh nghiệp với phần cứng chuyên dụng có khả năng lưu trữ dữ liệu khổng lồ.
Nhờ đó, full node phục vụ cho mục đích quan trọng hơn là đảm bảo bảo mật, phân cấp và khả năng phục hồi của blockchain. Bằng cách lưu lại bản ghi của toàn bộ lịch sử giao dịch trên mỗi full node, kể cả trong trường hợp xảy ra các sự cố nghiêm trọng như sập mạng, bị tấn công, một số node bị ngoại tuyến, ngưng hoạt động… blockchain vẫn có thể tiếp tục hoạt động hoặc khôi phục lại một cách bình thường.
Phân loại Full Node
Full node có thể được phân chia thành nhiều loại khác nhau, bao gồm:
- Archival Node: Lưu trữ toàn bộ lịch sử giao dịch của blockchain, từ khối đầu tiên đến khối mới nhất được tạo. Đây là loại full node phổ biến nhất trên các blockchain.
- Pruned Node: Lưu trữ ít dữ liệu hơn so với archival node. Thay vì lưu trữ toàn bộ khối, pruned node có thể xoá dữ liệu của khối cũ nhất để tạo khoảng trống cho việc lưu trữ khối mới nhất.
Archival Node
Archival node là loại full node giúp lưu trữ dữ liệu của toàn bộ blockchain trong hệ thống cơ sở dữ liệu và đóng vai trò như một bản sao lưu của blockchain. Hầu hết các full node trên blockchain đều thuộc loại archival node.
Trong đó, archival node còn có thể được phân chia thành:
- Mining node/Miner node: Được sử dụng trong các blockchain PoW (như Bitcoin, Dogecoin, Litecoin…), yêu cầu mức tiêu thụ năng lượng và sức mạnh tính toán cao hơn để thực hiện các phép tính toán học phức tạp (như giải mã hàm băm, tìm nonce…) khi xác thực giao dịch. Các node này còn được gọi là miner (thợ đào) và quá trình xác thực, thêm khối mới của họ còn được gọi là đào coin.
- Masternode: Chỉ xác thực giao dịch và lưu trữ dữ liệu blockchain, tuy nhiên không có quyền thêm khối mới vào blockchain. Ngoài ra, masternode cũng cung cấp các dịch vụ nâng cao cho mạng blockchain như InstantSend (giao dịch ngay lập tức), PrivateSend (giao dịch riêng tư) hoặc các tính năng khác tùy thuộc vào từng loại blockchain cụ thể.
- Staking node: Được sử dụng trong các blockchain PoS (như Ethereum sau sự kiện The Merge, Polygon, Cardano…), cho phép người dùng stake token để trở thành full node. Các staking node được chọn dựa trên các tiêu chí như thời gian hoạt động trên mạng và lượng tài sản stake. Node được chọn sẽ có quyền xác thực giao dịch và nhận được phần thưởng. Ưu điểm của nó là không cần phải đầu tư phần cứng mạnh như miner node.
- Authority node: Uỷ quyền cho các node khác tham gia vào mạng blockchain, nghĩa nó là nó có quyền quyết định việc một node có được truy cập vào các node còn lại trên mạng lưới hay không. Authority node thường có trong các blockchain PoA (như VeChain, Bitgert, Palm Network…).
Pruned Node
Pruned node là loại full node được cấu hình để lưu giữ chỉ một phần của lịch sử giao dịch của blockchain. Sự khác biệt pruned node và archival node là tính khả dụng của bộ nhớ.
Cụ thể, pruned node sẽ lưu trữ các dữ liệu giao dịch chỉ cần thiết để blockchain hoạt động hiệu quả, và sẽ loại bỏ các dữ liệu giao dịch cũ không cần thiết. Điều này giúp giảm bớt dung lượng lưu trữ mà node phải sử dụng, nhưng vẫn giữ được tính toàn vẹn của dữ liệu quan trọng.
Một số blockchain hỗ trợ pruned node có thể kể đến như Bitcoin Core, Ethereum, Monero…
Ai nên chạy Full Node?
Lợi ích của việc chạy full node là người vận hành node hay các validator sẽ nhận được phần thưởng chạy node dưới dạng token, đến từ phí giao dịch và phần thưởng khối (đối với blockchain PoW). Nếu giá token ngày càng tăng, phần thưởng chạy node sẽ càng có giá trị hơn.
Tuy nhiên, để chạy full node, người dùng cần phải đầu tư cho phần cứng với chi phí lớn hơn so với light node (chỉ cần có máy tính, điện thoại và kết nối internet). Vì vậy, người chạy full node thường phải:
- Có hiểu biết sâu sắc về cách vận hành của blockchain.
- Có chuyên môn kỹ thuật về việc cài đặt phần mềm máy khách (client), cấu hình, thiết lập phần cứng…
- Có khả năng tài chính lớn để đầu tư chi phí liên quan đến phần cứng mạnh mẽ và tài nguyên lớn.