Cardano-manh-me-dan-hoi-va-linh-hoat

Cardano được thiết kế để phục vụ hàng triệu người dùng theo cách phân tán trên toàn cầu. Như với bất kỳ chuỗi khối phi tập trung nào khác, điều này có nghĩa là chúng ta cần tạo ra nguồn cung cấp các block mới có thể dự đoán và nhất quán nhằm phát triển chung chuỗi và ghi lại các giao dịch giữa người dùng một cách minh bạch. Để đảm bảo rằng các block mới được truyền trên toàn mạng một cách hiệu quả và an toàn, điều quan trọng là hệ thống phải sử dụng hiệu quả các tài nguyên tính toán, bộ nhớ, lưu trữ và mạng.

Tính linh hoạt là chìa khóa, vì vậy một tính năng quan trọng của giao thức Cardano là nó đã được xây dựng với khả năng mở rộng thực sự. Đây không chỉ là về khả năng lâu dài hơn trong việc cung cấp cơ sở hạ tầng thành một hệ điều hành toàn cầu, hoàn toàn phi tập trung; cách tiếp cận tham số hóa của nó cũng được thiết kế để linh hoạt và điều chỉnh theo biến động giá, bão hòa mạng hoặc nhu cầu tăng lên, chẳng hạn. Một số tham số giao thức được cung cấp cho phép điều chỉnh trạng thái của hệ thống mà không cần hard fork. Ngay cả khi đó, những nâng cấp quan trọng hơn yêu cầu điều này có thể được quản lý khéo léo bằng cách sử dụng công nghệ tổ hợp hard fork (HFC – Hard fork combinator) của chúng tôi. Cùng với nhau, đây là những điểm khác biệt đáng kể cho Cardano, mang lại sự mạnh mẽ và đáng tin cậy ngày nay cũng như các lộ trình nâng cấp nhanh chóng khi mạng lưới phát triển và việc sử dụng ngày càng phổ biến.

Lộ trình của Cardano cũng được hình thành trong một loạt các giai đoạn sẽ đưa chúng ta từng bước đến đích cuối cùng của mình. Byron nói về khả năng giao dịch cơ bản trong một mạng liên kết. Điều này đã cho chúng tôi khả năng bắt đầu xây dựng cộng đồng và quan hệ đối tác trong khi làm việc ở giai đoạn tiếp theo. Việc khởi động lại Byron đã mang lại cho chúng tôi nền tảng vững chắc để xây dựng khả năng hơn nữa, trong khi Shelley giới thiệu các stake pool, mở rộng hơn nữa cộng đồng và giới thiệu việc tạo khối phi tập trung 100%.

Năm nay, chúng tôi đã giới thiệu một số tính năng mới, rất được mong đợi. Kể từ đầu năm 2021, với kỷ nguyên Mary, Cardano đã hỗ trợ tạo multi-assets và token không thể thay thế (non-fungible – NFT) trên sổ cái. Với mức phí thấp và không cần hợp đồng thông minh, chúng tôi đã chứng kiến ​​sự bùng nổ hoạt động trong lĩnh vực thú vị này. Bản nâng cấp Alonzo vào tháng 9 đã mang lại sự hỗ trợ cho các hợp đồng thông minh Plutus cho phép phát triển một loạt các ứng dụng phi tập trung (DApps). Còn tương đối sớm đối với các hợp đồng thông minh, nhưng với hàng chục dự án làm việc trên DApps và một số gần đến giai đoạn triển khai, mọi thứ sẽ sớm bắt đầu tăng tốc. Những khả năng mới này ảnh hưởng đến cách sổ cái xử lý các tập lệnh và giao dịch mới, đồng thời đặt ra các nhu cầu mới đối với các tài nguyên sẵn có. Khi các hoạt động phát triển, cấu ​​trúc của chúng tôi sẽ cho phép cardano linh hoạt và thích ứng theo yêu cầu.

Network capacity – Dung lượng mạng

Phần mạng lưới nằm ở trung tâm của tất cả các hoạt động của Cardano. Mạng Cardano phân phối các giao dịch và khối trên các node phân tán trên toàn cầu, tạo khối và xác minh blockchain. Đây được gọi là sự khuếch tán dữ liệu và việc ưu tiên là phải cung cấp thông tin cần thiết cho các node để thuật toán đồng thuận đưa ra quyết định. Những quyết định này thúc đẩy chuỗi tiến về phía trước, vì sự đồng thuận giữa các node đảm bảo rằng tất cả các giao dịch được xác minh, xác thực và do đó có thể được đưa vào một khối mới một cách minh bạch.

Cardano dựa trên giao thức đồng thuận Ouroboros Praos phi tập trung. Cardano đã chuyển đổi dễ dàng sang Praos từ giao thức Ouroboros Classic được liên kết trước đó thông qua một loạt các thay đổi đối với tham số giao thức d. Ouroboros Praos thiết lập các đảm bảo bảo mật nâng cao và đã được cung cấp các bài báo nghiên cứu được đánh giá ngang hàng được trình bày trong các hội nghị và tạp chí về mật mã & an ninh mạng cấp cao nhất.

Hiệu suất mạng ảnh hưởng đến tốc độ hoạt động của toàn bộ hệ thống. Điều này bao gồm các biện pháp như sau:

  • thông lượng (khối lượng dữ liệu được truyền)
  • timeliness (thời gian chấp nhận khối)

Hai yêu cầu này thường đối nghịch với nhau. Chúng tôi có thể tối đa hóa thông lượng khi các khối được tạo ra và được sử dụng hiệu quả nhất. Ngược lại, điều này ngụ ý đầy đủ bộ đệm để che giấu độ trễ (latency), làm giảm bớt nhược điểm của một hệ thống phân tán toàn cầu.

Nhiều bộ đệm hơn thường có thể cho phép sử dụng khối (và mạng) tốt hơn, nhưng nó phải trả giá bằng việc tăng độ trễ (thời gian áp dụng trong chuỗi) khi hệ thống bị bão hòa nặng.

Ngân sách khối – Block budget

Để hiểu các giao dịch và tập lệnh có thể được thực hiện nhanh như thế nào trên Cardano, trước tiên chúng ta nên xác định khái niệm về ngân sách khối. Kích thước tổng thể của một khối hiện được giới hạn ở mức tối đa là 64 KB, thể hiện sự cân bằng giữa việc đảm bảo sử dụng mạng tốt và giảm thiểu độ trễ giao dịch. Một khối duy nhất có thể chứa hỗn hợp các giao dịch, bao gồm các giao dịch có tập lệnh Plutus (hợp đồng thông minh), native token, siêu dữ liệu và giao dịch ada đơn giản (thanh toán). Tương tự, một giao dịch đơn lẻ hiện được giới hạn ở mức tối đa là 16KB. Điều này đảm bảo rằng một khối duy nhất sẽ luôn chứa nhiều giao dịch (ít nhất là 4, nhưng nói chung là nhiều giao dịch hơn), do đó cải thiện thông lượng giao dịch tổng thể.

Ngân sách block time (block time: thời gian thực hiên một khối) là một thuộc tính khác là khoảng thời gian cố định có sẵn để xử lý tất cả các giao dịch được bao gồm trong một khối duy nhất. Điều này được phân chia giữa thời gian có thể được sử dụng để thực thi tập lệnh Plutus và thời gian có sẵn để thực hiện các giao dịch khác. Thuộc tính này đảm bảo rằng các giao dịch với tập lệnh Plutus không thể độc quyền trong ngân sách thời gian có sẵn và hệ thống sẽ luôn có thể xử lý các khoản thanh toán đơn giản trong cùng một khối chứa tập lệnh Plutus. Tổng ngân sách thời gian để sản xuất mỗi khối (bao gồm cả chi phí mạng) được set = 1 giây, với ngân sách khoảng 50 mili giây có sẵn để thực thi tập lệnh Plutus. Trên thực tế, đây là một khoản dự phòng lớn – thử nghiệm của chúng tôi đã chỉ ra rằng nhiều tập lệnh thực sẽ thực thi trong 1 mili giây hoặc ít hơn trên hệ thống tham chiếu.

Ngân sách block time hiện được set = 1 giây. Vì lý do bảo mật, giao thức đồng thuận Praos chỉ chọn một phần nhỏ (một trong 20) trong số các khối có khả năng được thêm vào chuỗi. Đối với các tham số giao thức hiện tại, thông lượng giao dịch tối đa (đối với các giao dịch đơn giản) khi đó là khoảng 11 giao dịch mỗi giây (TPS). Rõ ràng, các giao dịch khác nhau sẽ có quy mô khác nhau và có trọng tải hiệu quả khác nhau. Một giao dịch duy nhất có thể kết thúc toàn bộ vòng bỏ phiếu Catalyst, ví dụ: chuyển hàng triệu đô la giá trị.

Như đã thảo luận ở trên, mỗi khối chứa một số giao dịch đã được gửi bởi người dùng cuối từ ví, giao diện dòng lệnh (CLI), v.v. Các giao dịch này được lưu giữ trong vùng lưu giữ tạm thời trong bộ nhớ (mempool) cho đến khi chúng sẵn sàng được xử lý và đưa vào một khối. Các giao dịch đang chờ xử lý sẽ bị xóa khỏi mempool khi một khối được tạo ra và các giao dịch mới sau đó có thể được thêm vào mempool. Bằng cách sử dụng mempool có size cố định, chúng tôi tránh được khả năng các node bị quá tải trong các khoảng thời gian có nhu cầu cao, nhưng điều này có nghĩa là ví hoặc ứng dụng có thể cần phải gửi lại các giao dịch. Size mempool hiện được set = 128 KB: gấp đôi kích thước khối hiện tại. Điều này đã được chọn dựa trên các mô hình xếp hàng nối đuôi nhau.

Stretching the network – Sự co dãn mạng lưới theo nhu cầu

Ouroboros được thiết kế để xử lý một khối lượng lớn dữ liệu cũng như các giao dịch và tập lệnh có độ phức tạp và size khác nhau. Hiện tại, và với các tham số hiện tại, mạng Cardano chỉ đang sử dụng trung bình khoảng 25% dung lượng của nó. Tất nhiên, kịch bản hiệu quả nhất là Cardano chạy bằng hoặc gần 100% dung lượng (mạng đã bão hòa). Trong khi nhiều giải pháp mạng sẽ bị ảnh hưởng trong điều kiện như vậy, cả Ouroboros và ngăn xếp mạng Cardano đã được thiết kế để cân 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. Phân tích điểm quy chuẩn cho thấy dưới độ bão hòa 200%, hiệu suất tổng thể vẫn có khả năng phục hồi và không có lỗi mạng nào. Ngay cả khi thử nghiệm stress dưới 44 lần, tổng dung lượng mạng khả dụng cũng không có lỗi (mặc dù một số giao dịch có thể bị chậm trễ một chút). Mạng được thiết kế để hoạt động theo cách này, sử dụng áp suất ngược để quản lý tải tổng thể của hệ thống. Vì vậy, trong khi một số người dùng cá nhân tham gia vào một đợt drop NFT lớn có thể trải qua thời gian chờ đợi lâu hơn cho các giao dịch của họ, ví dụ: hoặc có thể cần phải gửi lại giao dịch không thường xuyên từ một đợt drop lớn (hoặc mở các đợt drop trong một khoảng thời gian dài hơn), điều này xảy ra không có nghĩa là mạng đang ‘gặp khó khăn’. Nó thực sự có nghĩa là mạng đang hoạt động như dự định. Chúng tôi gọi nó là ‘sự xuống cấp duyên dáng’ và bạn có thể đọc thêm về nó trong bài báo thiết kế mạng.

Wallets – Ví

Ví hành động thay mặt cho người dùng cuối để gửi các khoản thanh toán và các giao dịch khác tới chuỗi khối và theo dõi trạng thái của chuỗi khối. Một trong những dịch vụ chính mà ví cung cấp là thay mặt người dùng gửi các giao dịch, xác nhận rằng chúng đã được chấp nhận trên blockchain và thay mặt họ thử lại nếu quá trình gửi không thành công. Có nghĩa là, ví cần tính đến các tác động của áp suất ngược trong mạng khi nó trở nên bão hòa, cũng như các hiệu ứng mạng khác (ngắt kết nối tạm thời, có thể có chuỗi fork, v.v.). Ví có thể là:

  • Ví full-node (như Daedalus), sử dụng tính toán cục bộ và tài nguyên mạng để chạy một node kết nối trực tiếp với mạng Cardano.
  • Ví nhẹ: ngược lại, những  này sử dụng tài nguyên mạng và được máy tính chia sẻ để phục vụ một số người dùng cuối.

Trong thời gian có nhu cầu cao (ví dụ: bán NFT), cả hai loại ví có thể cần phải thử lại các giao dịch. Vì chúng chia sẻ tài nguyên giữa nhiều người dùng, ví nhẹ có thể cần tạm thời mở rộng quy mô tài nguyên mạng và máy tính có sẵn (bao gồm cả việc nhân rộng các endpoint) để đảm bảo có thể đáp ứng nhu cầu của người dùng. Quy mô nhu cầu này tương tự như các yêu cầu được đặt ra khi một công ty phát hành một sản phẩm mới phổ biến, chẳng hạn. Ngược lại, các ví full-node về cơ bản có thể không bị ảnh hưởng. Các giao dịch có thể bị chậm trễ một chút, nhưng mỗi ví sẽ có các tài nguyên chuyên dụng cần thiết để thử lại quá trình gửi, bao gồm các kết nối mạng của chính nó. Các nguyên tắc tương tự áp dụng cho các nhà cung cấp DApp – nơi cung cấp các điểm cuối mạng cụ thể, tài nguyên hệ thống phải được mở rộng để đáp ứng nhu cầu.

Process optimization – Tối ưu hóa quá trình

Chúng tôi hoan nghênh sự đổi mới mà chúng tôi hiện đang thấy trong cộng đồng NFT. Để cải thiện trải nghiệm người dùng, cần phải tối ưu hóa các quy trình phát triển để quá trình tạo NFT, chẳng hạn, hoạt động tốt ngay cả khi gây ra bão hòa hệ thống. Ví dụ, nhiều người tạo NFT đang sử dụng đúc hàng loạt để đạt hiệu quả cao hơn.

Chúng tôi khuyến khích người dùng sáng tạo xem xét cách họ có thể tiếp tục tối ưu hóa nỗ lực của chính mình để giảm thiểu tắc nghẽn mạng. Chúng tôi cũng khuyến khích mọi người tham gia các cuộc thảo luận Discord như một phần của cộng đồng Người sáng tạo của chúng tôi và chúng tôi đang cung cấp các kỹ sư của mình để tìm ra giải pháp phù hợp nhất cho một trường hợp cụ thể.

Cũng như sự linh hoạt có được nhờ các điều chỉnh tham số – có thể được thực hiện trong một khoảng thời gian nếu được yêu cầu – trong trung hạn và dài hạn, các tùy chọn khác sẽ có hiệu quả. Hydra cho phép nhiều hoạt động được chạy song song, giúp nâng cao khả năng mở rộng. Các giải pháp kênh trạng thái của nó làm tăng thông lượng của hệ thống, đồng thời giảm nhu cầu thực thi trên chuỗi. Tuy nhiên, trong khi Hydra hỗ trợ nhiều trường hợp sử dụng khả năng mở rộng, nó không giải quyết cụ thể hiệu quả tạo NFT. Khi Cardano tiếp tục trưởng thành và phát triển, chúng tôi sẽ tiếp tục xem xét cách chúng tôi tối ưu hóa mạng và quản lý dung lượng mạng. Như tôi đã nói gần đây trong bản cập nhật giữa tháng 10 của chúng tôi, khi mạng bắt đầu chạy với dung lượng cao hơn, chúng tôi sẽ có thể điều chỉnh các tham số Cardano đó nếu cần. Ví dụ: giảm ngân sách block time, tối ưu hóa kích thước và thời gian thực thi của các tập lệnh Plutus hoặc giảm chi phí thực thi của chúng và cải thiện thông lượng.

Tham gia cộng đồng Discord của chúng tôi ngay hôm nay để tìm hiểu thêm và thảo luận về mọi thứ về Cardano với cộng đồng tận tâm của chúng tôi.

Cảm ơn Neil Davies và Olga Hryniuk đã đóng góp và hỗ trợ thêm cho việc viết bài này.

 Source: https://iohk.io/en/blog/posts/2021/10/21/cardano-robust-resilient-and-flexible/