Tối ưu hóa Cardano

Tối ưu hóa Cardano

Là một chuỗi khối bằng chứng cổ phần, Cardano được xây dựng để có tính bảo mật cao và có khả năng phục hồi trước các lỗi mạng. Được thúc đẩy bởi thuật toán đồng thuận Ouroboros, tích hợp sẵn Haskell sử dụng các phương pháp chính thức và nghiên cứu học thuật được đánh giá ngang hàng, Cardano được thiết kế để cung cấp một môi trường vững chắc để xử lý hàng triệu giao dịch trên toàn cầu, theo cách phi tập trung và có khả năng mở rộng cao.

Trong bài đăng trên blog trước của chúng tôi, chúng tôi đã thảo luận về hiệu suất mạng – cách hệ thống hoạt động tổng thể khi xử lý, xác minh và ký kết các giao dịch. Nắm bắt được điều này ngay từ giai đoạn thiết kế sớm nhất là rất quan trọng nếu bạn muốn có một hệ thống được xây dựng lâu dài. Tuy nhiên, dung lượng mạng là một nguồn tài nguyên có giá trị, vì vậy để có các chỉ số hiệu suất hiệu quả nhất, điều cần thiết là các tài nguyên tính toán, bộ nhớ, lưu trữ và mạng phải được sử dụng một cách hiệu quả.

Cardano được xây dựng để trở nên linh hoạt. Nó được thiết kế để tối đa hóa thông lượng đồng thời cho phép đáp ứng nhu cầu ngày càng tăng. Khi mạng phát triển, chúng tôi đang điều chỉnh các thông số giao thức để điều chỉnh theo biến động giá cả, mở rộng khả năng mở rộng và các thuộc tính thông lượng. Vì vậy, hãy xem xét kỹ hơn cách chúng tôi sẽ tối ưu hóa hiệu suất mạng theo thời gian.

Xác định tắc nghẽn

Các hệ thống hiệu quả – từ mạng lưới đến đường xá – được xây dựng để giảm thiểu tắc nghẽn, đồng thời cho phép quản lý hiệu quả khi nó xảy ra. Theo thuật ngữ blockchain, tắc nghẽn ngụ ý rằng mạng quá bão hòa và gặp khó khăn khi xử lý khối lượng lớn giao dịch và ký các khối liên kết. Trung bình, các khối Cardano được sử dụng khoảng 25% trong một kỷ nguyên nhất định, điều này cho thấy nói chung, mạng không bị tắc nghẽn và có dung lượng dự phòng đáng kể để xử lý số lượng giao dịch thậm chí còn lớn hơn.

Cardano được thiết kế để công bằng và có khả năng phục hồi cao ngay cả trong điều kiện bão hòa nặng. Hãy tự nhắc nhở bản thân về cài đặt thông số hiện tại và xem xét các tối ưu hóa trong tương lai đã được lên kế hoạch. Các chỉ số hiệu suất hiện tại phụ thuộc vào các thước đo sau:

  • Thông lượng – khối lượng dữ liệu được truyền. Kích thước khối hiện tại được đặt thành 64 KB. Một giao dịch tập lệnh Plutus hiện được giới hạn ở 16 KB và các giao dịch đơn giản thường có thể chiếm tới khoảng 300 byte. Các biện pháp này đã được cân bằng để đảm bảo sử dụng mạng tốt trong khi giảm thiểu độ trễ giao dịch. Nếu tăng đáng kể và ngay lập tức, người dùng sẽ phải đối mặt với sự chậm trễ ngày càng tăng trong thời gian chấp nhận khối. Đó là bởi vì thông lượng và thời gian có mối quan hệ chặt chẽ với nhau – tối đa hóa thông lượng nghĩa là hiệu suất mạng tốt hơn, nhưng điều này có thể phải trả giá bằng việc tăng độ trễ khi hệ thống bị bão hòa nặng.
  • Tính kịp thời – tức là thời gian chấp nhận khối. Tổng ‘ngân sách’ cho việc áp dụng khối được đặt thành 5 giây để khối truyền trên mạng (95% cổ phần) với ngân sách khoảng 50 mili giây có sẵn cho các tập lệnh Plutus. Điều này được thiết kế để cho phép khối bao gồm cả tập lệnh và các giao dịch đơn giản mà không cần độc quyền.

Gần đây, người dùng đã ghi nhận thời gian chờ xử lý giao dịch tăng lên do sụt giảm NFT (mã thông báo không thể thay thế) lớn. Lý do cho sự quá bão hòa này là do một lượng lớn NFT được giải phóng cùng một lúc, gây ra những điều sau:

  • một số lượng lớn các giao dịch NFT đồng thời
  • một số người dùng đang cố gắng mua cùng một NFT và do đó cố gắng xử lý các giao dịch cùng một lúc
  • giao dịch hoàn tiền đồng thời cho những người dùng không thể mua NFT

Kịch bản này tạo ra sự khan hiếm mạng cho việc bán NFT và do đó nhu cầu về dịch vụ rất lớn – 43.000% nguồn cung. Điều đáng chú ý nữa là khoảng thời gian ‘ùn tắc’ chỉ kéo dài chưa đầy một giờ đồng hồ.

Đây là một thị trường đang phát triển và những người sáng tạo NFT đã bắt đầu lặp lại các quy trình của họ để giảm thiểu tác động của những lần sụt giảm như vậy đối với trải nghiệm người dùng. Vẫn còn sớm và tất cả chúng ta đang học nhanh. Cần lưu ý rằng quá trình đúc NFT hoàn toàn có thể song song hóa, có nghĩa là không có giới hạn cho quá trình này. Sau khi được đúc, các NFT lưu trữ mã hoán đổi có thể lập trình và các tài sản cần thiết để giao dịch đã sẵn sàng để tương tác với thị trường.

Nhưng ít nhất trong ngắn hạn và trung hạn, đây là vấn đề xây dựng hệ thống giao thông hiệu quả hơn là mở rộng đường. Một số nhà phát triển đã sản xuất các hệ thống như vậy đặc biệt cho các giọt NFT, điều này sẽ giảm chi phí cũng như tải mạng ngắn hạn.

Các sàn giao dịch phi tập trung (DEX)

Nhiều DApps đầu tiên được xây dựng trên Cardano là DEX hoặc Sàn giao dịch phi tập trung. Và trong một số ứng dụng, người dùng có xu hướng tranh chấp trong khi đặt hàng. Bởi vì thiết kế DApp điều kiện tiên quyết rằng toàn bộ trạng thái được giữ trong một UTXO (thay vì trải rộng trên nhiều UTXO), sẽ xảy ra sự phụ thuộc của giao dịch trong tương lai vào kết quả từ giao dịch trước đó. Điều này đã được gọi rộng rãi là ‘vấn đề’ đồng thời. Tuy nhiên, phân tích lại sự tương tự về ô tô, nó không phải là một ‘vấn đề’ hơn việc lái xe bên trái là một ‘vấn đề’ ở Anh hoặc Nhật Bản. Nó đòi hỏi một đường cong học tập nhưng cuối cùng nó chỉ là một cách làm khác. Và nếu một nhà phát triển không làm điều đó, vâng, họ sẽ gặp phải vấn đề! Nó cũng không phức tạp hơn – chỉ yêu cầu một cách tiếp cận khác.

Mô hình EUTXO của Cardano khác với mô hình dựa trên tài khoản. DApps được xây dựng trên Cardano nên rời khỏi kiểu máy trạng thái đơn luồng và đi xuống cấp độ trừu tượng trực tiếp cho EUTXO, xây dựng một giải pháp liên quan đến các cạnh đồng thời trong biểu đồ EUTXO. Điều quan trọng là sử dụng các bộ UTXO khác nhau, do đó thực thi song song sẽ cải thiện thông lượng của hệ thống trong khi vẫn giữ nguyên hiệu suất của các hoạt động riêng lẻ. Chắc chắn, điều này đòi hỏi một sự thay đổi trong tư duy đối với bất kỳ nhà phát triển nào đã từng sử dụng cách tiếp cận của Ethereum. Tuy nhiên, mô hình dựa trên UTXO an toàn hơn mô hình dựa trên tài khoản vì việc giữ tất cả trạng thái trong một tài khoản sẽ dễ bị tấn công hơn. Nếu sử dụng kỹ thuật song song một cách chính xác, người dùng sẽ tận hưởng kết quả được cải thiện về thông lượng và khả năng mở rộng trong khi các giải pháp ngoài chuỗi có thể áp dụng tốt hơn cho sổ cái UTXO. Để biết thêm chi tiết, hãy đọcbài đăng trên blog đồng thời và cách xây dựng Plutus DApp có thể mở rộng . Chúng tôi sẽ xuất bản thêm nội dung về vấn đề này trong thời gian thích hợp để cung cấp thêm hướng dẫn về cách tận dụng tối đa mô hình.

Lộ trình tối ưu hóa

Trọng tâm của chúng tôi khi ra mắt luôn là cung cấp khả năng cốt lõi và tính đúng đắn, trước khi tối ưu hóa. Đây luôn là mục tiêu đã nêu của chúng tôi. Chúng tôi đang tiếp tục theo dõi hiệu suất và điều chỉnh điểm chuẩn. Khi mạng phát triển và Cardano hoạt động với công suất cao hơn, chúng tôi sẽ điều chỉnh tham số hóa để theo kịp với nhu cầu mạng. Đây là những nâng cấp dần dần sẽ được thực hiện từng bước trong vài tháng tới để đảm bảo rằng các thay đổi đáp ứng các yêu cầu mạng và không ảnh hưởng đến các thuộc tính khác nhau.

Chúng tôi đã thực hiện phân tích sâu rộng và bắt đầu triển khai các chỉ số nút đo chính xác thời gian lan truyền dữ liệu. Khuếch tán dữ liệu là quá trình phân phối các giao dịch và khối qua các nút xác minh chuỗi khối. Điều cần thiết là phải cung cấp cho các nút thông tin cần thiết để thuật toán đồng thuận có thể đưa ra quyết định của nó.

Chúng tôi có thể sẽ triển khai thời gian chờ trung bình từ khi gửi giao dịch đến khi chấp nhận giao dịch. Cùng với đó, chúng tôi đang điều tra và phân tích các tình huống sẽ thúc đẩy hiệu suất mạng lặp đi lặp lại trong thời gian ngắn và dài hạn, bao gồm:

  • Tăng kích thước khối – kích thước khối tăng lên có nghĩa là nhiều giao dịch hơn trong một khối. Lợi ích là sẽ có ít thời gian chờ đợi hơn để các giao dịch được áp dụng bởi một khối trong thời gian mạng lưới bão hòa. Tuy nhiên, có một sự đánh đổi. Các khối lớn hơn mất nhiều thời gian hơn để truyền trên mạng. Điều này cũng có nghĩa là các nút sẽ cần nhiều thời gian hơn để xác minh các giao dịch. Mặc dù việc tăng kích thước khối là một tùy chọn để tăng hiệu suất mạng, những thay đổi như vậy cần được thực hiện một cách thận trọng. Để đảm bảo rằng sự gia tăng không ảnh hưởng đến thời gian chấp nhận khối, chúng tôi sẽ thay đổi dần các thông số và đánh giá kết quả trong thời gian bão hòa cao. Đây không phải là bản cập nhật một bước mà là một cách tiếp cận lặp đi lặp lại sẽ cung cấp cho chúng tôi kết quả rõ ràng và giúp đảm bảo các điều chỉnh hiệu quả nhất.
  • Kích thước mempool – hiện tại, kích thước của mempool được đặt thành 128 KB, gấp đôi kích thước của khối hiện tại. Mempool hoạt động như bộ đệm mạng và có thể gây ra độ trễ ngắn khi đưa các giao dịch vào một khối. Tuy nhiên, việc tăng kích thước mempool sẽ không cải thiện thông lượng mạng – hàng đợi giao dịch sẽ không thay đổi. Mempool cho phép chấp nhận hợp lý các giao dịch mới nhập vào nó một cách ngẫu nhiên dựa trên nút sản xuất được chọn bởi thuật toán xổ số.
  • Nén tập lệnh – do kích thước giao dịch hiện tại được đặt thành 16 KB, chúng tôi đang tiếp tục làm việc về nén, điều này cho phép giao thức ‘nén’ mã một cách minh bạch. Điều này có nghĩa là nhiều giao dịch tập lệnh hơn trong một khối do kích thước giảm xuống – các nhà phát triển sẽ có thể gửi mã phức tạp hơn khi nén nó xuống 16 KB hoặc ít hơn và sẽ có nhiều không gian hơn cho các giao dịch khác.

Kiến trúc cho EUTXO

Như được mô tả trong bài đăng trên blog đồng thời trước đây của chúng tôi , mô hình EUTXO của Cardano loại bỏ toàn bộ các vấn đề khi thiết kế ứng dụng DeFi. Ngoài khả năng tự nhiên của EUTXO để xử lý các giao dịch song song, bản chất xác định của mô hình đảm bảo rằng các nhà phát triển và người dùng có thể tránh lãng phí ‘khí’.

Điều đó nói lên rằng, mô hình EUTXO không giống với mô hình dựa trên tài khoản. Nâng cấp và chuyển kiến ​​trúc ứng dụng dành cho các hệ thống dựa trên tài khoản sang hệ thống dựa trên EUTXO sẽ dẫn đến thiết kế ứng dụng chưa tối ưu. Các ứng dụng được thiết kế riêng cho mô hình EUTXO của Cardano sẽ mang lại trải nghiệm người dùng tốt nhất.

Chúng tôi sẽ sớm xuất bản phần thông tin kỹ thuật sâu hơn về cách các nhà phát triển có thể tối ưu hóa việc gửi và xử lý đơn đặt hàng, chẳng hạn như đối với mô hình EUTXO trong thời gian ngắn.

Lặp lại & Cải tiến

Vì vậy, có rất nhiều công việc đang diễn ra ở hậu trường khi chúng tôi tiếp tục phát triển và lặp lại. Đây vẫn là những ngày đầu và chúng tôi sẽ liên tục đánh giá hiệu suất mạng và điều chỉnh các thông số cho phù hợp khi chúng tôi bắt đầu. Trong ngắn hạn, chúng tôi sẽ có thể giảm thiểu tắc nghẽn giảm NFT bằng cách rải đều hơn việc tính toán phân phối cổ phần và phân phối phần thưởng. Điều này sẽ cho phép chúng tôi tăng kích thước khối, loại bỏ tạm dừng và tắc nghẽn tại các ranh giới kỷ nguyên và loại bỏ các đột biến tính toán (có thể gây ra sự lan truyền khối chậm hơn). Việc tăng dần kích thước khối cũng sẽ cho phép chúng tôi đánh giá các tình huống tốt nhất cho hiệu suất mạng và những kết quả này sẽ sớm được hiển thị trên mạng.

Chúng tôi cũng có kế hoạch chuyển trạng thái sổ cái sang lưu trữ trên đĩa để giảm tải trên chuỗi, cùng với việc triển khai các tính năng nén tập lệnh và chia sẻ trên chuỗi. Khi được hoàn thiện, chúng sẽ bổ sung rất nhiều cho các điều chỉnh mạng.

Trong trung hạn, Hydra sẽ mang lại khả năng bổ sung. Về lâu dài, Nhà khoa học trưởng và nhóm của chúng tôi tiếp tục nghiên cứu các phương pháp và cơ chế khác xung quanh khuôn khổ định giá và nâng cao giao thức Ouroboros để tăng thông lượng giao dịch. Nhiều hơn về điều này trong các bài đăng blog trong tương lai!

Hai tháng trong

Chúng ta chỉ mới hai tháng kể từ khi bắt đầu kỷ nguyên hợp đồng thông minh trên Cardano. Bất kể trọng lượng của kỳ vọng và dự đoán xung quanh ‘sự ra mắt’, đây sẽ không bao giờ là một bản nâng cấp một lần. Cũng giống như việc hệ sinh thái luôn cần thời gian để xây dựng động lực, sẽ luôn có một giai đoạn chuẩn bị sẵn sàng và sau đó điều chỉnh, khi nhu cầu trên mạng ngày càng tăng. Chúng tôi đang trong một cuộc hành trình và việc hiểu ý kiến ​​phản hồi của cộng đồng vẫn là yếu tố then chốt. Trao đổi với nhiều dự án mới thú vị #BuildingOnCardano, chúng tôi đang xây dựng sự hiểu biết tốt hơn về các kế hoạch và mục tiêu của họ – cùng với bất kỳ vấn đề nào họ đang gặp phải – để chúng tôi có thể hỗ trợ và phục vụ khi cần thiết. Chúng tôi cũng đang theo dõi sát sao cuộc tranh luận của cộng đồng.

Đó là những ngày đầu và tất cả chúng ta vẫn đang học hỏi. Tuy nhiên, theo thiết kế, Cardano được thiết lập để linh hoạt và phát triển cùng với hệ sinh thái non trẻ – nhưng đã rất sôi động – của nó. Tất cả chúng ta hãy tiếp tục xây dựng!

Nếu bạn là nhà phát triển và muốn được hướng dẫn, hỗ trợ hoặc chỉ thích ghé qua trò chuyện tại một trong các phiên mở của chúng tôi – hãy đảm bảo bạn tham gia cộng đồng kỹ thuật đang phát triển của chúng tôi trên Discord .

Tôi cảm ơn John Woods, Vitor Silva, Kevin Hammond, Duncan Coutts, Romain Pellerin, Michael Peyton Jones, Jean-Frederic Etienne & Olga Hryniuk vì đã hỗ trợ và phản hồi trong việc chuẩn bị bài đăng trên blog này.

Comments (No)

Leave a Reply