Mạng thử nghiệm tính khả dụng của Polygon hiện đã hoạt động. Khi người dùng bắt đầu kết hợp Avail vào thiết kế chuỗi của họ, một câu hỏi thường xuất hiện là "Có thể xử lý bao nhiêu giao dịch trên Avail?"
Đây là bài đầu tiên trong một loạt bài viết đề cập đến hiệu suất hiện tại của Polygon Avail, cũng như khả năng mở rộng quy mô của nó trong thời gian gần và dài hạn. Chúng tôi đã xuất bản các phần phác thảo cách triển khai về mặt kỹ thuật Tính khả dụng. Để bắt đầu, chúng ta sẽ so sánh thông lượng của Ethereum với Avail dựa trên kiến trúc hiện tại của cả hai chuỗi.
Tính khả dụng đa giác so với Ethereum
Các khối Ethereum có thể chứa tối đa 1,875 MB, với thời gian tạo khối là ~13 giây. Tuy nhiên, các khối Ethereum thường không được lấp đầy. Gần như mọi khối đều đạt đến giới hạn gas trước khi đạt đến giới hạn dữ liệu, bởi vì cả việc thực thi và thanh toán đều tốn gas. Do đó, lượng dữ liệu được lưu trữ trên mỗi khối có thể thay đổi.
Nhu cầu kết hợp thực thi, giải quyết và tính sẵn có của dữ liệu trong cùng một khối là vấn đề cốt lõi với kiến trúc chuỗi khối nguyên khối. Các bản tổng hợp Lớp 2 (L2) đã bắt đầu phong trào chuỗi khối mô-đun bằng cách cho phép xử lý việc thực thi trên một chuỗi riêng biệt, với các khối chỉ dành riêng cho việc thực thi. Tính khả dụng của Đa giác đưa thiết kế mô-đun tiến thêm một bước bằng cách tách riêng tính khả dụng của dữ liệu và cho phép tạo một chuỗi với các khối chỉ dành riêng cho tính khả dụng của dữ liệu.
Hiện tại, Avail có thời gian tạo khối là 20 giây với mỗi khối có khả năng chứa khoảng 2 MB dữ liệu. Giả sử kích thước giao dịch trung bình là 250 Byte, mỗi khối Polygon Avail ngày nay có thể chứa khoảng 8.400 giao dịch (420 giao dịch mỗi giây).
Quan trọng hơn, Tính khả dụng có thể lấp đầy các khối một cách nhất quán đến giới hạn bộ nhớ và tăng kích thước khi cần. Có rất nhiều đòn bẩy mà chúng ta có thể sử dụng - nhiều đòn bẩy khá nhanh - để đạt được con số trên 500.000 giao dịch mỗi khối (25.000 giao dịch mỗi giây) khi có nhu cầu.
Chúng ta có thể tăng thông lượng không?
Để tăng thông lượng (cụ thể là giao dịch mỗi giây), kiến trúc sư chuỗi cần tăng kích thước khối hoặc giảm thời gian khối.
Để được thêm vào chuỗi, mỗi khối phải tạo ra các cam kết, xây dựng bằng chứng, truyền bá chúng và yêu cầu tất cả các nút khác xác minh bằng chứng. Các bước này sẽ luôn mất thời gian và cung cấp giới hạn về thời gian chặn.
Do đó, chúng tôi không thể chỉ giảm thời gian tạo khối xuống khoảng một giây. Gần như sẽ không có đủ thời gian để đưa ra các cam kết, tạo bằng chứng và truyền bá những phần này tới tất cả những người tham gia trên toàn bộ mạng. Tại thời gian khối lý thuyết là một giây, ngay cả khi mọi người tham gia mạng đang chạy các máy mạnh nhất có thể tạo ra các cam kết và bằng chứng ngay lập tức, thì nút thắt cổ chai là việc truyền dữ liệu. Mạng không thể truyền khối tới tất cả các nút đầy đủ đủ nhanh do hạn chế về tốc độ internet. Vì vậy, chúng tôi phải đảm bảo thời gian khối đủ cao để cho phép phân phối dữ liệu trên mạng sau khi đạt được sự đồng thuận.
Thay vào đó, việc tăng thông lượng sẽ đến bằng cách tăng kích thước khối -- tăng lượng dữ liệu chúng tôi có thể đưa vào mỗi khối.
Kiến trúc hiện tại: Thêm một khối vào chuỗi
Để bắt đầu, hãy xem những gì cần thiết để thêm một khối vào chuỗi. Việc thêm từng khối vào chuỗi yêu cầu ba bước chính. Thời gian cần thiết để tạo một khối, truyền bá khối đó và xác minh khối đã nói.
1. Sản xuất khối
Bước này bao gồm thời gian cần thiết để thu thập và đặt hàng các giao dịch Sẵn có, xây dựng các cam kết và mở rộng (mã xóa) ma trận dữ liệu.
Sản xuất khối đo lường thời gian cần thiết để tạo ra một khối vì quá trình này luôn mất ít nhất một khoảng thời gian. Kết quả là, chúng ta phải xem xét không chỉ thời gian tốt nhất mà cả thời gian trung bình và trường hợp xấu nhất cho các máy khác nhau.
Máy yếu nhất có thể tham gia sản xuất các khối mới là máy có công suất tối đa trong thời gian trung bình. Tất cả các máy chậm hơn chắc chắn sẽ bị tụt lại phía sau, vì chúng không thể bắt kịp các máy nhanh hơn.
2. Độ trễ lan truyền
Độ trễ lan truyền là thước đo thời gian cần thiết để truyền các khối từ nhà sản xuất sang trình xác nhận và mạng ngang hàng.
Hiện tại, Avail có khối 2 MB. Các khối có kích thước này có thể được lan truyền trong giới hạn thời gian khối 20 giây hiện tại. Kích thước khối lớn hơn làm cho việc truyền bá phức tạp hơn.
Ví dụ: nếu chúng tôi tăng Tính khả dụng của Đa giác để hỗ trợ các khối 128 MB, khả năng tính toán sẽ có thể mở rộng (~7 giây). Tuy nhiên, nút cổ chai sau đó trở thành lượng thời gian cần thiết để gửi và tải xuống các khối này trên mạng.
Gửi các khối 128 MB trên toàn cầu qua mạng ngang hàng trong 5 giây có thể là giới hạn của những gì có thể đạt được vào lúc này.
Giới hạn 128 MB không liên quan gì đến tính khả dụng của dữ liệu hoặc kế hoạch cam kết của chúng tôi, mà là vấn đề hạn chế băng thông liên lạc.
Điều này cần tính đến độ trễ lan truyền cung cấp cho chúng tôi giới hạn kích thước khối theo lý thuyết hiện tại của chúng tôi đối với Tính khả dụng của Đa giác.
3. Chặn xác minh
Sau khi được truyền bá, những người xác nhận tham gia không chỉ đơn giản tin tưởng vào khối do người đề xuất khối cung cấp cho họ – họ cần xác minh rằng các khối được tạo ra thực sự có các nhà sản xuất dữ liệu nói rằng họ tin như vậy.
Ba bước này thể hiện một chút căng thẳng với nhau. Chúng tôi có thể làm cho tất cả các máy mạnh mẽ của trình xác thực được kết nối chặt chẽ bằng mạng tuyệt vời trong cùng một trung tâm dữ liệu -- điều đó sẽ giảm thời gian sản xuất và xác minh, đồng thời cho phép chúng tôi truyền nhiều dữ liệu hơn. Nhưng bởi vì chúng tôi cũng muốn có một mạng lưới phi tập trung, đa dạng với nhiều loại người tham gia khác nhau, nên đó không phải là một cách tiếp cận mong muốn.
Thay vào đó, các cải tiến về thông lượng sẽ đến bằng cách hiểu bước nào là cần thiết để thêm khối vào chuỗi Khả dụng và bước nào có thể được tối ưu hóa.
Hiện tại, trình xác nhận sử dụng Polygon Avail lấy toàn bộ khối và sao chép tất cả các cam kết do người đề xuất tạo để xác minh khối. Điều này có nghĩa là cả nhà sản xuất khối và tất cả các trình xác thực đều thực hiện từng bước của hình trên.
Việc tái tạo toàn bộ khối này bởi mỗi trình xác thực là mặc định trong các chuỗi khối nguyên khối. Tuy nhiên, nó không cần thiết trên một chuỗi như Avail, nơi các giao dịch không được thực hiện. Do đó, một cách chúng tôi có thể tối ưu hóa Tính khả dụng là cho phép người xác thực đạt được sự đảm bảo của riêng họ về tính khả dụng của dữ liệu thông qua lấy mẫu, thay vì tái tạo khối. Điều này đặt ra các yêu cầu về tài nguyên đối với người xác thực thấp hơn so với việc họ được yêu cầu tái tạo tất cả các cam kết.