Chương trình phụ trợ ứng dụng Plutus (PAB): hỗ trợ phát triển DApp trên Cardano

Plutus Application Backend (PAB): hỗ trợ phát triển DApp trên Cardano

Bản nâng cấp giao thức Alonzo đã giới thiệu Plutus – một nền tảng cung cấp ngôn ngữ hợp đồng thông minh bản địa cùng với cơ sở hạ tầng và công cụ cần thiết để hỗ trợ hợp đồng thông minh trên Cardano. Nền tảng Plutus cho phép các nhà phát triển viết các ứng dụng phi tập trung (DApps) với khả năng viết kịch bản tương tác với các sổ cái phân tán.

Để hiểu Plutus, người ta phải nhận ra ba khái niệm:

  • Mô hình Đầu ra Giao dịch Chưa gửi Mở rộng (EUTXO)
  • Plutus Core – phần ‘on-chain’ của Plutus
  • Khung ứng dụng Plutus (PAF) – Các hợp đồng của Plutus bao gồm các phần chạy trên blockchain (mã trên chuỗi) và các phần chạy trên máy của người dùng (ngoài chuỗi hoặc mã khách hàng)

Cả mã on-chain và off-chain đều được viết bằng Haskell và các hợp đồng thông minh của Plutus là những chương trình Haskell hiệu quả.

Mục Lục

Chương trình phụ trợ ứng dụng Plutus (PAB) là gì?

Trong một bài đăng trên blog trước , chúng tôi đã thảo luận chi tiết hơn về chức năng on-và off-chain của các thành phần cốt lõi của Plutus. Ở đây, chúng ta hãy đi sâu hơn vào các khả năng ngoài chuỗi của Plutus và xem xét Phần phụ trợ ứng dụng của Plutus (PAB).

Trong mô hình UTXO, chúng tôi có cơ sở hạ tầng ngoài chuỗi xây dựng các giao dịch để di chuyển các ứng dụng. Cơ sở hạ tầng ngoài chuỗi này khá phức tạp vì nó cần phải xem xét trạng thái sổ cái, chọn một số thông tin từ sổ cái và tập hợp tất cả lại với nhau để xây dựng một giao dịch với các phần dữ liệu phù hợp ở đúng vị trí. PAB là một thư viện Haskell duy nhất giúp viết cơ sở hạ tầng off-chain này và các tập lệnh on-chain dễ dàng hơn.

PAB giúp xây dựng các giao dịch UTXO theo hai cách:

  • Đường dẫn đọc – Nghĩa là lấy thông tin từ chuỗi và phản ứng với các sự kiện xảy ra trên chuỗi khối. Đường dẫn đọc hiện đang hoạt động trên testnet
  • Đường dẫn ghi – Đây là nơi chúng tôi thực sự xây dựng các giao dịch chạy các tập lệnh Plutus

Vai trò của PAB

PAB là một thành phần chính của Khung ứng dụng Plutus (PAF) cho phép các nhà phát triển tạo và thử nghiệm các DApp tại địa phương, trước khi triển khai chúng vào môi trường sản xuất trực tiếp. Giống như Marlowe Playground cung cấp một hộp cát cho các nhà phát triển tạo và thử nghiệm các hợp đồng thông minh tài chính, PAB cung cấp một môi trường tương tự cho các nhà phát triển để tạo và thử nghiệm các DApp đầy đủ.

PAB là một dịch vụ phụ trợ, ngoài chuỗi để quản lý và xử lý các yêu cầu của phiên bản ứng dụng trong suốt vòng đời của nó. Điều này bao gồm tương tác với các khách hàng bên ngoài (chẳng hạn như giao diện người dùng của ví) và hoạt động như một trung gian giữa Ứng dụng Plutus, nút, chương trình phụ trợ của ví và người dùng cuối. Sự tương tác như vậy có thể thực hiện được nhờ các lệnh PAB và các thành phần mô phỏng cho phép mô phỏng và tích hợp DApps một cách thuận tiện.

Mặc dù không phải là điều kiện tiên quyết để tạo hoặc triển khai DApp – một số nhà phát triển đang tạo ra các công cụ của riêng họ và thực sự các giải pháp thay thế dựa trên API đang được cộng đồng làm việc – PAB loại bỏ nhu cầu đối với các nhà phát triển phải tạo cơ sở hạ tầng của riêng họ từ đầu (bao gồm cả chỉ mục chuỗi, vv) giảm thời gian phát triển và nguồn lực cần thiết. Nó cho phép các nhà phát triển mô phỏng cách một ứng dụng sẽ hoạt động trên chuỗi để kiểm tra trước và loại bỏ lỗi, để đảm bảo một quá trình chuyển đổi hoàn hảo để khởi chạy.

Mục đích của PAB là:

  • cung cấp một môi trường tiêu chuẩn hóa để các ứng dụng Plutus chạy trong
  • trình bày các giao diện có thể khám phá cho các máy khách bên ngoài
  • theo dõi thông tin trên chuỗi để sử dụng hợp đồng thông minh
  • cho phép nhà phát triển làm việc trong môi trường giả lập hoặc không giả lập

PAB có thể chuyển đổi giữa các môi trường giả lập và không mô phỏng (mạng thực) một cách liền mạch. Điều này giúp dễ dàng hơn khi viết tất cả các loại bài kiểm tra khác nhau – bài kiểm tra đơn vị, bài kiểm tra tích hợp, bài kiểm tra dựa trên thuộc tính, v.v. PAB cho phép các DApp dễ dàng giao tiếp với nó vì phần phụ trợ có thể nhận và gửi tin nhắn. Do đó, DApp có thể gửi các yêu cầu thông thường đến các điểm cuối mà PAB đã hiển thị và tương ứng với các hành động và hoạt động mà bất kỳ hợp đồng thông minh cụ thể nào có khả năng xử lý.

Các ứng dụng được triển khai bằng cách sử dụng các thư viện của khuôn khổ có thể chạy trên PAB, cung cấp hỗ trợ thời gian chạy để truy cập vào chuỗi khối để thực hiện thêm các hoạt động hợp đồng thông minh kích hoạt các giao dịch dựa trên mô hình EUTXO . Ngoài ra, PAB có chức năng cho tính bền bỉ, ghi nhật ký và giám sát.

Bây giờ chúng ta đang ở đâu?

Đầu mùa hè này, chúng tôi đã triển khai cái đầu tiên trong một loạt các testnet được mã hóa màu để mang lại khả năng hợp đồng thông minh cốt lõi của Plutus cho Cardano. Điều này đã được triển khai trên mainnet thông qua hard fork ‘Alonzo’. Khả năng hợp đồng thông minh hiện có thể truy cập được bằng Giao diện dòng lệnh (CLI). Mặc dù các hợp đồng thông minh đơn giản đầu tiên đã được kích hoạt trên mainnet vào đầu tháng 9, nhưng đây luôn là giai đoạn đầu tiên trong lộ trình triển khai DApp trên mainnet.

Trong khi đó, các nhà phát triển đã làm việc trên DApp của họ (nhiều người thông qua PAB) cục bộ trong khi thử nghiệm bất kỳ chức năng hợp đồng thông minh cốt lõi nào trên testnet. Các yếu tố này cần phải kết hợp với nhau trước khi DApp truy cập vào mạng chính và điều này cần có thời gian. Khi PAB được tích hợp với nút và các thành phần cốt lõi khác như trình kết nối wallet back end (WBE), các nhà phát triển sẽ có thể chuyển các DApp của họ sang trạng thái sẵn sàng và đưa chúng đến Cardano testnet trước khi khởi chạy mainnet.

Những ứng dụng ban đầu này được xây dựng cục bộ sau đó sẽ có thể tương tác với mạng chính như dự kiến. Phương pháp tiếp cận ‘mockchain’ để phát triển cho đến nay có nghĩa là đối với những người tạo DApp, nó sẽ là một quá trình chuyển đổi suôn sẻ từ testnet sang mainnet. Tất cả những gì cần là thay đổi tệp cấu hình để khởi động PAB, không yêu cầu thay đổi mã thực hoặc mã Haskell. Công việc tích hợp này rất phức tạp và là một phần quan trọng của cơ sở hạ tầng Cardano, vì vậy chúng tôi cần đảm bảo nó được thực hiện chính xác. Chúng tôi đang tiếp tục làm việc trên các tích hợp cuối cùng và dựa trên quỹ đạo hiện tại, chúng tôi dự định thực hiện tích hợp vào tháng 11, giả sử chúng tôi không gặp phải bất kỳ vấn đề nghiêm trọng nào.

Nhìn về phía trước

Đây mới chỉ là khởi đầu. Như mọi khi, đây sẽ là một quá trình lặp đi lặp lại. Với sự phát triển của nền tảng Plutus, chúng tôi sẽ mời cộng đồng nhà phát triển triển khai công cụ của riêng họ và tạo mã off-chain cho DApp của họ chạy trên Cardano. Chúng tôi đã thấy nhiều hoạt động trong lĩnh vực này, thông qua cả chương trình mạng thử nghiệm Alonzo và Project Catalyst. Vì vậy, trong khi chúng tôi kiểm tra nền tảng với các kỹ sư / QA và cộng đồng nhà phát triển, chúng tôi sẽ thực hiện các cải tiến dần dần và bổ sung thêm nhiều khả năng và chức năng. Mục đích? Từ hardfork Alonzo và sự xuất hiện của các hợp đồng thông minh Plutus, trải nghiệm của nhà phát triển được mở rộng nhanh chóng, với các công cụ, API và môi trường mới để hỗ trợ một hệ sinh thái nhân tài vốn đã phát triển.

Để được cập nhật thường xuyên, hãy đảm bảo rằng bạn theo dõi chúng tôi trên Twitter và đăng ký kênh YouTube của chúng tôi. Để biết tổng quan về các dự án #BuildingOnCardano, hãy nhớ xem kho Essential Cardano .

Comments (No)

Leave a Reply