Node là gì? Cách hoạt động của các node trong blockchain | Coinvn
Mục lục bài viết
Node là gì?
Node là thuật ngữ kỹ thuật chỉ các thiết bị phân phối, giao tiếp thông tin trong mạng lưới của các hệ thống mạng máy tính hoặc viễn thông. Với blockchain, node là một thiết bị được kết nối với mạng blockchain. Node thực hiện các chức năng nhất định như tạo, nhận, lưu trữ hoặc gửi thông tin. Node có thể là bất kỳ loại thiết bị nào từ PC, Laptop đến các máy chủ… Các node tạo thành cơ sở hạ tầng của một blockchain.
Cách thức hoạt động của blockchain
Công nghệ blockchain đã trở nên ngày càng phổ biến vì tính ứng dụng cùng với sự tăng trưởng mạnh mẽ của thị trường crypto. Bên cạnh việc cung cấp một môi trường an toàn, minh bạch cho các dữ liệu, giao dịch tài chính, mạng lưới blockchain còn có thể tự điều chỉnh giúp ngăn chặn sự can thiệp, thao túng trái phép và các cuộc tấn công từ bên ngoài.
Bất cứ khi nào có một giao dịch diễn ra trên blockchain, một block (khối) sẽ được tạo ra, đại diện cho giao dịch. Bản ghi của giao dịch đó sẽ được ghi lại và phân phối đến mọi node trong mạng. Khi giao dịch được đồng ý từ phía người dùng, node sẽ xác thực giao dịch. Nếu phần lớn các node xác thực giao dịch đó, nó sẽ được thêm vào sổ cái của blockchain hiện có. Sau khi ghi lại giao dịch và sổ cái đã được cập nhật, mọi thông tin về giao dịch đó sẽ không thể bị thay đổi.
Tại sao chúng ta cần các node trên blockchain
Vai trò cơ bản của một node blockchain bao gồm:
- Chấp nhận hoặc từ chối một giao dịch
- Xác thực và quản lý một giao dịch
- Lưu trữ và mã hóa thông tin trong một block
- Kết nối với các nút khác bằng cách hoạt động như một điểm giao tiếp
Vai trò của một node cụ thể có thể khác nhau khi so với các node còn lại. Một số node nhất định được lập trình để xác thực giao dịch, trong khi các node khác chỉ chịu trách nhiệm ghi lại giao dịch.
Phân loại node trong blockchain
Mạng lưới blockchain có thể chứa nhiều loại node khác nhau. Một blockchain thông thường sẽ bao gồm các full node, light node, supernode và lightning node. Một số loại node khác có thể kể đến như authority node, master node, pruned node và mining nodes.
Full node
Các full node chứa toàn bộ lịch sử và thông tin liên quan của mọi block kể từ khi giao dịch đầu tiên được diễn ra trên nền tảng. Full node là xương sống của một blockchain. Chúng đảm nhiệm việc duy trì sự đồng thuận giữa các node khác trong mạng lưới, xác minh các giao dịch và block. Do phải lưu trữ nhiều thông tin và dữ liệu, full node thường là các máy tính, máy chủ có cấu hình, khả năng xử lý mạnh mẽ.
Light node (Lightweight node)
Thay vì lưu trữ thông tin đầy đủ, một light node chỉ chứa các thông tin liên quan đến một block cụ thể trước đó mà nó được kết nối. Thông tin được lưu trữ trong tiêu đề khối (block header). Không giống như một số node khác, các light node không cần phải chạy liên tục. Chúng thường là các phần mềm kết nối với các full node để truy cập vào blockchain khi được yêu cầu. Thông qua full node, light node có thể thấy được các thông tin cơ bản trên blockchain và yêu cầu các tiêu đề khối mới nhất. Do hoạt động nhẹ, các node này không yêu cầu nhiều dung lượng và tài nguyên để hoạt động. Bạn hoàn toàn có thể chạy một light node trên chính chiếc điện thoại di động của mình.
Supernode
Supernode kết nối các full node và giúp truyền thông tin trên toàn mạng lưới, đảm bảo rằng tất cả các node đều có dữ liệu chính xác. Supernode còn cung cấp, xử lý các chức năng ngoài chuỗi như xác thực, ủy quyền, gateway service…
Lighting node
Lightning node là node trên một mạng riêng có tên là lightning network, tách biệt với mạng lưới blockchain chính. Tuy nhiên, các node này vẫn có thể tương tác với các node khác trên mạng chính. Giao dịch khi được đẩy từ mạng chính lên lightning network sẽ được xử lý ngay tức thời, từ đó giúp giảm chi phí giao dịch, giảm tải cho hệ thống.
Các node cũng được phân loại dựa trên tính khả dụng của chúng. Node trực tuyến (online node) là nút liên tục hoạt động và gửi các bản cập nhật cho mạng. Ngược lại, các node ngoại tuyến (offline node) không phải lúc nào cũng cần được kết nối với mạng. Khi được kết nối, các nút ngoại tuyến này được yêu cầu tải xuống và cập nhật dữ liệu của sổ cái để duy trì đồng bộ với mạng.
Làm thế nào để triển khai một full node?
Nếu trước đó, mọi người đều có thể dễ dàng khởi chạy một node blockchain trên thiết bị cấu hình thấp. Ngày nay, khi blockchain ngày càng phổ biến, được sử dụng rộng rãi thì bộ nhớ và sức mạnh bộ xử lý là yếu tố quyết định trong việc triển khai thành công một node.
Ví dụ với việc triển khai một full node Bitcoin. Một full node của Bitcoin có thể được thiết lập thông qua các phần mềm khác nhau, nhưng được sử dụng nhiều nhất và phổ biến nhất là Bitcoin Core. Đây là những yêu cầu tối thiểu để chạy một full node Bitcoin với Bitcoin Core:
- Máy tính bàn hoặc máy tính xách tay được cài phiên bản mới nhất của Windows, Mac OS X hoặc Linux
- 500GB dung lượng ổ cứng trống
- Bộ nhớ 2GB (RAM)
- Kết nối Internet tốc độ cao với tốc độ tải lên tối thiểu 50 kB/s
- Kết nối không giới hạn hoặc kết nối có giới hạn tải lên cao. Full node có thể đạt hoặc vượt quá mức sử dụng tải lên là 200GB/tháng và mức sử dụng tải xuống là 20GB/tháng. Bạn cũng sẽ cần tải xuống cỡ 200GB khi lần đầu tiên khởi chạy full node
- Full node của bạn nên chạy ít nhất 6 giờ mỗi ngày. Thậm chí tốt hơn nếu bạn cho node chạy liên tục (24/7)
Về mặt lý thuyết, bất kỳ ai cũng có thể chạy một node blockchain khi bạn ở hữu các thiết bị phần cứng đủ mạnh như trên. Tuy nhiên, cũng tùy thuộc vào thuật toán đồng thuận của blockchain bạn muốn tham gia mà sẽ cần thêm một số yêu cầu nhất định. Ví dụ, để chạy một full node của blockchain sử dụng thuật toán đồng thuận Delegated Proof-of-Stake (DPoS), người dùng phải nắm giữ một lượng lớn đồng coin/token của blockchain này.
Node Bitcoin
Tổng kết
Như vậy chúng ta đã tìm hiểu node là gì, vai trò của nó, cũng như những loại node chính thường có trong một mạng blockchain. Node là thành phần cơ bản đầu tiên tạo nên một blockchain. Bất kỳ ai cũng có thể tham gia chạy một node blockchain. Khi một blockchain có nhiều node cùng hoạt động, nó sẽ giúp nền tảng đó càng trở nên phân tán, minh bạch và đảm bảo độ tin cậy, bảo mật cho toàn bộ dữ liệu trên hệ thống.