Xin chào,
Khả năng mở rộng giao dịch đã trở thành đề tài nóng. Chúng tôi đã khám phá cách Monad giúp tăng TPS trong vài tuần qua.
Ghi chú dưới đây là một phân tích về cách Monad hoạt động được viết bởi @desh_saurabh. Hãy xem xét đăng ký tạiDecentralised.conếu bạn thích đọc các bài giải thích dựa trên dữ liệu về tất cả mọi thứ liên quan đến Web3. Hẹn gặp bạn ở phía bên kia!
TPS là một chỉ số mà chúng tôi ám ảnh. Chúng tôi muốn chuỗi của chúng tôi hỗ trợ một TPS cao hơn vì họ có thể hỗ trợ nhiều người dùng và ứng dụng hơn. Biểu đồ dưới đây cho thấy các con số TPS cho Ethereum và L2s. Không một chuỗi nào đã vượt qua con số 100 TPS. Lưu ý rằng TPS là một thuật ngữ tổng quát để đo lường quy mô. TPS không chính xác vì không phải tất cả các giao dịch đều bằng nhau, vì chúng khác nhau về độ phức tạp. Nhưng chúng tôi sử dụng TPS như một biện pháp đo lường quy mô để đơn giản hóa.
Chúng ta phải làm gì nếu muốn tăng TPS?
Monad, một L1 tương thích EVM mới gần đây gọi vốn được 225 triệu đô la, đang xây dựng EVM từ đầu thay vì sử dụng nó như hiện tại. Nó chọn cách tiếp cận thứ ba này để tăng tính mở rộng.
Chúng tôi thảo luận về một số thay đổi quan trọng mà Monad mang đến.
Máy ảo Ethereum (EVM) thực hiện giao dịch theo thứ tự. Cho đến khi một giao dịch được thực hiện, giao dịch tiếp theo phải chờ đợi. Hãy nghĩ theo cách này. Hãy nghĩ về một nơi có một nền tảng trong một nhà máy lắp ráp xe máy. Nhiều xe tải vận chuyển các bộ phận xe máy (mỗi xe tải có tất cả các bộ phận cần thiết để tạo ra 50 chiếc xe máy). Nhà máy lắp ráp thực hiện bốn chức năng khác nhau với các nhóm chuyên dụng - dỡ hàng, sắp xếp, lắp ráp và xếp hàng.
Với cài đặt EVM hiện tại, chỉ có một nền tảng, và cùng một chỗ được sử dụng để tải và dỡ hàng. Vì vậy khi xe tải đỗ, các thành phần xe máy được dỡ hàng, sắp xếp, lắp ráp và tải lên cùng một xe tải. Trong khi nhóm sắp xếp đang làm việc, mọi nhóm khác chỉ đang chờ đợi. Vì vậy, nếu bạn nghĩ về công việc của họ như là các khe khác nhau, mỗi nhóm chỉ làm việc một lần trong bốn khe. Điều này dẫn đến sự không hiệu quả đáng kể, làm nổi bật nhu cầu cho một cách tiếp cận mượt mà hơn.
Bây giờ, hãy tưởng tượng rằng có bốn nền tảng với các khu vực tải và dỡ khác nhau. Ngay cả khi đội ngũ dỡ hàng chỉ có thể làm việc với một chiếc xe tải tại một thời điểm, họ không cần phải đợi cho ba chỗ trống tiếp theo. Họ có thể chuyển ngay sang xe tải kế tiếp.
Tương tự, việc sắp xếp, lắp ráp và nhóm tải cũng áp dụng như vậy. Khi hàng hóa được gỡ ra khỏi xe tải, xe tải di chuyển đến khu vực tải và đợi nhóm tải lắp ráp mô tô. Do đó, kho chỉ có một nền và khu vực tải/đảo hàng thực hiện mọi thứ theo thứ tự, và kho có 4 nền và các khu vực tải/đảo hàng khác nhau đang song song.
Hãy xem Monad như là cơ sở hạ tầng tương đương với kho chứa hàng với nhiều nền xe tải - nhưng không đơn giản như vậy. Độ phức tạp tăng lên khi các xe tải phụ thuộc vào nhau. Ví dụ, nếu một chiếc xe tải không có đủ phụ tùng để lắp ráp 50 chiếc xe máy thì sao? Các giao dịch không phải lúc nào cũng độc lập. Vì vậy, khi Monad thực hiện chúng song song, nó phải xử lý các giao dịch phụ thuộc vào nhau.
Làm thế nào? Nó thực hiện một cái gì đó được gọi là thực thi song song lạc quan. Giao thức chỉ có thể thực thi các giao dịch độc lập song song. Ví dụ, xem xét 4 giao dịch với số dư của Joel là 1 ETH -
Tất cả các giao dịch này được thực hiện song song với các kết quả đang chờ xử lý được cam kết một cách tuần tự. Các giao dịch sẽ được thực thi lại nếu kết quả đang chờ xử lý xung đột với bất kỳ đầu vào ban đầu của giao dịch nào. Giao dịch 2 và 4 không có kết quả đang chờ xung đột với đầu vào của các giao dịch khác vì chúng độc lập với nhau. Nhưng 1 và 3 thì không độc lập.
Lưu ý rằng vì tất cả 4 giao dịch bắt đầu từ cùng một trạng thái, giao dịch quan tâm ở đây là số dư của Joel là 1 ETH. Kết quả của việc Joel gửi 0.2 ETH là 0.8 ETH. Sau khi Joel gửi 0.1 ETH cho Sid, số dư của anh ấy là 0.9 ETH. Kết quả được cam kết từng bước một, đảm bảo rằng đầu ra không xung đột với bất kỳ đầu vào nào. Sau khi kết quả đang chờ của 1 được cam kết, số dư mới của Joel là 0.8 ETH.
Kết quả này xung đột với đầu vào của 3. Vì vậy, hiện tại 3 được thực thi lại với một đầu vào là 0.8 ETH. Sau khi 3 được thực thi, số dư của Joel là 0.7 ETH.
Tại điểm này, một câu hỏi rõ ràng là làm thế nào chúng ta biết rằng chúng ta sẽ không phải thực hiện lại phần lớn giao dịch. Câu trả lời nằm ở việc thực hiện lại không phải là điểm nghẽn. Điểm nghẽn là việc truy cập bộ nhớ Ethereum. Hóa ra cách mà Ethereum lưu trữ trạng thái của mình trong cơ sở dữ liệu làm cho việc truy cập trạng thái trở nên khó khăn (mất thời gian và do đó tốn kém). Đây là nơi mà cải tiến khác của Monad xuất hiện - MonadDb. Monad đã xây dựng cơ sở dữ liệu của mình một cách giảm thiểu chi phí liên quan đến các hoạt động đọc.
Khi một giao dịch cần phải được thực thi lại, tất cả các đầu vào đã có sẵn trong bộ nhớ cache, điều này dễ dàng truy cập hơn đáng kể so với trạng thái tổng thể.
Solana có 50k TPS trên mạng thử nghiệm của mình nhưng hiện tại chỉ đạt khoảng ~1k trên mainnet. Monad tuyên bố đã đạt được 10k TPS thực sự trên mạng thử nghiệm nội bộ của mình. Mặc dù điều này không luôn là chỉ số của hiệu suất trong thế giới thực, chúng tôi rất háo hức đón chờ xem Monad hoạt động trong môi trường thực tế.
Bài viết này ban đầu có tựa đề “Hiểu về Monad” được sao chép từ [Gatechaincatcher]. Tất cả bản quyền thuộc về tác giả gốc [Decentralised.Co]. Nếu bạn có bất kỳ ý kiến nào về việc sao chép, vui lòng liên hệ với Đội ngũ Gate Learn, đội sẽ xử lý nó ngay khi có thể.
Thông báo: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không đề cập đến bất kỳ lời khuyên đầu tư nào.
Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.
Partilhar
Conteúdos
Xin chào,
Khả năng mở rộng giao dịch đã trở thành đề tài nóng. Chúng tôi đã khám phá cách Monad giúp tăng TPS trong vài tuần qua.
Ghi chú dưới đây là một phân tích về cách Monad hoạt động được viết bởi @desh_saurabh. Hãy xem xét đăng ký tạiDecentralised.conếu bạn thích đọc các bài giải thích dựa trên dữ liệu về tất cả mọi thứ liên quan đến Web3. Hẹn gặp bạn ở phía bên kia!
TPS là một chỉ số mà chúng tôi ám ảnh. Chúng tôi muốn chuỗi của chúng tôi hỗ trợ một TPS cao hơn vì họ có thể hỗ trợ nhiều người dùng và ứng dụng hơn. Biểu đồ dưới đây cho thấy các con số TPS cho Ethereum và L2s. Không một chuỗi nào đã vượt qua con số 100 TPS. Lưu ý rằng TPS là một thuật ngữ tổng quát để đo lường quy mô. TPS không chính xác vì không phải tất cả các giao dịch đều bằng nhau, vì chúng khác nhau về độ phức tạp. Nhưng chúng tôi sử dụng TPS như một biện pháp đo lường quy mô để đơn giản hóa.
Chúng ta phải làm gì nếu muốn tăng TPS?
Monad, một L1 tương thích EVM mới gần đây gọi vốn được 225 triệu đô la, đang xây dựng EVM từ đầu thay vì sử dụng nó như hiện tại. Nó chọn cách tiếp cận thứ ba này để tăng tính mở rộng.
Chúng tôi thảo luận về một số thay đổi quan trọng mà Monad mang đến.
Máy ảo Ethereum (EVM) thực hiện giao dịch theo thứ tự. Cho đến khi một giao dịch được thực hiện, giao dịch tiếp theo phải chờ đợi. Hãy nghĩ theo cách này. Hãy nghĩ về một nơi có một nền tảng trong một nhà máy lắp ráp xe máy. Nhiều xe tải vận chuyển các bộ phận xe máy (mỗi xe tải có tất cả các bộ phận cần thiết để tạo ra 50 chiếc xe máy). Nhà máy lắp ráp thực hiện bốn chức năng khác nhau với các nhóm chuyên dụng - dỡ hàng, sắp xếp, lắp ráp và xếp hàng.
Với cài đặt EVM hiện tại, chỉ có một nền tảng, và cùng một chỗ được sử dụng để tải và dỡ hàng. Vì vậy khi xe tải đỗ, các thành phần xe máy được dỡ hàng, sắp xếp, lắp ráp và tải lên cùng một xe tải. Trong khi nhóm sắp xếp đang làm việc, mọi nhóm khác chỉ đang chờ đợi. Vì vậy, nếu bạn nghĩ về công việc của họ như là các khe khác nhau, mỗi nhóm chỉ làm việc một lần trong bốn khe. Điều này dẫn đến sự không hiệu quả đáng kể, làm nổi bật nhu cầu cho một cách tiếp cận mượt mà hơn.
Bây giờ, hãy tưởng tượng rằng có bốn nền tảng với các khu vực tải và dỡ khác nhau. Ngay cả khi đội ngũ dỡ hàng chỉ có thể làm việc với một chiếc xe tải tại một thời điểm, họ không cần phải đợi cho ba chỗ trống tiếp theo. Họ có thể chuyển ngay sang xe tải kế tiếp.
Tương tự, việc sắp xếp, lắp ráp và nhóm tải cũng áp dụng như vậy. Khi hàng hóa được gỡ ra khỏi xe tải, xe tải di chuyển đến khu vực tải và đợi nhóm tải lắp ráp mô tô. Do đó, kho chỉ có một nền và khu vực tải/đảo hàng thực hiện mọi thứ theo thứ tự, và kho có 4 nền và các khu vực tải/đảo hàng khác nhau đang song song.
Hãy xem Monad như là cơ sở hạ tầng tương đương với kho chứa hàng với nhiều nền xe tải - nhưng không đơn giản như vậy. Độ phức tạp tăng lên khi các xe tải phụ thuộc vào nhau. Ví dụ, nếu một chiếc xe tải không có đủ phụ tùng để lắp ráp 50 chiếc xe máy thì sao? Các giao dịch không phải lúc nào cũng độc lập. Vì vậy, khi Monad thực hiện chúng song song, nó phải xử lý các giao dịch phụ thuộc vào nhau.
Làm thế nào? Nó thực hiện một cái gì đó được gọi là thực thi song song lạc quan. Giao thức chỉ có thể thực thi các giao dịch độc lập song song. Ví dụ, xem xét 4 giao dịch với số dư của Joel là 1 ETH -
Tất cả các giao dịch này được thực hiện song song với các kết quả đang chờ xử lý được cam kết một cách tuần tự. Các giao dịch sẽ được thực thi lại nếu kết quả đang chờ xử lý xung đột với bất kỳ đầu vào ban đầu của giao dịch nào. Giao dịch 2 và 4 không có kết quả đang chờ xung đột với đầu vào của các giao dịch khác vì chúng độc lập với nhau. Nhưng 1 và 3 thì không độc lập.
Lưu ý rằng vì tất cả 4 giao dịch bắt đầu từ cùng một trạng thái, giao dịch quan tâm ở đây là số dư của Joel là 1 ETH. Kết quả của việc Joel gửi 0.2 ETH là 0.8 ETH. Sau khi Joel gửi 0.1 ETH cho Sid, số dư của anh ấy là 0.9 ETH. Kết quả được cam kết từng bước một, đảm bảo rằng đầu ra không xung đột với bất kỳ đầu vào nào. Sau khi kết quả đang chờ của 1 được cam kết, số dư mới của Joel là 0.8 ETH.
Kết quả này xung đột với đầu vào của 3. Vì vậy, hiện tại 3 được thực thi lại với một đầu vào là 0.8 ETH. Sau khi 3 được thực thi, số dư của Joel là 0.7 ETH.
Tại điểm này, một câu hỏi rõ ràng là làm thế nào chúng ta biết rằng chúng ta sẽ không phải thực hiện lại phần lớn giao dịch. Câu trả lời nằm ở việc thực hiện lại không phải là điểm nghẽn. Điểm nghẽn là việc truy cập bộ nhớ Ethereum. Hóa ra cách mà Ethereum lưu trữ trạng thái của mình trong cơ sở dữ liệu làm cho việc truy cập trạng thái trở nên khó khăn (mất thời gian và do đó tốn kém). Đây là nơi mà cải tiến khác của Monad xuất hiện - MonadDb. Monad đã xây dựng cơ sở dữ liệu của mình một cách giảm thiểu chi phí liên quan đến các hoạt động đọc.
Khi một giao dịch cần phải được thực thi lại, tất cả các đầu vào đã có sẵn trong bộ nhớ cache, điều này dễ dàng truy cập hơn đáng kể so với trạng thái tổng thể.
Solana có 50k TPS trên mạng thử nghiệm của mình nhưng hiện tại chỉ đạt khoảng ~1k trên mainnet. Monad tuyên bố đã đạt được 10k TPS thực sự trên mạng thử nghiệm nội bộ của mình. Mặc dù điều này không luôn là chỉ số của hiệu suất trong thế giới thực, chúng tôi rất háo hức đón chờ xem Monad hoạt động trong môi trường thực tế.
Bài viết này ban đầu có tựa đề “Hiểu về Monad” được sao chép từ [Gatechaincatcher]. Tất cả bản quyền thuộc về tác giả gốc [Decentralised.Co]. Nếu bạn có bất kỳ ý kiến nào về việc sao chép, vui lòng liên hệ với Đội ngũ Gate Learn, đội sẽ xử lý nó ngay khi có thể.
Thông báo: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không đề cập đến bất kỳ lời khuyên đầu tư nào.
Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.