Skip to main content

Giới thiệu Yaci DevKit

Ngày 29 tháng 01 năm 2025

1. Giới thiệu về Cardano Developer Office Hours

Cardano Developer Office Hours là một sự kiện mở diễn ra vào thứ Sáu cách tuần từ 9:00 đến 10:00 UTC. Trước đây, đây là một buổi thảo luận mở, nhưng hiện tại, nó được tổ chức theo hướng trình bày các công cụ và dự án mà đội ngũ phát triển Cardano đang thực hiện. Người tham gia có thể yêu cầu chủ đề thông qua các kênh xã hội hoặc Discord.

Trong phiên lần này, Satya – một thành viên trong cộng đồng phát triển Cardano – đã giới thiệu Yaci DevKit, một bộ công cụ giúp các lập trình viên dễ dàng thiết lập môi trường phát triển Blockchain Cardano cục bộ.

Video giới thiệu Yaci DevKit
---

2. Yaci DevKit là gì và tại sao cần thiết?

Thực trạng phát triển ứng dụng trên Cardano

Hiện tại, phần lớn các lập trình viên phát triển ứng dụng phi tập trung (DApps) trên Cardano phải dựa vào các mạng công khai như Preview, PreProd, Mainnet. Tuy nhiên, điều này mang đến nhiều thách thức:

  • Thời gian khối chậm: Mạng công khai có thời gian tạo khối 20 giây, làm chậm quá trình thử nghiệm.
  • Dữ liệu không thể thay đổi: Một khi dữ liệu được ghi lên Blockchain công khai, nó sẽ tồn tại vĩnh viễn, gây khó khăn khi thử nghiệm.
  • Các bản nâng cấp khó dự đoán: Nếu có một đợt hardfork, các ứng dụng có thể gặp sự cố đột ngột.
  • Vấn đề bảo mật: Một số doanh nghiệp muốn phát triển ứng dụng mà không để lộ dữ liệu lên mạng công khai.

Giải pháp của Yaci DevKit

Yaci DevKit được phát triển để giải quyết những vấn đề trên bằng cách giúp lập trình viên tạo một mạng phát triển Cardano cục bộ chỉ với một lệnh duy nhất. Một số lợi ích chính của DevKit gồm:

  • Tạo mạng Blockchain cá nhân trong vài giây.
  • Tùy chỉnh thông số mạng, như thời gian khối, phí giao dịch, số dư tài khoản thử nghiệm.
  • Cung cấp công cụ quan sát mạng để kiểm tra giao dịch, hợp đồng thông minh.
  • Hỗ trợ nhiều SDK phổ biến như Mesh, Lucid, Cardano Client Libs.

3. Các thành phần chính của Yaci DevKit

Yaci DevKit bao gồm nhiều công cụ hỗ trợ phát triển ứng dụng trên Cardano:

3.1. Công cụ CLI (Yaci CLI)

  • Hỗ trợ tạo, hủy, hoặc khởi động lại mạng phát triển.
  • Cung cấp các lệnh để tương tác với Blockchain như tạo tài khoản, nạp tiền, truy vấn dữ liệu UTxO.

3.2. Bộ chỉ mục Blockchain (Yaci Store)

  • Cung cấp API tương thích với Blockfrost để lấy dữ liệu như UTxO, thông số giao thức.
  • Hỗ trợ sử dụng với các thư viện SDK phổ biến.

3.3. Trình duyệt khối (Yaci Viewer)

  • Một công cụ quan sát mạng đơn giản, giúp theo dõi các khối, giao dịch và hợp đồng thông minh.

3.4. Hỗ trợ các dịch vụ khác

  • Ogmios: Được tích hợp để đánh giá chi phí thực thi hợp đồng thông minh.
  • Kupo: Một công cụ truy vấn dữ liệu Blockchain thay thế cho Yaci Store.

4. Các phương thức cài đặt Yaci DevKit

Yaci DevKit có nhiều phương thức cài đặt phù hợp với từng nhu cầu phát triển:

Phương thứcMô tảĐối tượng phù hợp
Docker ComposeCài đặt nhanh với Docker, bao gồm tất cả công cụ cần thiết.Người dùng muốn trải nghiệm nhanh.
Gói ZIPChỉ bao gồm CLI, cho phép tải các thành phần riêng biệt.Người muốn tuỳ chỉnh nhiều hơn.
NPM PackageCài đặt qua npm, phù hợp với lập trình viên JavaScript.Nhà phát triển sử dụng Node.js.
Thư viện Java (Yaci Cardano Test)Hỗ trợ kiểm thử tự động với TestContainers.Nhà phát triển Java/Scala.

5. Hướng dẫn sử dụng Yaci DevKit

5.1. Tạo và quản lý mạng phát triển

Sau khi cài đặt, có thể tạo một mạng phát triển bằng lệnh:

yaci-cli devkit create-node --start

Lệnh này sẽ:

  • Thiết lập một node Cardano cục bộ.
  • Tạo 10 tài khoản thử nghiệm với 10.000 ADA mỗi tài khoản.
  • Khởi chạy các dịch vụ liên quan như Ogmios, Yaci Store.

Nếu muốn reset mạng phát triển:

yaci-cli devkit reset

5.2. Tương tác với mạng phát triển

  • Xem số dư tài khoản:
    yaci-cli devkit utxo-list --address <địa_chỉ>
  • Chuyển ADA giữa các tài khoản:
    yaci-cli devkit transfer --from <địa_chỉ> --to <địa_chỉ> --amount 1000

5.3. Theo dõi giao dịch trên trình duyệt khối

Truy cập http://localhost:3000 để xem các khối và giao dịch mới.


6. Hiệu suất và tối ưu hóa

Dù nhiều thành phần của Yaci DevKit được viết bằng Java, nhưng chúng đã được tối ưu để giảm thiểu tài nguyên:

  • Yaci Store chỉ tiêu tốn ~191MB RAM.
  • Yaci CLI chỉ dùng ~75MB RAM.
  • Cardano Node tiêu tốn ~77MB RAM.
  • Tổng bộ nhớ cần thiết dưới 1GB, đảm bảo chạy mượt mà trên hầu hết hệ thống.

Nếu muốn sử dụng ít tài nguyên hơn, có thể chọn bản cài đặt NPM hoặc ZIP thay vì Docker.


7. Ứng dụng trong kiểm thử và CI/CD

Yaci DevKit có thể được tích hợp vào quy trình kiểm thử tự động cho ứng dụng Cardano. Ví dụ, trong Java:

@Rule
public YaciCardanoContainer cardano = new YaciCardanoContainer().withInitialFunding(..);

Lệnh này sẽ:

  • Khởi chạy một mạng phát triển trong môi trường kiểm thử.
  • Chạy các bài kiểm thử hợp đồng thông minh.
  • Tắt mạng sau khi hoàn tất kiểm thử.

Lập trình viên có thể tích hợp vào Scala, JavaScript hoặc các ngôn ngữ khác để tự động hóa quy trình kiểm thử.


8. Tương lai của Yaci DevKit

Nhóm phát triển dự định mở rộng công cụ bằng cách bổ sung:

  • Hydra: Giải pháp mở rộng Layer 2 trên Cardano.
  • Dojo: Một công cụ hỗ trợ kiểm thử hợp đồng thông minh.

9. Kết luận

Yaci DevKit là một công cụ mạnh mẽ giúp lập trình viên phát triển và kiểm thử DApps trên Cardano một cách nhanh chóng và hiệu quả. Với khả năng tạo mạng phát triển cục bộ trong vài giây, DevKit giúp tiết kiệm thời gian, giảm rủi ro và tối ưu hóa quá trình phát triển ứng dụng Blockchain.

Lập trình viên quan tâm có thể tham gia cộng đồng trên Discord Rodentia Alliance hoặc GitHub để đóng góp và nhận hỗ trợ.

Nguồn bài viết tại đây

Chia sẻ bài viết này trên Twitter | Facebook | Telegram


Picture

Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới