Tìm hiểu cách gửi giao dịch và tương tác với hợp đồng Marlowe từ CLI
Marlowe là một ngôn ngữ dành riêng cho miền (DSL) mã nguồn mở với một bộ sản phẩm dành cho cộng đồng sẽ thúc đẩy việc áp dụng Cardano trong lĩnh vực tài chính. Nó liên tục được nâng cao và cập nhật, và giao diện dòng lệnh (CLI) chỉ là thứ bạn không thể không có khi làm việc. Vì vậy, chúng tôi đã tạo ra một cách thuận tiện hơn để tương tác với Marlowe bằng cách sử dụng công cụ CLI mới. Công cụ mới này hỗ trợ một quy trình làm việc đơn giản cho những người dùng muốn chạy các hợp đồng từ dòng lệnh. Nó cho phép bạn tập trung vào bản thân hợp đồng Marlowe, trong khi công cụ quản lý chi tiết đầu vào và trạng thái của hợp đồng. Ngoài ra, nó tự động hóa nhiều khía cạnh của Plutus cũng như tương tác với chính nút Cardano để giảm bớt gánh nặng cho người dùng.
Mục đích
Công cụ Marlowe CLI mới tạo điều kiện thuận lợi cho việc phát triển nội bộ và thử nghiệm các hợp đồng Marlowe. Điều này bao gồm đo kích thước giao dịch, gửi giao dịch, thử nghiệm tích hợp ví và gỡ lỗi trình xác thực. Nó cũng cung cấp tích hợp với quy trình làm việc của nhà phát triển bên ngoài và bộ công cụ cho các hợp đồng Marlowe, tương tự như cách cộng đồng phát triển Cardano đã tích hợp mạnh mẽ công cụ Cardano CLI vào các dịch vụ khác nhau như thư viện, faucets, đúc mã thông báo, marketplaces, v.v.
Đây cũng là một bước quan trọng trong lộ trình kiểm tra chặt chẽ mã nguồn của chúng tôi trước khi ra mắt chính thức Marlowe, vì nó cung cấp quyền truy cập sớm vào các tính năng và khả năng trên testnet và sau đó trên mainnet.
Ngoài ra, công cụ CLI mới này sẽ trở thành một công cụ hữu ích để đào tạo người dùng về cách bắt kịp tốc độ sử dụng Marlowe. Chúng tôi sẽ trình bày cách sử dụng nó trong Chương trình Người tiên phong của Marlowe sắp ra mắt trong vài tuần tới! Hãy theo dõi kênh Marlowe Discord của chúng tôi để biết chi tiết về thời điểm bắt đầu khóa học này và cách bạn có thể tham gia.
Chạy các hợp đồng Marlowe
Lệnh marlowe-cli hỗ trợ một số quy trình công việc cấp cao và chi tiết để chạy các hợp đồng Marlowe, nhưng ở đây chúng ta sẽ tập trung vào quy trình làm việc tóm tắt các chi tiết cụ thể về việc sử dụng ngôn ngữ Plutus của Marlowe. Công cụ này được cài đặt tương tự như các công cụ Cardano khác, sử dụng các lệnh Cabal hoặc Nix tiêu chuẩn. Việc sử dụng cơ bản chỉ bao gồm một số lệnh:
- Tạo một hợp đồng mẫu từ một mẫu
- Khởi tạo hợp đồng để có thể gửi giao dịch tạo
- Áp dụng các đầu vào cho một hợp đồng
- Rút tiền từ một hợp đồng
- Gửi một giao dịch từ tạo, áp dụng đầu vào hoặc rút tiền
- Truy vấn lịch sử của một hợp đồng
Hình 1: Quy trình công việc cấp cao để chạy các hợp đồng Marlowe tại dòng lệnh. Mỗi hình chữ nhật tương ứng với việc chạy một lệnh marlowe-cli
.
Có một số cách để thiết kế hợp đồng Marlowe, nhưng cách dễ nhất là sử dụng template
lệnh của CLI hoặc Playground Marlowe . Người ta cũng có thể tạo hợp đồng theo lập trình bằng cách sử dụng Haskell, JavaScript hoặc bất kỳ ngôn ngữ nào khác có thể xuất ra các tệp JSON cần thiết thể hiện hợp đồng và trạng thái ban đầu của nó. Lệnh của CLI template
có thể tạo các hợp đồng thử nghiệm đơn giản, hợp đồng ký quỹ, trái phiếu không phiếu giảm giá, hoán đổi mã thông báo và các cuộc gọi được bảo hiểm. Playground chứa tám hợp đồng mẫu, nhưng bạn cũng có thể thiết kế một hợp đồng Marlowe tùy chỉnh với nó.
Khi hợp đồng đã được tạo và trạng thái bắt đầu của nó được xác định, initialize
lệnh của CLI sẽ gói thông tin đó cùng với các chi tiết của mạng Cardano nơi nó sẽ được chạy. Định dạng JSON kết quả duy nhất. marlowe
tệp chứa tất cả thông tin cần thiết để chạy hoặc nghiên cứu hợp đồng Marlowe. Ngoài hợp đồng và trạng thái hiện tại, nó còn chứa địa chỉ của trình xác thực Marlowe, bản sao được tuần tự hóa của tập lệnh Plutus và chi tiết mạng. Việc kiểm tra và trích xuất thông tin từ tệp JSON này có thể hữu ích trong việc tìm hiểu về cách hoạt động của Marlowe, nhưng không cần thiết để chạy các hợp đồng Marlowe. Khi thông tin cần thiết này đã được nhóm lại, CLI sẽ chạyexecute
lệnh gửi giao dịch Plutus thực tế đến chuỗi khối Cardano, in số liệu thống kê về giao dịch và chờ xác nhận.
Việc áp dụng các yếu tố đầu vào cho một hợp đồng tuân theo một quy trình đơn giản hơn. Lệnh của CLI prepare
cho phép bạn thiết lập một khoản tiền gửi vào hợp đồng, thực hiện lựa chọn hoặc thông báo cho hợp đồng đó. Cái này mất cái trước. marlowe
tệp dưới dạng đầu vào và tạo một tệp mới dưới dạng đầu ra, bạn có thể gửi tệp này bằng lệnh thực thi. Lệnh chuẩn bị sẽ cảnh báo bạn nếu đầu vào là bất hợp pháp hoặc không kịp thời.
Việc rút tiền được thanh toán bằng hợp đồng Marlowe được thực hiện bằng withdraw
lệnh, cho phép bạn chọn địa chỉ nhận tiền. Lựa chọn địa chỉ cung cấp sự linh hoạt trong việc giải ngân vốn, để các địa chỉ đầu ra không bị “mắc kẹt” vào chính hợp đồng.
Truy vấn lịch sử của hợp đồng cũng có thể được thực hiện từ dòng lệnh hoặc bạn có thể sử dụng trình khám phá chuỗi khối Cardano.
Tương lai
Công cụ dòng lệnh cũng cung cấp các tính năng nâng cao để tạo và thao tác với trình xác thực, dữ liệu, trình xác nhận lại và băm của Plutus liên quan đến hợp đồng Marlowe. Các hợp đồng cũng có thể được nén (sử dụng hàm băm Merkle), giúp có thể chạy các hợp đồng lớn hơn nhiều so với giới hạn của giao thức Cardano về kích thước giao dịch và bộ nhớ nếu không sẽ cho phép. Người ta cũng có thể sử dụng CLI để chạy các hợp đồng Marlowe trên PAB, loại bỏ nhu cầu quản lý UTxO và để ví quản lý điều đó.
Công cụ CLI này được cải tiến định kỳ để đáp ứng nhu cầu của nhà phát triển khi chúng xuất hiện. Ngoài việc đơn giản hóa hơn nữa quy trình làm việc của Marlowe, khả năng kiểm tra hợp đồng của công cụ đang được mở rộng.
Hãy tham gia với chúng tôi trên kênh Marlowe Discord để tham gia vào các cuộc thảo luận, đặt câu hỏi và nghe tin tức mới nhất về Marlowe.
Tôi muốn cảm ơn Brian Bush, kỹ sư phần mềm của Marlowe, vì sự giúp đỡ của anh ấy trong việc viết blog này.
TADATek Insights biên dịch
Comments (No)