Ethereum Ethereum Node và Ethereum client là gì?

thoikhong159

Junior
Joined
Mar 28, 2021
Messages
53
Reactions
56
MR
5.722
EVN_768x432.png

Các thuật ngữ “Ethereum client” (máy khách Ethereum) và “Ethereum node” thường được sử dụng thay thế cho nhau nhưng có một sự khác biệt.
Trong thế giới máy tính, “client” hay máy khách đề cập đến bất kỳ loại phần mềm nào được tải xuống máy tính của bạn và giúp bạn tương tác với một loại phần mềm hoặc dịch vụ khác do máy chủ cung cấp. Ví dụ: Gmail là một ứng dụng khách phần mềm kết nối với máy chủ email và cho phép người dùng gửi và nhận email.
Máy khách Ethereum là phần mềm cần thiết để cho phép các node Ethereum đọc các khối trên chuỗi khối Ethereum và các hợp đồng thông minh dựa trên Ethereum. “Node” là phần đang chạy của phần mềm máy khách. Để chạy một node, trước tiên bạn phải tải xuống một ứng dụng khách Ethereum.​

Ethereum Node là gì?​

Ethereum Node là gì?

“Node” là một máy tính thực hiện một chức năng nhất định trên mạng Ethereum và chạy phần mềm máy khách để làm như vậy. Tùy thuộc vào nhu cầu cụ thể của bạn là gì, cho dù đó là ứng dụng phi tập trung (dapp) hay ví, có ba loại node khác nhau có thể được chạy bởi bất kỳ máy khách nào: full nodes, light nodes và archive nodes. Mỗi node sẽ diễn giải dữ liệu khác nhau và cung cấp các phương pháp khác nhau để đồng bộ hóa – điều này đề cập đến tốc độ node của bạn có thể truy xuất thông tin cập nhật để ứng dụng khách của bạn diễn giải.​

Full node (node đầy đủ)​

Các full nodes (node đầy đủ) chứa đầy dữ liệu; chúng lưu trữ và có thể phân phối tất cả dữ liệu blockchain từ mạng Ethereum. Một node đầy đủ sẽ tham gia bổ sung vào quá trình xác nhận khối (tức là xác minh tất cả các khối và trạng thái trên mạng).
Một lợi thế của việc triển khai full nodes là nó có thể tương tác trực tiếp với bất kỳ hợp đồng thông minh nào trên blockchain công khai. Các node đầy đủ cũng có thể triển khai trực tiếp các hợp đồng thông minh vào chuỗi khối công cộng.
Việc sử dụng và lưu trữ toàn bộ dữ liệu, cũng như chức năng hợp đồng thông minh trực tiếp, đều phải trả giá. Các node đầy đủ có thể chiếm dụng một lượng lớn tài nguyên băng thông và phần cứng máy tính của bạn. Việc truy xuất toàn bộ dữ liệu cũng có thể rất tốn thời gian, đôi khi mất nhiều ngày để đồng bộ hóa dữ liệu của bạn khi node được triển khai lần đầu tiên. Sau đó, node phải được duy trì, nâng cấp và giữ trực tuyến để không phải lặp lại quá trình đồng bộ hóa đầy đủ.​

Light nodes (Các node nhẹ)​

Các light node (node nhẹ) tương tự như nút đầy đủ nhưng xử lý ít thông tin hơn. Node nhẹ lưu trữ thông tin chuỗi tiêu đề (thông tin cơ bản được lưu trữ trong một khối như dấu thời gian và mã băm của khối trước đó,) nhưng sẽ chỉ nhận thông tin bổ sung khi có yêu cầu. Họ có thể xác minh tính hợp lệ của dữ liệu nhưng không tham gia đầy đủ vào việc xác nhận khối. Các light node hầu như luôn được thực hiện trong các remote clients (máy khách từ xa). Bởi vì các node này không thực hiện các quá trình lưu trữ và ghi dữ liệu chuyên sâu hơn, chúng đã được chứng minh là hữu ích cho các thiết bị dung lượng thấp như điện thoại thông minh.​

Archive nodes (node lưu trữ)​

Các node lưu trữ là các node lưu trữ tất cả thông tin mà một node đầy đủ thực hiện và xây dựng một kho lưu trữ lịch sử các trạng thái blockchain. Các node lưu trữ sẽ giữ lại dữ liệu lịch sử ngay cả sau khi máy khách đã hoàn tất quá trình đồng bộ hóa. Mặt khác, các node đầy đủ và nhẹ sẽ “cắt tỉa” dữ liệu blockchain lịch sử, có nghĩa là chúng có thể xây dựng lại, nhưng không giữ lại thông tin này.
Mặc dù các node lưu trữ có thể không hữu ích đối với người dùng bình thường, nhưng chúng đã chứng minh được hiệu quả trong việc áp dụng trình khám phá khối, nhà cung cấp ví và phân tích chuỗi.​

Ethereum client (máy khách Ethereum) là gì?​

Ethereum client (máy khách Ethereum) là gì?

Ứng dụng khách có thể hữu ích cho các nhà phát triển vì chúng cho phép họ tương tác với mạng và các mạng khác bằng các ngôn ngữ lập trình khác nhau. Ethereum Foundation duy trì một số ứng dụng khách khác nhau cho các ngôn ngữ lập trình khác nhau, bao gồm Go, Rust, Java và C #. Các nhà phát triển bên thứ ba khác nhau cũng đã tạo ra các ứng dụng khách Ethereum để hỗ trợ thêm về ngôn ngữ.
Các ứng dụng phổ biến nhất cho các máy khách Ethereum bao gồm giao diện giao dịch và khai thác, nhưng các trường hợp sử dụng của nó có thể vượt xa các tương tác blockchain cơ bản.
Ethereum Foundation duy trì các khách hàng sau:​
Những điều này cung cấp cho các nhà phát triển các tùy chọn trong việc triển khai các dự án dựa trên Ethereum của họ. Nếu ngôn ngữ ưa thích của bạn không được Ethereum Foundation hỗ trợ chính thức, nhiều ứng dụng khách Ethereum của bên thứ ba sẽ tồn tại để cung cấp hỗ trợ ngôn ngữ bổ sung.
Lý do tất cả các khách hàng khác nhau này đều có thể thực hiện được là vì Ethereum được xác định bởi một đặc điểm kỹ thuật chính thức (tức là “Yellow Paper”). Các thông số kỹ thuật chính thức tạo nên Ethereum đặt blockchain khác với Bitcoin. Trong khi Ethereum xác định các hành vi tiêu chuẩn để tất cả các khách hàng Ethereum tuân theo, thì Bitcoin Core không có định nghĩa như vậy. Bằng cách cung cấp tài liệu nhất quán và ngôn ngữ rõ ràng, các thông số kỹ thuật của Ethereum đã cho phép blockchain cho phép triển khai phần mềm độc lập, nhưng có thể tương tác của một ứng dụng khách Ethereum.​

Các loại Ethereum client​

Full client – ứng dụng khách đầy đủ​

Full client lưu trữ toàn bộ chuỗi khối Ethereum; một quá trình có thể mất vài ngày để đồng bộ hóa và yêu cầu một lượng lớn dung lượng ổ đĩa – chính xác là hơn 1 Terabyte, theo số liệu mới nhất . Các máy khách đầy đủ cho phép các node được kết nối thực hiện tất cả các tác vụ trên mạng, bao gồm khai thác, giao dịch và xác thực tiêu đề khối, cũng như chạy các hợp đồng thông minh.​

Light client – ứng dụng khách nhẹ​

Các ứng dụng khách Ethereum có thể được triển khai toàn bộ hoặc một phần. Tổng quan ở trên đưa ra giải thích về cách hoạt động của một ứng dụng khách “đầy đủ”, tuy nhiên, điều quan trọng là bạn phải biết rằng không phải lúc nào bạn cũng cần chạy một ứng dụng khách đầy đủ. Thông thường, khi tốc độ và lưu trữ dữ liệu có vấn đề, các nhà phát triển sẽ chọn sử dụng cái được gọi là “ứng dụng khách nhẹ”.
Các ứng dụng khách nhẹ cung cấp một tập hợp con các chức năng của một ứng dụng khách đầy đủ. Các ứng dụng khách nhẹ có thể cung cấp tốc độ nhanh hơn và giải phóng khả năng lưu trữ dữ liệu. Bởi vì, không giống như các ứng dụng khách đầy đủ, chúng không lưu trữ toàn bộ chuỗi khối Ethereum.
Phạm vi chức năng của một ứng dụng khách nhẹ được điều chỉnh cho phù hợp với các mục tiêu của ứng dụng khách Ethereum. Ví dụ: các ứng dụng khách nhẹ thường được sử dụng cho các khóa cá nhân (private key) và quản lý địa chỉ Ethereum trong ví. Ngoài ra, họ có xu hướng xử lý các tương tác hợp đồng thông minh và phát sóng giao dịch. Các mục đích sử dụng khác cho máy khách từ xa bao gồm các phiên bản web3 trong các đối tượng JavaScript, trình duyệt dapp và truy xuất dữ liệu tỷ giá hối đoái.​

Remote client – ứng dụng khách từ xa​

Có một loại ứng dụng khách thứ ba được gọi là ứng dụng khách từ xa, tương tự như ứng dụng khách nhẹ. Sự khác biệt chính là, một khách hàng từ xa không lưu trữ bản sao blockchain của chính nó, cũng như không xác thực các giao dịch hoặc chặn tiêu đề. Thay vào đó, các máy khách từ xa hoàn toàn dựa vào một máy khách đầy đủ hoặc nhẹ để cung cấp cho họ quyền truy cập vào mạng chuỗi khối Ethereum. Các loại khách hàng này chủ yếu được sử dụng như một ví để gửi và nhận các giao dịch.​

Sự khác biệt giữa các Ethereum Nodes và Ethereum client​

Các node và ứng dụng khách hoạt động song song với nhau và cả hai thuật ngữ này thường được sử dụng thay thế cho nhau. Tuy nhiên, cả hai đều hoạt động riêng biệt để truy cập vào mạng Ethereum.
Hãy nghĩ về các node và máy khách hoạt động giống như một máy tính truy cập internet: node là một hệ điều hành, như Windows hoặc iOS và client là chính máy tính. Máy khách cung cấp cho người dùng khả năng truy cập vào hệ điều hành node, do đó, cung cấp cho bạn khả năng truy cập internet. Các máy tính khác nhau sẽ có thể cung cấp cho bạn quyền truy cập vào cùng một hệ điều hành và các hệ điều hành khác nhau sẽ cung cấp cho bạn quyền truy cập vào cùng một mạng internet.​

MetaMask​

Để xem cách Ethereum client hoạt động trong thế giới thực, chúng ta có thể xem MetaMask làm ví dụ.
MetaMask là một ví dựa trên trình duyệt, ứng dụng client Remote Procedure Call (RPC) và trình khám phá hợp đồng cơ bản. Bất kỳ máy tính nào có trình duyệt Chrome, Firefox, Opera hoặc Brave đều có thể chạy MetaMask.
MetaMask là một triển khai của một ứng dụng khách từ xa tương tác với chuỗi khối thông qua một ứng dụng khách nhẹ. Để tránh bất kỳ vấn đề bảo mật nào, MetaMask vận hành ứng dụng khách nhẹ của riêng mình để giao tiếp với ứng dụng khách từ xa nhằm đảm bảo tính bảo mật hiệu quả và tính chắc chắn của các giao dịch.
MetaMask là duy nhất so với các ví dựa trên trình duyệt khác vì nó áp dụng phiên bản web3 vào trình đọc JavaScript của trình duyệt, cung cấp quyền truy cập vào mạng chính Ethereum và các mạng thử nghiệm khác, bao gồm Ropsten testnet, Kovan testnet và phiên bản cục bộ của nút RPC. Ngay cả với chức năng độc đáo của nó, MetaMask vẫn chạy một ứng dụng khách từ xa giống như hầu hết các ví trình duyệt khác. Ứng dụng khách từ xa cho phép chức năng lưu trữ ví, phát sóng giao dịch và đưa JavaScript web3 vào.​
Nguồn Coindesk
 

Announcements

Today's birthdays

Forum statistics

Threads
418,603
Messages
7,073,661
Members
170,710
Latest member
nhacaiuytinso2vi
Back
Top Bottom