Plutus - Gimbalabs
Đây là phần tóm tắt nội dung các video giúp học viên có thể tổng hợp và nắm bắt kiến thức từng bài giảng nhanh hơn.
Lesson 100.1: Connecting to the Cardano Pre-Production Test Network
Bài học 100.1: Kết nối với Mạng thử nghiệm tiền sản xuất Cardano
Chào mừng bạn đến với Plutus Project-Based Learning 2023 (PPBL) từ Gimbalabs. Chúng tôi rất vui khi có bạn ở đây! Trong khóa học này, mục tiêu học tập đầu tiên của chúng tôi là kết nối ví Cardano với công việc testnet tiền sản xuất. Các mạng thử nghiệm đóng một vai trò quan trọng trong việc phát triển và xây dựng các dự án mới, vì chúng cho phép thử nghiệm và xác định các vấn đề tiềm ẩn mà không phải chịu rủi ro liên quan đến mạng chính. Bài giảng này sẽ hướng dẫn bạn quy trình kết nối ví Cardano của bạn với công việc testnet tiền sản xuất bằng cách sử dụng hai ví dựa trên trình duyệt phổ biến: Nami và Eternal. . Vì vậy, hãy đi sâu vào!
Tại sao mạng testnet lại quan trọng
Khi nói đến việc xây dựng các dự án và giao thức mới, việc phạm sai lầm là điều không thể tránh khỏi. Tuy nhiên, trên mạng chính, những sai lầm này có thể phải trả giá đắt vì có liên quan đến các token thực có giá trị. Đây là nơi testnethoạt động, chẳng hạn như testnet tiền sản xuất (pre-prod) và mạng xem trước, phát huy tác dụng. Các mạng thử nghiệm cung cấp một môi trường an toàn để các nhà phát triển thử nghiệm ứng dụng của họ, xác định lỗi và đảm bảo mọi thứ hoạt động như dự định trước khi triển khai trên mạng chính. Bằng cách sử dụng testnetworks, các nhà phát triển có thể lặp lại và tinh chỉnh các dự án của chúng mà không sợ tổn thất tài chính hoặc ảnh hưởng đến tiền của người dùng.
Mạng thử nghiệm tiền sản xuất (Pre-Prod)
Trong khóa học này, chúng tôi sẽ chủ yếu tập trung vào công việc testnet tiền sản xuất (pre-prod). Mạng tiền sản xuất đóng vai trò là giai đoạn trung gian giữa mạng xem trước và mạng chính. Nó cho phép các nhà phát triển thử nghiệm các ứng dụng của chúng trong một môi trường gần giống với mạng chính mà không có nguy cơ gây gián đoạn hoặc tổn thất tài chính. Mặc dù mạng xem trước là nơi các tính năng mới thường được kiểm tra trước khi triển khai cho tiền sản xuất và mạng chính, nhưng chúng tôi khuyến khích bạn khám phá mạng này một cách độc lập để hiểu toàn diện về hệ sinh thái Cardano.
Kết nối với Pre-Prod Network: Nami Wallet
Ví Nami là một trong những ví dựa trên trình duyệt phổ biến nhất dành cho Cardano. Để kết nối ví Nami của bạn với testnetwork tiền sản xuất, hãy làm theo các bước sau:
- Cài đặt tiện ích mở rộng trình duyệt Nami.
- Giả sử bạn đã tạo ví rồi, hãy nhấp vào biểu tượng tiện ích mở rộng Nami.
- Nhấp vào node cài đặt, thao tác này sẽ mở menu thả xuống.
- Trong menu thả xuống, chọn
Mạng
. - Từ các tùy chọn khả dụng, hãy chọn
Pre-Prod
để kết nối với testnetwork tiền sản xuất. - Sau khi kết nối, bạn sẽ nhận thấy sự thay đổi trong tiền tố địa chỉ nhận của mình từ
addr1
(mainnet) thànhaddr_test1
(pre-prod). - Điều quan trọng cần lưu ý là bạn tạo hoặc nhập ví trước khi chuyển đổi mạng. Cụm từ ghi nhớ của bạn vẫn giống nhau cho cả mainnet và testnetworks, cho phép bạn lấy các địa chỉ khác nhau mà không thay đổi các khóa riêng được liên kết với chúng.
Kết nối với Mạng Pre-Prod: Eternal Wallet
Ví vĩnh cửu là một ví dựa trên trình duyệt phổ biến khác dành cho Cardano. Để kết nối ví Eternal của bạn với testnetwork tiền sản xuất, hãy làm theo các bước sau:
- Cài đặt tiện ích mở rộng trình duyệt Eternal.
- Ở góc dưới bên phải của giao diện ví Eternal, bạn sẽ tìm thấy node
Mainnet
. Nhấn vào nó. - Một menu thả xuống sẽ xuất hiện, hiển thị các tùy chọn mạng khác nhau. Chọn
Pre-Prod
để chuyển sang testnetwork tiền sản xuất. - Không giống như Nami, trong Vĩnh Hằng, bạn chuyển đổi mạng trước khi tạo hoặc khôi phục ví.
- Khi bạn đã chuyển sang mạng tiền sản xuất, bạn có thể tạo ví mới hoặc khôi phục ví hiện có.
- Để kết nối ví Eternal của bạn với khóa học PPBL, bạn cần chuyển sang tiện ích mở rộng trình duyệt Eternal và kích hoạt tài khoản DApp.
- Nhấp vào biểu tượng phích cắm ở góc trên cùng bên phải của giao diện Eternal.
- Từ menu thả xuống, chọn tùy chọn để kết nối dưới dạng tài khoản DApp.
- Sau khi kết nối, biểu tượng phích cắm sẽ chuyển sang màu xanh lục, cho biết kết nối thành công.
- Quay lại trang khóa học PPBL và nhấp vào
Connect Wallet
, sau đó chọn Eternal làm tùy chọn ví của bạn. - Một hộp thoại sẽ xuất hiện, yêu cầu quyền kết nối ví của bạn với ứng dụng. Cấp các quyền cần thiết.
- Sau khi kết nối thành công, bạn sẽ thấy thanh trạng thái màu xanh lục cho biết đã hoàn thành Mục tiêu học tập 100.1.
Hiểu về Mastery và kết nối ví
Khi bạn hoàn thành khóa học PPBL, bạn sẽ bắt gặp khái niệm về Tinh thông. Tinh thông đề cập đến mức độ thành thạo và hiểu biết mà bạn đạt được trong mỗi mục tiêu học tập. Thanh trạng thái màu lục ở đầu trang phản ánh tiến độ của bạn trong việc đạt được thành thạo một mục tiêu học tập cụ thể. Ngoài ra, hành vi của trang có thể thay đổi tùy thuộc vào cách ví của bạn được kết nối, cung cấp cho bạn trải nghiệm học tập năng động.
Chuẩn bị ví của bạn: Nhận ADA thử nghiệm
Để tạo thuận lợi cho quá trình học tập và cho phép xây dựng giao dịch, điều cần thiết là phải có ADA thử nghiệm trong ví của bạn. Thử nghiệm ADA, mô phỏng ADA crypto gốc của Cardano, cho phép bạn thử nghiệm các giao dịch mà không cần đến tiền thật. Việc lấy ADA thử nghiệm cho ví tiền sản xuất của bạn sẽ được đề cập trong bài học tiếp theo, nơi chúng tôi sẽ cung cấp cho bạn hướng dẫn từng bước về cách nhận các token này.
Phần kết luận
Kết nối ví Cardano của bạn với công việc testnet tiền sản xuất là một bước quan trọng trong khóa học Plutus Project-Based Learning 2023. Các mạng thử nghiệm, chẳng hạn như tiền sản xuất, cung cấp một môi trường an toàn và được kiểm soát để các nhà phát triển xây dựng và thử nghiệm các ứng dụng của chúng trước khi triển khai chúng trên mạng chính. Bằng cách sử dụng các ví dựa trên trình duyệt phổ biến như Nami và Eternal, bạn có thể dễ dàng kết nối với mạng tiền sản xuất và tận dụng các cơ hội học tập được cung cấp trong khóa học PPBL. Hãy nhớ làm theo các hướng dẫn được cung cấp và khám phá các Hàm của các ví này để nâng cao hiểu biết của bạn về hệ sinh thái Cardano.
Lesson 100.2: Obtaining Free Test ADA and Exploring Transactions
Bài học 100.2: Nhận ADA thử nghiệm miễn phí và khám phá các giao dịch
Chào mừng bạn đến với Chương trình Học tập dựa trên Dự án 2023 của Plutus! Chúng tôi đánh giá cao cam kết của bạn đối với khóa học này. Trong bài học này, chúng ta sẽ khám phá cách nhận ADA hoặc TADA thử nghiệm miễn phí trên testnetwork tiền sản xuất. Trong bài học trước, chúng ta đã kết nối thành công một ví nhưng vì số dư bằng 0 nên chúng ta cần lấy một số token. May mắn thay, IOHK cung cấp một faucet testnet đơn giản cho phép bạn yêu cầu ADA thử nghiệm. Điều quan trọng cần lưu ý là chúng tôi sẽ tập trung vào mạng thử nghiệm tiền sản xuất trong suốt khóa học này. Ngoài ra, chúng tôi sẽ đề cập ngắn gọn về tùy chọn nhận ủy quyền nhóm cho những người quan tâm đến việc điều hành staking pool trên một trong các testnetworks. . Vì vậy, hãy đi sâu vào và nhận một số ADA thử nghiệm để tiến xa hơn.
Nhận ADA thử nghiệm miễn phí: Để có được ADA thử nghiệm, hãy làm theo các bước sau:
- Truy cập Faucet Testnet IOHK:
- Truy cập trang web Faucet mạng thử nghiệm IOHK.
- Đọc hướng dẫn về khóa API, cho phép bạn bỏ qua giới hạn tốc độ (tùy chọn).
- Ngay cả khi không có khóa API, bạn vẫn có thể nhận đủ ADA.
- Tạo địa chỉ nhận:
- Sao chép địa chỉ nhận ví của bạn.
- Dán địa chỉ nhận trên trang IOHK Testnet Faucet.
- Hoàn tất quy trình xác minh cần thiết để xác nhận rằng bạn không phải là người máy.
- Yêu cầu kiểm tra ADA:
- Nhấp vào node
Yêu cầu tiền
để bắt đầu quá trình. - Faucet IOHK Testnet sẽ gửi ADA thử nghiệm đến địa chỉ ví được chỉ định của bạn.
- Xác nhận chi tiết giao dịch:
- Sao chép hàm hash giao dịch do faucet cung cấp.
- Mở Cardanoscan.pre-prod.Cardanoscan.io trong trình duyệt web của bạn.
- Dán mã hash giao dịch để xem chi tiết.
- Bạn sẽ thấy mười nghìn ADA thử nghiệm đã được gửi đến địa chỉ ví của bạn.
- Kiểm tra số dư trên Wallet của bạn:
- Quay lại trang khóa học PPBL và làm mới nó.
- Kết nối lại ví của bạn để xem số dư được cập nhật.
- Bây giờ, bạn sẽ thấy rằng 10.000 ADA thử nghiệm đã được thêm vào ví của bạn.
Nắm vững mục tiêu học tập: Chúc mừng! Bằng cách nhận thành công ADA thử nghiệm, bạn đã đạt được mục tiêu học tập cho bài học này. Bây giờ bạn có số dư đáng kể của ADA thử nghiệm. Với thành tích này, chúng tôi có thể tiếp tục và khám phá nhiều hành động khác nhau mà chúng tôi có thể thực hiện với các token đã mua. Tuy nhiên, trước khi tiếp tục, chúng ta hãy lướt nhanh qua Bài học thứ ba để hiểu cách lưu trữ khóa cá nhân của bạn một cách an toàn.
Lưu trữ khóa riêng: Lưu trữ khóa riêng là rất quan trọng để đảm bảo an toàn và bảo mật cho tiền của bạn. Trong Bài học Ba, chúng ta sẽ đi sâu vào các phương pháp hay nhất để lưu trữ khóa riêng tư. Bằng cách làm theo các hướng dẫn này, bạn có thể giảm thiểu rủi ro truy cập trái phép vào ví và tài sản của mình.
Xây dựng giao dịch trực tuyến đầu tiên của bạn: Khi bạn đã hiểu rõ về lưu trữ khóa riêng tư, chúng ta sẽ chuyển sang Bài học Bốn, nơi chúng ta sẽ xây dựng giao dịch trực tuyến đầu tiên của mình. Bài tập thực tế này sẽ cung cấp cho bạn kinh nghiệm thực hành trong việc thực hiện các giao dịch trên blockchain Cardano. Bạn sẽ tìm hiểu các bước cần thiết, bao gồm bắt đầu giao dịch, chỉ định địa chỉ của người nhận và xác nhận chi tiết giao dịch trước khi hoàn tất.
Phần kết luận: Trong bài học này, chúng ta đã khám phá quy trình nhận ADA thử nghiệm miễn phí trên testnetwork tiền sản xuất. Bằng cách tận dụng Faucet mạng thử nghiệm IOHK, chúng tôi đã có được mười nghìn ADA thử nghiệm và xác nhận chi tiết giao dịch bằng CardanoScan. Với số dư ADA thử nghiệm tăng lên trong ví của chúng tôi, chúng tôi đã thành công đạt được mục tiêu học tập cho mô-đun này. Trong tương lai, chúng tôi sẽ chuyển trọng tâm sang lưu trữ khóa riêng trong Bài học thứ ba và tiến hành xây dựng giao dịch trực tuyến đầu tiên của chúng tôi trong Bài học
Bốn. Những bài tập thực tế này sẽ cung cấp cho bạn những kỹ năng có giá trị và hiểu biết sâu sắc về hoạt động của blockchain Cardano. Hãy tham gia và tiếp tục khám phá thế giới hấp dẫn của Plutus Project-Based Learning 2023.
Lesson 100.3: Safely Storing Keys and Understanding On-Chain vs. Off-Chain Operations
Bài học 100.3: Lưu trữ khóa an toàn và hiểu các hoạt động on-chain và off-chain
Chào mừng bạn đến với Plutus Project-Based Learning 2023, do Gimbal Labs mang đến cho bạn. Chúng tôi đánh giá cao sự quan tâm của bạn đối với bài học này, nơi chúng tôi sẽ đào sâu vào Mục tiêu học tập 100.3: Hiểu cách cất giữ chìa khóa một cách an toàn. Tuy nhiên, khía cạnh quan trọng nhất mà chúng ta sẽ khám phá trong bài học này là mục tiêu học tập này khác biệt đáng kể như thế nào so với hai bài học trước.
Tổng quan bài học: Trong bài học đầu tiên, bạn đã kết nối ví trong trình duyệt web của mình và chúng tôi đã cung cấp một ứng dụng để xác định xem kết nối của bạn có thành công hay không. Trong bài học thứ hai, bạn đã yêu cầu dữ liệu thử nghiệm từ faucet Cardano Testnet và ứng dụng web của chúng tôi đã xác minh sự hiện diện của dữ liệu thử nghiệm trong ví của bạn, có khả năng hiển thị thông báo thành công. Trong bài học thứ ba này, chúng ta bắt gặp một sự khác biệt đáng kể. Chúng tôi không có cách nào để xác nhận liệu bạn có biết cách cất giữ chìa khóa của mình một cách an toàn hay không và sự thiếu chắc chắn này thực sự là một khía cạnh tích cực. Bản chất của công nghệ blockchain nằm ở việc trao quyền cho các cá nhân có quyền kiểm soát tốt hơn. Do đó, chúng ta cần thiết lập một số điểm khác biệt quan trọng.
Hoạt động on-chain so với off-chain: Mặc dù có nhiều hoạt động diễn ra on-chain, nhưng vẫn có một số lượng đáng kể xảy ra off-chain. Không phải mọi thứ diễn ra off-chain đều được ghi lại trực tiếp trên blockchain. Trong khóa học này, chúng ta sẽ khám phá tầm quan trọng của các quy trình off-chain và sự tương tác của chúng với các hoạt động on-chain. Điều này có vẻ hiển nhiên, nhưng cần nhấn mạnh rằng một phần quan trọng trong cuộc sống của chúng ta diễn ra off-chain và sẽ không bao giờ được thể hiện trên blockchain.
Vai trò của niềm tin: Trong cả quá trình thực thi mã off-chain và cuộc sống hàng ngày của chúng ta, niềm tin vẫn là điều cần thiết. Chủ đề này sẽ là một chủ đề định kỳ trong suốt khóa học này. Trong Mô-đun 101, sẽ không có bằng chứng trực tuyến về thành tích của bạn. Sau đó, trong Mô-đun 102, chúng ta sẽ xem xét cách các giao dịch Plutus được thể hiện trên blockchain. Điều quan trọng là bạn phải thận trọng bằng cách không lưu trữ khóa cá nhân của mình trực tuyến, cho dù trong email hay phần mềm năng suất. Điều này cũng áp dụng cho cụm từ hạt giống của bạn, cụm từ mà bạn có thể quen thuộc nếu đã từng tạo ví trình duyệt. Ngoài ra, trong khóa học này, bạn sẽ học cách tạo và quản lý khóa s hoặc ký các tệp khóa trong Mô-đun 102.
Phiên viết mã trực tiếp: Trong suốt khóa học này, chúng tôi sẽ tiến hành các phiên viết mã trực tiếp vào Thứ Tư và Thứ Năm hàng tuần, từ 14:30 đến 16:00 UTC. Bạn có thể tìm thấy danh sách các phiên mã hóa trực tiếp sắp tới và đăng ký chúng thông qua liên kết được cung cấp. Chúng tôi cũng sẽ cung cấp bản ghi của tất cả các phiên viết mã trực tiếp trước đó trên cùng một nền tảng. Mục đích của những video như thế này là cung cấp thông tin tổng quan ngắn gọn, hướng dẫn bạn qua các bước ban đầu của một dự án hoặc nhiệm vụ. Tuy nhiên, trong các phiên mã hóa trực tiếp, chúng tôi sẽ nghiên cứu sâu hơn về các dự án, giải quyết các câu hỏi của bạn và thúc đẩy trải nghiệm học tập tương tác hơn. Chúng tôi khuyến khích sự tham gia của bạn và mong được tương tác với bạn.
Phần kết luận: Một lần nữa xin cảm ơn các bạn đã xem video này và quan tâm đến khóa học của chúng tôi. Trong bài học tiếp theo, chúng ta sẽ xây dựng giao dịch trực tuyến đầu tiên, đánh dấu bước khởi đầu tạo ra bằng chứng cho thấy bạn đã tích cực tham gia khóa học này. Chúng tôi rất vui mừng về cuộc hành trình phía trước và kỳ vọng sự tham gia của bạn.
Lesson 100.4: Minting PPBL Contributor Tokens
Bài 100.4: Đúc token PPBL Contributor
Chào mừng bạn đến với Plutus Project-Based Learning 2023, do GimbaLabs mang đến cho bạn. Chúng tôi rất vui mừng khi có bạn ở đây. Trong bài học này, chúng ta sẽ đi sâu vào việc tạo một bản ghi on-chain để kỷ niệm việc bạn tham gia khóa học này. Mục tiêu học tập của chúng tôi cho ngày hôm nay là đúc token đóng góp PPBL. Hãy chuẩn bị tinh thần, vì chúng ta có rất nhiều điều để thảo luận. Chúng ta sẽ khám phá cách tạo token này bằng cách sử dụng Mesh JS, kết nối của nó với triển khai thử nghiệm của CIP68, cho phép thay đổi siêu dữ liệu được liên kết với token hoặc NFT và cách sửa đổi token của bạn bằng cách sử dụng các tập lệnh xác thực Plutus khác nhau. Những chủ đề này chỉ là một cái nhìn thoáng qua về những gì sắp xảy ra. Hãy bắt đầu mọi thứ bằng cách đi sâu vào quá trình đúc token.
Mã on-chain so với mã off-chain:
Trước khi tiếp tục, chúng ta hãy nói sơ qua về sự khác biệt giữa mã on-chain và off-chain. Mặc dù một số thông tin nhất định có thể được lưu trữ trên blockchain, nhưng điều cần thiết là phải thừa nhận rằng không phải mọi thứ đều có thể hoặc nên được đăng on-chain. Trong suốt khóa học này, chúng ta sẽ cùng nhau khám phá các sắc thái của sự khác biệt này. Khi chúng tôi tiến bộ, bạn sẽ có cơ hội phát triển quan điểm của riêng mình về loại thông tin nào nên được ghi lại on-chain và cách thức ghi lại. Trong biểu mẫu được cung cấp bên dưới video này, bạn có thể viết bất kỳ bí danh nào mà bạn muốn đưa vào token PPBL 2023 của mình. Ví dụ: nếu tôi muốn token của mình được gọi là GimbaLabs
, thì tôi có thể xem bản xem trước của tên token là PPBL 2023 - GimbaLabs
. Việc lựa chọn bí danh đặt ra câu hỏi liệu một người có nên đưa tên đầy đủ của mình vào token hay không mà trở thành một phần của sổ cái vĩnh viễn. Quyết định này tùy thuộc vào bạn và khi chúng ta hoàn thành khóa học, chúng ta sẽ gặp nhiều câu hỏi hơn liên quan đến danh tính phi tập trung hoặc tự chủ và cách liên kết các bản ghi on-chain với các cá nhân thực. Cơ hội sớm này mời bạn suy ngẫm về những câu hỏi này. Nếu bạn không chắc chắn về cách đặt tên cho token của mình, vui lòng tìm kiếm hướng dẫn trong GimbaLabs Discord hoặc đưa mối quan tâm của bạn đến các phiên viết mã trực tiếp. Ngoài ra, chúng ta sẽ khám phá việc xây dựng biểu mẫu và cùng nhau kiểm tra mã nguồn.
Hợp đồng mint Plutus:
Để đúc token PPBL của bạn, chúng tôi đang sử dụng hợp đồng đúc Plutus. Đằng sau hậu trường, giao dịch này sẽ đúc hai token. Chúng tôi sẽ nghiên cứu sâu hơn về vấn đề này khi khám phá triển khai thử nghiệm của CIP68. Vì đây là giao dịch Plutus, bạn phải đảm bảo rằng tài sản thế chấp được đặt trong ví bạn đã chọn. Nếu bạn không quen với khái niệm tài sản thế chấp, đừng lo, vì chúng tôi sẽ trình bày chi tiết về nó trong một bài giảng sắp tới. Bây giờ, chúng ta hãy đi qua quá trình này. Nếu bạn đang sử dụng Nami, hãy nhấp vào biểu tượng của bạn và bạn sẽ tìm thấy node tài sản thế chấp. Bằng cách làm theo lời nhắc, bạn có thể tạo Đầu ra giao dịch chưa chi tiêu (UTXO) mới trong ví của mình. Xác nhận giao dịch bằng cách nhập mật khẩu của bạn và trong giây lát, bạn sẽ thấy một giao dịch chuyển giá trị cho chính bạn. Xin chúc mừng, giờ bạn đã sẵn sàng tương tác với các ứng dụng phi tập trung trên Cardano. Đối với người dùng Eternos, hãy đảm bảo rằng bạn đã kết nối ví Dap, như được đề cập trong bài giảng một. Để đặt tài sản thế chấp trong Eternos, hãy điều hướng đến cài đặt ví của bạn và tìm tùy chọn tài sản thế chấp trong menu. Kích hoạt nó và Eternos sẽ xác minh xem bạn có đủ UTXO cho tài khoản này hay không. Nếu bạn chưa có, nó sẽ hướng dẫn bạn tạo một cái. Trong khóa học này, tôi đang sử dụng cùng một cụm từ ghi nhớ cho cả ví tiền sản xuất của Nami và Eternos, cho phép tài sản thế chấp U
TXO được tạo ra ở Nami để đáp ứng các yêu cầu của Eternos. Mặc dù còn nhiều điều để khám phá về chủ đề này, nhưng tôi mong muốn giữ cho video này ngắn gọn. Nếu bạn có bất kỳ câu hỏi nào liên quan đến tài sản thế chấp hoặc kết nối ví với ứng dụng hoặc nếu bạn cần làm rõ về quy trình đúc token của người đóng góp, hãy nhớ tham gia các phiên mã hóa trực tiếp, nơi chúng tôi háo hức chờ đợi câu hỏi của bạn.
Phần kết luận:
Với việc đúc token của người đóng góp, bạn đã đạt được một cột mốc thú vị. Chúc mừng! Bây giờ bạn đã sẵn sàng để tiến về phía trước. Mô-đun số 101 sẽ được phát hành vào ngày 20 tháng 3, tiếp theo là mô-đun 102 và 103 vào ngày 27 tháng 3. Chúng tôi rất biết ơn sự hiện diện của bạn và háo hức kỳ vọng tiếp tục cuộc hành trình học tập này với bạn. Cho đến lần sau!
Lesson 101.1: Write Your First Smart Contract.
Bài học 101.1: Viết hợp đồng thông minh đầu tiên của bạn.
Đây là bài học đầu tiên trong Mô-đun 101: Viết hợp đồng thông minh đầu tiên của bạn
. Hãy bắt đầu. Mục tiêu học tập đầu tiên nói, Tôi có thể biên dịch trình xác thực thành Không xác định Kiểu Plutus Core
. Như bạn có thể thấy, có một số thuật ngữ ngôn ngữ mới trong mục tiêu học tập này. Chúng tôi sẽ đề cập đến tất cả các thuật ngữ này trong vài bài học tiếp theo. Nó có nghĩa là gì để biên dịch? Trình xác thực là gì? Không xác định Kiểu Plutus Core là gì?
Suy nghĩ lâu dài, tôi muốn bạn xem mình là một phần của cuộc hành trình mà nhiều người đang cùng nhau thực hiện. Ngay bây giờ, ở phần cuối của mô-đun này, bạn sẽ thấy bốn cách để biên dịch trình xác thực thành Không xác định Kiểu Plutus Core, thường được gọi là UPLC. Vào thời điểm chúng ta hoàn thành khóa học này, có thể chắc chắn rằng sẽ có những cách mới để thực hiện điều này. Toàn bộ hệ sinh thái Cardano hiện đang ở chế độ phát triển sâu. Các ngôn ngữ mới để viết trình xác thực đang được tạo khi chúng ta nói chuyện và các công cụ mới sẽ xuất hiện trực tuyến hàng tuần.
Vui lòng hiểu rằng những gì bạn sẽ thấy trong mô-đun này là phần giới thiệu và cũng là ảnh chụp nhanh. Chúng tôi sẽ tiếp tục cập nhật nó trong những tháng và năm tới. Vậy, Không xác định Kiểu Plutus Core trông như thế nào? Ở cuối một quy trình mà chúng ta sẽ bắt đầu khám phá trong mô-đun này, bạn có thể có một tệp giống như thế này. Nó có phần mở rộng. Plutus
, nhưng không nhất thiết phải có. Điều quan trọng nhất mà bạn sẽ thấy ở đây là chuỗi lục giác CBOR này. Như tôi đã nói, ở cuối quy trình biên dịch gồm nhiều bước, chúng tôi nhận được một tệp chứa một số CBOR. CBOR là viết tắt của Đại diện đối tượng nhị phân ngắn gọn. Tùy thuộc vào mức độ bạn muốn đi sâu vào quá trình phát triển Cardano, bạn có thể muốn đọc một chút về CBOR, nhưng điều đó không cần thiết để chúng tôi bắt đầu.
Điều đầu tiên chúng tôi muốn bạn biết là một tệp như thế này là mục tiêu của chúng tôi và chúng tôi sẽ bắt đầu xem xét một số cách khác nhau để tạo tệp này. Chúng ta thường gọi tập tin này là tập lệnh Plutus khi nói về UPLC đã biên dịch. Nếu ngôn ngữ của chúng tôi không rõ ràng, chỉ cần đảm bảo đặt câu hỏi trong quá trình mã hóa trực tiếp hoặc trên Discord. Chúng ta sẽ tiếp tục xem lại câu hỏi Không xác định Kiểu Plutus Core trông như thế nào trong suốt khóa học này và chúng ta sẽ giải quyết câu hỏi này theo một số cách khác nhau trong một vài mô-đun tiếp theo.
. Vì vậy, chúng tôi đã nói một chút về UPLC, nhưng trình xác thực mà bạn đang nói đến là gì? Đó là những gì chúng ta sẽ xem xét trong bài học tiếp theo. Hẹn gặp lại ở đó`.
Lesson 101.2: Understanding the role that UPLC
Bài 101.2: Tìm hiểu vai trò của UPLC
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbal Apps. Nhờ vào sự giảm cân. Trong bài học này, chúng ta sẽ xem Mục tiêu học tập 101.2: Hiểu vai trò của UPLC trong ứng dụng phi tập trung trên Cardano.
Để bắt đầu xem xét vai trò của UPLC trong một ứng dụng phi tập trung, chúng ta cũng cần hỏi, Trình xác thực là gì?
Bạn đã bắt đầu thấy từ này trong bài học trước và trong bài học này, tôi hy vọng sẽ cung cấp cho bạn một số Context để suy nghĩ về cách những mảnh này khớp với nhau.
Trước khi chúng tôi tiếp tục, một lưu ý nữa về việc đặt tên. Bạn có thể thấy rằng tôi đang sử dụng thuật ngữ UPLC (Không định Kiểu Plutus Core) thay thế cho nhau ở đây với thuật ngữ Plutus Core. Thông thường, các nhà phát triển sẽ sử dụng các thuật ngữ này thay thế cho nhau và tôi chỉ muốn bạn lưu ý điều đó.
Để bắt đầu nghĩ về Plutus Core và trình xác thực, hãy so sánh ví của bạn với địa chỉ hợp đồng Cardano. Nếu bạn có bất kỳ loại ví Cardano nào, thì bạn đã quen với ý tưởng rằng bạn có một địa chỉ và bạn là người có thông tin đăng nhập có thể mở khóa tiền tại địa chỉ ví đó. Địa chỉ hợp đồng hoạt động theo cùng một cách. Chúng tôi có thể khóa ADA hoặc các token khác tại địa chỉ hợp đồng.
Địa chỉ ví của bạn được lấy từ một thứ gọi là khóa công khai. Bạn có thể đã quen thuộc với khóa công khai và nếu chưa biết, bạn sẽ xem xét chúng trong Mô-đun 102. Địa chỉ hợp đồng được lấy từ Plutus Core và tùy thuộc vào Kiểu địa chỉ mà token bị khóa, có nhiều cách khác nhau để mở khóa chúng.
Nếu bạn có token trong ví được lấy từ khóa công khai, bạn có thể ký một giao dịch để mở khóa các token đó. Ngoài ra, nếu token bị khóa trong địa chỉ hợp đồng bắt nguồn từ Plutus Core, chúng tôi phải tuân theo các quy tắc nhất định để mở khóa các token đó. Quá trình kiểm tra các quy tắc đó được gọi là xác thực và những gì Plutus cho phép chúng tôi làm là viết cái được gọi là tập lệnh trình xác thực để xác định các quy tắc đó.
Với suy nghĩ này, đây là những gì chúng ta sẽ xây dựng trong mô-đun này: Chúng ta sẽ viết một tập lệnh biên dịch sang Plutus Core và luôn thành công. Nói cách khác, nếu chúng tôi sử dụng tập lệnh để tạo địa chỉ hợp đồng và chúng tôi khóa một số token ở đó, thì bất kỳ ai cũng có thể đến và lấy các token đó.
Chúng tôi sẽ bắt đầu bằng cách xây dựng trình xác thực bằng ba ngôn ngữ khác nhau: PlutusTX, Aiken và PluTs
. Sau đó, trong Mô-đun 102, bạn sẽ thấy cách tạo địa chỉ từ tập lệnh luôn thành công đã được biên dịch sang Plutus Core. Cuối cùng, trong Mô-đun 102 và 201, chúng ta sẽ bắt đầu xem các cách tương tác với hợp đồng này.
Vào cuối mô-đun này, sau khi chúng ta xây dựng luôn thành công ở một số ngôn ngữ khác nhau, chúng ta sẽ xem lại các mục tiêu học tập 100.1 và 100.2 để xem chúng ta đang làm như thế nào. Được rồi, hãy xắn tay áo lên và nhảy vào.
Lesson 101.3: use Demeter.run
Bài 101.3: sử dụng Demeter.run
Cuối cùng cũng đến lúc bắt đầu xây dựng! Trong bài học này, chúng ta sẽ sử dụng Demeter.run để biên dịch tập lệnh Plutus đầu tiên của mình. Trên trang bài học này, một số liên kết được cung cấp. Hãy mở chúng ra. Đầu tiên là trang chủ Demeter.run. Chúng ta sẽ sử dụng cái này trong chốc lát. Liên kết tiếp theo là trang web TX Pipe. Đây là nhóm đã xây dựng Demeter.run. Đây là công cụ đầu tiên trong số nhiều công cụ khác nhau mà chúng tôi sẽ giới thiệu với bạn trong khóa học này.
Nói nhanh về điều này: Tôi thực sự khuyên bạn nên khám phá các dự án mà TX Pipe đã tạo, tìm hiểu về nhóm và nếu bạn quan tâm, hãy tham gia Discord của họ. Đây là một cộng đồng tuyệt vời với đầy những người tài giỏi đang xây dựng những thứ mà tất cả chúng ta sẽ sử dụng. Và nếu bạn thấy công việc của chúng thực sự phù hợp với bạn, thì đây là một nơi tuyệt vời để bạn trở thành cộng tác viên.
Liên kết tiếp theo là chương trình Plutus Pioneers. Trong phiên bản mới nhất của Plutus Pioneers, Demeter.run cũng được đề cập trong bài học này. Ngay tại đây, chúng tôi đang thiết lập môi trường phát triển của mình. Nếu xem video này, bạn sẽ thấy một cách tiếp cận để thiết lập Demeter.run và bạn sẽ thấy một cách khác để thiết lập môi trường phát triển Plutus cục bộ phụ thuộc vào Docker. Chúng tôi sẽ không đề cập đến cách tiếp cận Docker trong Plutus PBL vì nó đã được đề cập ở đây. Thường xuyên nhất có thể, chúng tôi sẽ không cố gắng lặp lại những gì người khác đã xây dựng.
Chương trình Plutus Pioneers là một cách tuyệt vời để học cách phát triển Plutus và thậm chí bạn có thể thấy rằng Plutus PBL và Plutus Pioneers thực sự bổ sung cho nhau. Cuối cùng, chúng ta có mẫu PPBL 2023 Plutus do GimbaLabs cung cấp. Chúng ta sẽ sử dụng nó khi thiết lập phiên bản Demeter.run.
Bây giờ, chúng ta đã sẵn sàng để xem từng bước cách sử dụng Demeter.run để biên dịch PlutuScript đầu tiên của bạn. Trước khi chúng ta bắt đầu, có một vài điều bạn nên biết. Đây là lần đầu tiên chúng tôi cùng nhau xây dựng. Mục đích của những video tổng quan này là càng ngắn gọn càng tốt. Điều tôi sẽ làm ngay bây giờ là hướng dẫn bạn qua từng bước trong số này, nhưng tôi sẽ không đề cập đến tất cả các chi tiết. Ví dụ: khi đến lúc bắt đầu sử dụng Demeter.run, tôi sẽ để bạn tạo một tài khoản mới và tôi sẽ cho rằng khi bạn đã thiết lập tài khoản đó, bạn đã sẵn sàng truy cập trang dự án của bạn.
Trong các video giới thiệu này, bạn có thể kỳ vọng chúng tôi cho bạn thấy thành công sẽ như thế nào và cung cấp cho bạn một số mẹo về cách đạt được điều đó. Nếu bạn gặp khó khăn với bất kỳ chi tiết nào, chúng tôi luôn sẵn sàng trợ giúp tại các phiên viết mã trực tiếp hàng tuần và trên GimbaLabs Discord. . Vì vậy, sang bước một: vui lòng tạo một tài khoản mới trên Demeter.run và sau đó tìm đường đến trang dự án. Ở đó, bạn sẽ có thể tạo một dự án mới. Tôi gọi là của tôi là 'PPBL 2023'. Sau khi dự án của bạn được tạo và bạn đã chọn một số cài đặt cơ bản, bạn có thể mở nó bên trong dự án. Bạn có thể tạo một hoặc nhiều không gian làm việc. Tôi hiện đang có hai chạy. Đối với mỗi người trong số họ, tôi đã chọn một phiên bản cỡ trung bình trên mạng tiền sản xuất. Bạn có thể nhấp vào node này tại đây, 'Tạo Mới', để tạo một không gian làm việc mới. Khi bạn làm như vậy, bạn sẽ có thể sao chép một kho lưu trữ hiện có và vâng, chúng tôi muốn làm điều đó.
Lấy URL của mẫu PPBL 2023 Plutus. Tôi sẽ sao chép nó và dán nó ở đây. Chọn 'Ứng dụng Plutus', không gian làm việc cỡ trung bình và mạng tiền sản xuất, sau đó tạo nó. Tôi sẽ không nhấn vào node 'Tạo' ngay bây giờ vì tôi đã làm điều đó rồi và bước này mất khoảng năm phút để bắt đầu. Khi không gian làm việc của bạn đang chạy, bạn có thể điều tra nó. Bạn có thể thấy rằng của tôi đã chạy được khoảng một giờ từ kho lưu trữ mà chúng ta vừa cùng nhau xem xét và tôi có chỉ báo đang chạy ngay tại đây.
Bây giờ không gian làm việc của tôi đang chạy, tôi có thể mở Mã VS trong trình duyệt web của mình. VS Code là một môi trường phát triển tích hợp mà bạn cũng có thể tải xuống trên máy tính của mình, nhưng thật tiện lợi khi nó được cung cấp ở đây trong trình duyệt. Tôi có thể đóng tab chào mừng và sau đó bạn có thể thấy lệnh này ngay tại đây. Nó nói 'Chuyển đổi thiết bị đầu cuối'. Đối với tôi, node điều khiển và dấu lùi, nằm ở góc trên cùng bên trái bàn phím của tôi. Nếu tôi nhấn vào đó, tôi có thể thấy rằng thiết bị đầu cuối ở đây ở cuối trang được bật và tắt. . Vì vậy, nếu bạn không thể nhìn thấy thiết bị đầu cuối, chỉ cần nhấn 'Control + Backtick' để có thể nhìn thấy nó.
Khi ở đó, bạn sẽ chạy hai lệnh: 'cập nhật cabal' và quá trình này có thể mất vài phút trong lần chạy đầu tiên, sau đó là 'cabal repl', cũng có thể mất một chút thời gian trong lần đầu tiên bạn điều hành nó. Lần đầu tiên tôi chạy chương trình này, mất khoảng 20 phút để tải hoàn toàn, nhưng bây giờ tôi đã thực hiện xong một lần, bạn có thể thấy đó là thời gian thực. Nó không mất nhiều thời gian bây giờ.
Trước khi tôi chạy bất kỳ lệnh nào trong REPL của mình, tôi cần phải làm một việc nữa. Tôi cần tạo một thư mục mới có tên là 'Đầu ra' vì đó là nơi trình biên dịch của tôi muốn ghi tệp. Lần đầu tiên, chúng ta hãy xem trong thư mục 'nguồn'. Có một thư mục con 'luôn thành công' và sau đó là hai tệp bên trong thư mục đó: 'trình biên dịch' và 'trình xác thực'. Trước tiên hãy xem 'trình biên dịch'. Trình biên dịch này lấy một trình xác thực và ghi nó vào một tệp mới. Và đây là một quyết định tùy tiện, nhưng tôi chỉ muốn bạn bắt đầu cảm thấy thoải mái với việc điều hướng dự án này.
Trình xác thực được ghi vào thư mục 'Đầu ra' và với tên tệp 'luôn thành công. Plutus
'. Nếu chúng tôi không tạo thư mục 'Đầu ra', chúng tôi sẽ gặp lỗi. Trong khi chúng tôi ở đây, hãy xem trình xác thực. Đây là trình xác thực đơn giản nhất mà tôi biết cách viết. Nếu đây là lần đầu tiên bạn nhìn thấy Trình xác thực, xin chúc mừng, nhưng thực sự vẫn chưa có nhiều ở đây. Tất cả những gì tôi muốn làm ngay bây giờ là cung cấp cho bạn cái nhìn ban đầu về quy trình biên dịch đi từ một tệp Haskell như tệp này với một trình xác thực trong đó cho đến một tệp tập lệnh Plutus.
Bây giờ, để làm điều đó, chúng tôi sẽ sử dụng một Hàm được xác định trong tệp 'trình biên dịch' của chúng tôi: 'writeAlwaysSucceedsScript()'. Tôi có thể nhập
nó xuống đây, và nếu tôi bắt đầu viết nó và nhấn tab, tôi có thể thấy rằng tính năng tự động hoàn thành hoạt động. Đó là một dấu hiệu tốt. Điều đó có nghĩa là Hàm này đã được tải vào REPL của tôi. Nếu tôi nhấn enter để chạy nó, tôi sẽ nhận được thông báo này. Ngay bây giờ, hãy tìm trong thư mục 'Đầu ra'. 'Đầu ra' có một tệp mới trong đó có tên là 'luôn thành công. Plutus
', giống như chúng tôi đã nói ở đây. Và nếu chúng tôi mở nó ra, đây là Script Plutus đầu tiên của chúng tôi. Tất nhiên, đây mới chỉ là khởi đầu.
Ở phần tiếp theo
Trong bài học này, chúng ta sẽ xem nhanh cách bạn có thể chạy dự án này trên máy tính của mình, sau đó chúng ta sẽ xem xét một số cách khác để viết tập lệnh Plutus 'luôn thành công', đầu tiên là trong ICFP và sau đó là trong Plutus. Tôi đang mong chờ nó. Hẹn gặp bạn ở đó.
Lesson 101.4: Setting up a local Plutus (Nix)
Bài 101.4: Thiết lập Plutus cục bộ (Nix)
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Chúng tôi rất vui vì bạn đã ở đây. Trong video này, tôi sẽ cung cấp thông tin tổng quan về Mục tiêu học tập 101.4: Thiết lập môi trường phát triển Plutus cục bộ bằng Nix và biên dịch PlutuScript. Đây là các bước chúng ta sẽ làm theo, nhưng có một số điều quan trọng mà bạn cần biết về khóa học này. Đối với mỗi bước, tôi sẽ chỉ cho bạn cách bắt đầu và cung cấp một số mẹo, nhưng tôi sẽ không hướng dẫn bạn tất cả các chi tiết nhỏ mà bạn sẽ cần ở mỗi bước. Ý tưởng của khóa học dựa trên dự án này là cung cấp cho bạn một điểm khởi đầu để bạn có thể tự mình thử mọi thứ. Nếu gặp khó khăn, bạn luôn có thể tham gia cùng chúng tôi tại mã hóa trực tiếp hoặc trên Discord để đặt câu hỏi.
Công bằng mà nói, chúng tôi đã chọn một cái khó để ném bạn vào. Các nhà phát triển Plutus có kinh nghiệm sẽ cho bạn biết rằng việc thiết lập một môi trường cục bộ để viết PlutusTX có thể là một trong những điều khó khăn nhất mà chúng từng làm khi học Plutus. Đây là một trong những lý do khiến các nhà phát triển vui mừng khi các ngôn ngữ mới để ghi vào Plutus Core hiện đang trực tuyến. Và tất nhiên, chúng ta sẽ xem xét hai trong số các ngôn ngữ đó, Aiken và PluTs
, trong hai bài học tiếp theo. Tuy nhiên, chúng tôi muốn bạn có tùy chọn này. Bạn đang ở trong một cộng đồng có nhiều người đã thực hiện các bước này và sẽ sẵn lòng trợ giúp bạn nếu bạn gặp khó khăn.
Hãy mở một số liên kết. Đầu tiên là trang web chính thức của Nix mà chúng ta sẽ sử dụng cho Bước 1. Liên kết tiếp theo là kho lưu trữ Plutus Apps từ Input Output HK trên GitLab. Cuối cùng là mẫu PPBL 2023 Plutus mà chúng ta đã sử dụng trong Bài 101.3. . Vì vậy, hãy đi từng bước một. Bạn sẽ biết mình đã thành công nếu bạn có thể biên dịch tệp Plutus từ PlutusTX trên máy tính của chính mình.
Ở cuối trang, bạn có thể làm theo các bước này và cũng có thể sử dụng các liên kết được nhúng cho Bước 1. Chỉ cần làm theo hướng dẫn tại đây: sử dụng node tải xuống, chọn hệ điều hành của bạn và chọn loại cài đặt bạn muốn để tạo ra. Đọc tài liệu cẩn thận để đảm bảo bạn hiểu đúng. Nếu thành công, bạn sẽ có thể chạy nix-env --version
, và bạn sẽ thấy rằng Nix đã được cài đặt. Tài liệu về Nix rất tuyệt vời và có một số tài nguyên trên trang tìm hiểu này đáng để xem qua để có ý tưởng cơ bản về Nix là gì và cách thức hoạt động của nó.
Tiếp theo, chúng tôi sẽ sao chép mẫu PPBL 2023 Plutus từ Gimbalabs. Tôi sẽ chuyển sang thiết bị đầu cuối của mình và tạo một thư mục mới. Chúng tôi sẽ gọi nó là PPBL 2023 cho khóa học này. Sau đó tôi có thể cd
vào đó. Đây là một thư mục trống mới, và tôi có thể sao chép hai kho lưu trữ ngay tại đây. . Vì vậy, trước tiên, tôi muốn có mẫu PPBL 2023 Plutus từ Gimbalabs. Bạn chỉ cần sao chép lệnh này ngay tại đây và chúng tôi sẽ thực hiện việc đó. Và sau đó, trước khi tôi thậm chí cd
vào cái đó, chúng ta cũng hãy sao chép kho ứng dụng Plutus từ IOHK. Sẽ mất một chút thời gian để sao chép Ứng dụng Plutus vì đây là một dự án lớn. Nhưng sau khi hoàn tất, bạn sẽ có thể thấy rằng cả hai dự án mới này đều nằm trong thư mục PPBL 2023 chuyên dụng của bạn. Tôi sẽ tiếp tục sử dụng một thư mục như thế này trong suốt khóa học khi chúng tôi thêm các dự án mới và thực hiện các thay đổi đối với các dự án hiện có.
Tiếp theo, chúng ta có thể thay đổi thư mục
vào dự án Ứng dụng Plutus mới của chúng tôi và sau đó kiểm tra phiên bản mới nhất, tính đến thời điểm tạo video này, là phiên bản 1.2.0. Tài liệu trên trang này sẽ được cập nhật thường xuyên hơn so với video này, vì vậy nếu bạn đang xem video này vài tháng sau tháng 3 năm 2023, vui lòng kiểm tra bên dưới để đảm bảo rằng phiên bản chúng tôi đang sử dụng không thay đổi. Quay lại thiết bị đầu cuối của tôi, tôi sẽ chạy các lệnh sau: cd PlutusApps
và sau đó là git checkout v1.2.0
. Bây giờ chúng ta đang ở đúng nhánh, và đây là lúc niềm vui bắt đầu.
Kể từ khi tạo video này và khởi chạy khóa học này, Nix thực sự đang trong quá trình chuyển đổi. Lệnh mới có tên nix develop
sẽ thay thế lệnh có tên nix-shell
. Điều đầu tiên để bạn thử trong thư mục Ứng dụng Plutus của mình sau khi bạn đã kiểm tra v1.2.0 là chạy nix develop
. Nó có thể hoạt động, nhưng bạn cũng có thể gặp lỗi. Cá nhân tôi thấy nix develop
không hoạt động tốt trên thiết lập của tôi, vì vậy tôi phải thêm GC_DONT_GC=1
này trước lệnh nix develop
để nó hoạt động. Chúng ta sẽ nói nhiều hơn về lý do tại sao lại xảy ra trường hợp này khi mã hóa trực tiếp và chúng tôi luôn tìm kiếm những người đóng góp có thể giúp ghi lại một số chi tiết tốt hơn về Nix, như cái này. Bạn có thể tham gia nhóm nghiên cứu một số chi tiết này tại Gimbalabs.
Trên một số thiết bị, ngay cả nix develop
mới cũng không hoạt động, vì vậy chúng tôi có thể sử dụng phiên bản cũ hơn, nix-shell
, để tạm thời thực hiện những điều tương tự. Một lần nữa, đây là thời điểm chuyển đổi, không chỉ đối với Nix mà còn đối với toàn bộ hệ sinh thái phát triển Plutus. . Vì vậy, chúng tôi khuyến khích bạn thử các phương pháp này và nếu không có phương pháp nào hiệu quả, hãy liên hệ. Chúng tôi sẽ sẵn sàng giúp đỡ, cho dù bạn chọn cách tiếp cận nào. Ngay cả khi nó hoạt động, sẽ mất một ít thời gian để Plutus Apps khởi động và chạy trong lần đầu tiên bạn sử dụng. Đó là bởi vì Nix sẽ tải xuống tất cả các phụ thuộc của dự án vào thiết bị của bạn. Một trong những điểm mạnh của Nix là cách nó quản lý các gói để chúng tôi có thể tạo lại môi trường phát triển một cách nhất quán trên các thiết bị.
Hãy quay trở lại thiết bị đầu cuối của tôi. Bạn có thể thấy tôi đang ở trong thư mục Ứng dụng Plutus của mình ở phiên bản 1.2.0 và tôi đã chạy thư mục này rồi nên bước này sẽ không mất quá nhiều thời gian. Chỉ cần một lúc ngay tại đó. Đây là mục tiêu của bạn: đạt đến điểm mà nix develop
hoặc nix-shell
đang hoạt động. Và khi bạn đến đó, như bạn có thể thấy, bạn sẽ có thể đứng dậy và chạy nhanh lần thứ hai và hơn thế nữa. Tôi sẽ chuyển cd
ra khỏi thư mục này và vào mẫu Plutus PPBL 2023 mà tôi đã nhân bản trước đó trong video này. Sau khi ở trong mẫu PPBL 2023 Plutus trong môi trường nix develop
của tôi, tôi có thể chạy cabal repl
. Và khi tôi thực hiện, nếu mọi thứ hoạt động thành công, bạn sẽ thấy thông báo này: 'Ok, hai mô-đun đã tải: trình biên dịch dấu chấm luôn được tải.' Điều này có thể trông quen thuộc từ Demeter. Chạy.
Một lần nữa, chạy cabal repl
sẽ mất một chút thời gian trong lần đầu tiên bạn thực hiện vì tất cả các phụ thuộc của bạn sẽ được cài đặt. Nhưng khi bạn hoàn thành bước đó lần đầu tiên, bạn sẽ có thể nhanh chóng chuyển sang chế độ phát triển trong tương lai. Sau khi bạn chạy cabal repl
thành công, bạn có thể sử dụng tập lệnh writeAlwaysSucceeds
để viết trình xác thực của chúng tôi lần đầu tiên. Tôi có thể nhấn Ctrl+D để thoát khỏi REPL, Ctrl
+D để rời khỏi Ứng dụng Plutus, sau đó tôi có thể điều hướng đến mẫu PPBL 2023 nơi tôi có thể thấy thư mục Đầu ra của mình, bên trong có alwaysuced
. Plutuscript
mới của tôi. Chúng ta hãy nhìn vào nó.
Nếu bạn đã xem bài học trước về Demeter.run, kết quả này sẽ giống như vậy. Nếu bạn nhìn thấy điều này lần đầu tiên, xin chúc mừng! Đây là tập lệnh Plutus đầu tiên của bạn. Và nếu bạn đã đạt đến điểm chuẩn bị cho môi trường phát triển của mình tại địa phương, thì bạn đang ở trong tình trạng tuyệt vời. Bây giờ, chúng tôi vẫn chưa nói về những gì chúng tôi có thể làm với các tập lệnh Plutus. Điều đó sẽ xuất hiện trong Mô-đun 102. Và trước khi đi đến điểm đó, chúng ta sẽ xem xét thêm hai cách để viết trình xác thực luôn thành công bằng ngôn ngữ Aiken và PluTs
. Hẹn gặp lại ở Bài 5.
Lesson 101.5: write our first validators
Bài học 101.5: viết trình xác thực đầu tiên của chúng tôi
Xin chào và chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Trong bài học này và bài học tiếp theo, chúng ta sẽ viết trình xác thực đầu tiên của mình bằng các ngôn ngữ khác ngoài PlutusTX. Trong video này, chúng ta sẽ tập trung vào việc viết trình xác thực luôn thành công trong Aiken, sau đó trong Bài 101.6, chúng ta sẽ xem cách viết Trình xác thực luôn thành công tương tự trong Plutus.
Aiken là gì? Aiken là ngôn ngữ lập trình mới để viết hợp đồng thông minh trên Cardano. Nếu bạn có nền tảng về phát triển Rust, bạn có thể thấy mình quen thuộc với Aiken. Bây giờ, ngôn ngữ Aiken được viết bằng Rust, nhưng Aiken không phải là Rust.
Như mọi khi, video này sẽ không đề cập đến mọi chi tiết để luôn thành công trong Aiken. Thay vào đó, tôi sẽ cung cấp cho bạn tổng quan cấp cao về bốn bước này. Đầu tiên, chúng ta phải cài đặt Rust. Sau đó, chúng ta có thể cài đặt Aiken. Sau đó, chúng ta sẽ làm theo tài liệu Aiken thông qua hướng dẫn Hello World. Và khi hoàn tất, chúng tôi sẽ quay lại và thực hiện một số thay đổi để làm cho Trình xác thực đơn giản hơn nữa, để làm cho trình xác thực luôn thành công.
Trên trang bài học, bạn sẽ thấy có hai liên kết. Ngôn ngữ lập trình Aiken sẽ mở nó và một liên kết trực tiếp đến tài liệu mà bạn cũng có thể truy cập ngay tại đây. Khi chúng tôi xem tài liệu, bạn có thể thấy rằng để cài đặt Aiken từ nguồn, chúng tôi cần một chương trình có tên là Cargo đã cài đặt. Ghi chú ngay tại đây cho biết Cargo là người quản lý gói hàng cho Rust. Để có quyền truy cập vào Cargo, trước tiên chúng ta phải cài đặt Rust. . Vì vậy, tôi sẽ theo liên kết này ngay tại đây và bạn có thể đọc qua các bước cài đặt. Tìm hiểu chi tiết về Rust nằm ngoài phạm vi của video này, nhưng đó là một ngôn ngữ lập trình thực sự hữu ích. Và một lần nữa, bạn có thể làm theo tài liệu ngay tại đây. Bạn sẽ biết mình đã thành công nếu có thông báo cho biết Rust đã được cài đặt ngay bây giờ hoặc nếu chúng tôi có thể kiểm tra phiên bản của nó trên dòng lệnh. Hãy thử xem.
Trong video này, tôi sẽ làm việc từ Visual Studio Code thay vì cửa sổ thiết bị đầu cuối vì tôi muốn có thể xem thiết bị đầu cuối tích hợp ngay tại đây cũng như một số thư mục mà tôi đã bắt đầu tạo trong bài học trước. Hãy vào thư mục chính của tôi và đảm bảo rằng tôi đã cài đặt Cargo. hàng hóa --version
. . Vì vậy, bạn sẽ biết mình đã cài đặt Rust thành công nếu bạn có thể xem số phiên bản của Cargo, đây là trình quản lý gói Rust. Tuyệt vời! Nếu bạn đã làm được đến bước này, bạn đang ở trong tình trạng tốt. Và bây giờ chúng ta có thể quay lại tài liệu Aiken và thử cài đặt Aiken.
cargo install
là một lệnh toàn cầu. Điều này có nghĩa là nếu bạn đang ở trong cửa sổ đầu cuối, thì bạn đang ở thư mục nào không quan trọng. Nếu bạn chạy cargo install
như thế này, thì Aiken sẽ được cài đặt và bạn sẽ có thể sử dụng nó từ bất cứ nơi nào trên tài khoản của bạn. Hãy thử cái này. Tôi sẽ sao chép dòng này, quay trở lại Visual Studio Code và chạy cargo install
, giống như một vài điều chúng tôi đã thực hiện. Điều này sẽ mất vài phút trong lần đầu tiên tôi chạy nó. Sau vài phút, quá trình cài đặt sẽ hoàn tất. Tôi có thể xóa thiết bị đầu cuối của mình và sau đó tôi có thể chạy Aiken --help
để đảm bảo rằng Aiken đã được cài đặt. Trông tôt đây. Và điều tương tự, Aiken --version
, và tôi có thể thấy rằng tôi đã cài đặt phiên bản hiện tại. Tuyệt vời! Hãy quay trở lại tài liệu.
Tài liệu về Aiken thật tuyệt vời và những thứ như khóa học cấp tốc về UTXO này chắc chắn sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động của blockchain Cardano. Chúng tôi sẽ đề cập đến một số khái niệm tương tự ở phần sau của khóa học này, nhưng nếu bạn muốn xem trước, chúng tôi chắc chắn khuyên bạn nên xem qua khóa học cấp tốc về UTXO của Aiken. Hiện tại, chúng ta sẽ tập trung vào ví dụ Hello World được cung cấp ở đây trong tài liệu. Hãy xem chúng ta có thể viết một hợp đồng thông minh nhanh như thế nào.
Trước hết, tôi nhận thấy rằng nó nói rằng chúng ta có thể dàn dựng một dự án mới chỉ bằng cách sử dụng lệnh Aiken new
này. . Vì vậy, tôi sẽ quay lại Visual Studio Code của mình và tôi sẽ chạy các lệnh ở đây trong PPBL 2023. Nhưng trước tiên, tôi sẽ tạo một thư mục mới. Hãy gọi nó là 'học Aiken'. Được rồi, bây giờ bạn có thể thấy trong thư mục PPBL 2023 của tôi, tôi hiện có thư mục con 'học Aiken' và tôi có thể chuyển sang thư mục đó. Tuyệt vời! Đó là nơi tôi sẽ hoàn thành hướng dẫn này, có vẻ như nó sẽ tạo một thư mục mới có tên là 'hello world'. Tôi chỉ đơn giản là sao chép hai lệnh này, chạy Aiken new
, rồi cd
vào 'hello world'. Điều đó có hiệu quả không? Có vẻ tốt! Và sau đó nó nói tôi có thể chạy Aiken check
. Được rồi, không có lỗi, không có cảnh báo. Tôi đoán tôi thích những gì tôi nhìn thấy.
Bây giờ chúng ta đã thiết lập xong, nếu tôi cuộn xuống trang, tôi sẽ tìm thấy tiêu đề phụ có nội dung 'Trình xác thực đầu tiên của chúng tôi' và đó chính xác là thứ tôi muốn xây dựng hôm nay. Bây giờ, tôi nhận thấy rằng trình xác thực này được gọi là 'helloworld.ak' và nó được tạo bên trong thư mục 'trình xác thực'. Hãy đi làm điều tương tự. Nhưng khi tôi nhảy vào thư mục 'trình xác thực' để tạo một tệp mới, tôi không nghĩ mình muốn gọi đây là 'xin chào thế giới'. Mục tiêu của tôi là viết 'luôn thành công', vì vậy hãy làm điều đó. Được rồi, 'luôn thành công.ak', và tôi có thể bắt đầu từ đây, bản soạn sẵn được cung cấp.
Bây giờ, một số từ này hoàn toàn mới đối với chúng tôi vì chúng tôi chưa thực sự xem xét chúng trong PlutusTX. Nhưng bạn có thấy ngay tại đây nó ghi Datum', Redeeemer
' và 'Context' không? Đây là những thuật ngữ mà chúng ta sẽ rất quen thuộc vào cuối khóa học này. Bạn sẽ thấy điều này trong PlutusTX, bạn sẽ thấy nó trong Plutus và chúng tôi thấy nó ngay tại đây trong Aiken. Vấn đề là, trình xác thực này đã làm được nhiều hơn những gì chúng tôi muốn. Tôi không muốn kiểm tra bất kỳ logic nào, tôi chỉ muốn nó luôn thành công. . Vì vậy, hãy thay đổi điều này để làm cho nó hoạt động.
Trước hết, tôi không cần bất kỳ Kiểu nào được xác định đặc biệt, vì vậy tôi sẽ loại bỏ chúng. Tiếp theo, tôi có thể nói một cách đơn giản rằng Datum' là một Kiểu dữ liệu, 'Redeemer' là một Kiểu dữ liệu và thậm chí 'Context' cũng là một Kiểu dữ liệu. Và bất kể Kiểu này là gì, hàm này sẽ trả về một giá trị boolean, có nghĩa là đúng hoặc sai. Nhưng nếu mục đích của trình xác thực này là luôn thành công, thì có lẽ chúng ta muốn nó luôn trả về giá trị đúng, bất kể điều gì xảy ra. Và đó chính xác là cách viết trình xác thực 'luôn thành công' trong Aiken.
Trong phần hướng dẫn ở đây, bạn sẽ thấy nó nói rằng, 'Trình xác thực đầu tiên của chúng tôi còn thô sơ và chúng tôi đã làm cho nó thậm chí còn hơn thế nữa để làm cho điều này luôn thành công. Nhưng dù sao thì chúng ta hãy cố gắng xây dựng nó.' Nó nói tất cả những gì tôi phải làm là chạy `
Bản dựng Aiken. Hãy xem nếu nó hoạt động. Control + backtick để mở lại thiết bị đầu cuối và sau đó chúng ta có thể chạy
Aiken build`. Tôi không có lỗi nào và tôi nhận được tám cảnh báo. Vậy điều đó có ý nghĩa gì? Hãy kiểm tra các cảnh báo trong giây lát.
Điều nó cảnh báo tôi là tôi có cả đống mã không sử dụng, điều này có thể thực sự kém hiệu quả. Tôi cá là tôi có thể loại bỏ một số mã này ngay tại đây. Nếu muốn, bạn có thể xem qua và cố gắng khắc phục từng cảnh báo này như một bài tập. Một số trong số chúng là khá dễ dàng. Rốt cuộc, đây là những cảnh báo và không phải lỗi. . Vì vậy, có vẻ như mọi thứ đã hoạt động.
Quay trở lại tài liệu, tôi có thể thấy rằng lệnh này tạo ra một tệp Plutus.json' ở thư mục gốc của dự án của tôi. Bây giờ, hãy chú ý đến tập tin này. Đây rồi, Plutus.json'. Không có phần mở rộng. Plutus
'. Tuy nhiên, nó có một số mã được biên dịch. Đây là CBOR do Aiken tạo ra và nó phục vụ cùng mục đích với CBOR mà chúng ta có thể thấy trong tệp 'luôn thành công. Plutus
' mà chúng ta đã tạo trong Bài học 3.
Tất nhiên, bạn sẽ thấy một sự khác biệt quan trọng ở đây. Nó không chính xác cùng một chuỗi. Điều đó không thú vị sao? Để hiểu rõ lý do tại sao lại như vậy, chúng ta có rất nhiều điều để thảo luận và chúng ta sẽ bắt đầu tìm hiểu vấn đề này tại buổi viết mã trực tiếp vào ngày 22 và 23 tháng 3. Hiện tại, tôi chỉ muốn bạn nhận ra rằng chúng ta có một con đường khác để đến với Plutus CBOR này tại đây. Bây giờ, đây được gọi là mã đã biên dịch trong tệp Plutus.json' này và có một số bản soạn sẵn bổ sung được cung cấp tại đây.
Điều này thực sự thú vị, và chúng ta hãy dành một chút thời gian để đọc tin nhắn ở đây. Nó nói, 'Lệnh này tạo bản thiết kế CIP0057 Plutus dưới dạng tệp JSON. Đây là một công việc đang được tiến hành và hiện tại nó là một biên giới thực sự thú vị để phát triển ứng dụng Plutus. Tôi khuyên bạn nên xem qua và đây là một điều khác mà chúng ta sẽ cùng nhau xem xét khi viết mã trực tiếp và trong một số bài học sắp tới. Nếu bạn có thời gian, hãy chắc chắn để đọc về điều này. Có thể JSON này hữu ích cho bạn. Nhưng nếu bạn chỉ muốn có tệp Plutus, thì đơn giản như sao chép chuỗi này ngay tại đây và tạo một tệp giống như thế này. Sau đó, chúng tôi có thể chỉ cần thả mã đã biên dịch đó vào đây và có tệp 'luôn thành công. Plutus
' của chúng tôi được tạo từ Aiken.
Chúng ta sẽ chạy quy trình này một lần nữa với Plutus, và sau đó trong Mô-đun 102, chúng ta sẽ bắt đầu thấy hậu quả của việc có các chuỗi lục giác CBOR hơi khác nhau cho mỗi hợp đồng mà chúng ta biên soạn.
Lesson 101.6: Always Succeeds validator
Bài 101.6: Trình xác thực Luôn thành công
Chào mừng bạn đến với Plutus Project-Based Learning 2023. Cảm ơn bạn đã xem bài học này. Trong bài học này, chúng ta sẽ viết lại trình xác thực Luôn thành công
một lần nữa, nhưng lần này bằng một ngôn ngữ mới khác có tên là PluTs
. PluTs
là ngôn ngữ lập trình hợp đồng thông minh được viết bằng TypeScript. Nếu bạn có nền tảng về phát triển JavaScript hoặc TypeScript, bạn có thể thấy mình quen thuộc với PluTs
. Không giống như Aiken, ngôn ngữ này là ngôn ngữ dành riêng cho miền được nhúng. Điều này có nghĩa là PluTs
được thiết kế đặc biệt để viết hợp đồng thông minh. Miền của nó được nhúng vào các dự án JavaScript hoặc TypeScript hiện có.
Để bắt đầu, chúng ta chỉ cần làm theo tài liệu được cung cấp trên trang web chính thức của PluTs
. Hãy mở nó ra. Khi tôi truy cập trang chủ PluTs
, tôi có thể thấy rằng có hướng dẫn Xin chào PluTs
, và đó chính xác là những gì chúng ta sẽ làm theo. Tôi sẽ chuyển sang Mã VS trong giây lát. Giống như trước đây, tôi sẽ tạo một thư mục mới, và tôi sẽ gọi thư mục này là learning-pluts
. Làm sao vậy? Tuyệt vời! Từ điển mới. CD vào đó, rồi chúng ta sẽ làm theo tài liệu này.
Nó nói rằng để xây dựng một hợp đồng thông minh và tương tác, tất cả những gì chúng ta cần là PluTs
và một số cách để gửi giao dịch. Chúng ta sẽ chỉ tập trung vào phần tất cả những gì chúng ta cần là
PluTs, sau đó chúng ta sẽ tập trung vào việc xây dựng và gửi các giao dịch trong mô-đun tiếp theo, Mô-đun 201. Hãy sao chép mẫu ban đầu, mẫu này sẽ tạo ra một mẫu mới thư mục bên trong
learning-pluts`. Bây giờ chúng ta có thể thấy rằng chúng ta có cấu trúc thư mục này. Hãy xem qua.
Đây là thư mục source
, tệp package.json
và một số bản soạn sẵn khác. Nếu bạn quen thuộc với việc phát triển JavaScript, điều này sẽ rất quen thuộc. Nếu bạn chưa từng thấy điều này trước đây, hãy cho chúng tôi biết và chúng ta có thể cùng nhau xây dựng kiến thức nền cho bạn. Có vẻ như tất cả những gì chúng ta phải làm là chạy npm install
. Hãy làm nó. cài đặt npm
.
Chúng ta đã thấy một vài trình quản lý gói khác nhau trong Mô-đun 101. Chúng ta đã thấy cách NYX có thể được sử dụng làm trình quản lý gói cho các dự án Haskell hoặc PlutusTX. Chúng ta đã thấy cách Cargo được sử dụng làm trình quản lý gói hàng trong Rust. NPM là một trong những trình quản lý gói khả dụng nếu bạn đang làm việc trên một dự án JavaScript. Bạn sẽ thấy trong tài liệu mà chúng tôi cung cấp cùng với bài học này rằng bạn cũng có thể sử dụng Sợi thay vì NPM. Hãy đi tìm hợp đồng mà chúng ta đang thực hiện trong repo. Đây rồi.
Cũng giống như trước đây, hợp đồng này cao cấp hơn một chút so với Luôn thành công
. Tất nhiên, chúng tôi muốn viết các hợp đồng thông minh nâng cao hơn, nhưng mục tiêu của chúng tôi ngay bây giờ là viết một hợp đồng đơn giản nhất có thể. Chúng tôi cung cấp một số bản soạn sẵn cho bạn ngay tại đây. Bạn có thể sao chép mã này từ tài liệu PPBL và thay thế hợp đồng bằng mã đó. Điều đó có vẻ ngắn hơn một chút. Chúng tôi cũng chưa cần Datums hoặc Redeemers, vì vậy chúng ta hãy xóa cả hai thư mục này. Xóa chúng như một bài tập. Bạn luôn có thể thử chạy trình xác thực được cung cấp bởi các hướng dẫn Xin chào thế giới
trong cả Aiken và PluTs
. Chỉ cần nhận ra một lần nữa rằng mục tiêu của chúng tôi chỉ đơn giản là viết Luôn thành công
.
Khi chúng tôi đã tạo tệp đó, tất cả những gì chúng tôi phải làm là chạy yarn start
nếu bạn đang sử dụng Yarn hoặc nếu chúng tôi đang làm theo tài liệu PluTs
bằng cách chạy npm run start
. Thử một lần đi. Quay lại đây trong thiết bị đầu cuối của tôi, npm run start
. Vâng, hãy để tôi đảm bảo
lưu tệp hợp đồng trước. Ở đó chúng tôi đi, được cứu. Bây giờ chúng ta sẽ chạy cái này, npm run start
. Và nếu nó hoạt động, wow, hãy nhìn vào đó. Điều đó có vẻ quen thuộc, phải không? Điều đó trông hơi giống với những gì chúng tôi đã tạo ban đầu với PlutusTX.
Một lần nữa, Seabor hex hơi khác một chút so với hex chúng tôi nhận được từ PlutusTX. Đây là một bí ẩn mà chúng ta sẽ cùng nhau điều tra trong một số bài học sắp tới. Nhưng bây giờ, điều này là khá thú vị. Chúng tôi đã có một tập lệnh Plutus được biên dịch. Bây giờ chúng ta đã thấy bốn cách khác nhau để đạt được Luôn thành công
. Chúng ta có thể chạy một dự án Plutus trong Demeter run, hoặc chúng ta có thể chạy cùng một dự án cục bộ. Chúng tôi có thể viết trình xác thực Luôn thành công
trong Aiken và chúng tôi có thể lấy Seabor từ tệp JSON được tạo. Hoặc chúng ta có thể viết Always Succeeds
trong PluTs
và nhận một đối tượng tập lệnh Plutus giống như thế này.
Tất nhiên, bây giờ chúng ta vẫn phải tìm hiểu cách chúng ta sử dụng các tệp này và đó chính xác là những gì chúng ta sẽ bắt đầu trình bày trong Mô-đun 102. Trong thời gian chờ đợi, tôi hy vọng rằng bạn sẽ thử một số phương pháp này và xem kết quả thế nào. nhiều cách khác nhau để bạn có thể đạt được Luôn thành công
. Như mọi khi, hãy đưa câu hỏi của bạn đến phần mã hóa trực tiếp hoặc đảm bảo ghé qua Gimbal Apps Discord nếu bạn gặp khó khăn theo bất kỳ cách nào. Mục tiêu của chúng tôi là cung cấp cho bạn những địa điểm bắt đầu cho các dự án mà bạn có thể tự mình khám phá và khi gặp khó khăn, luôn có một nơi để nhờ giúp đỡ.
Nếu bạn đã đạt được một số thành công trong mô-đun này rồi, hãy cố gắng tìm hiểu toàn bộ từng hướng dẫn Xin chào thế giới được cung cấp. Bắt đầu tự hiểu cách thức hoạt động của Datum, Redeemer và Context trong các ví dụ Xin chào thế giới
đó. Và như tôi đã đề cập, khi chúng ta bắt đầu chuyển qua khóa học này, chúng ta sẽ xem xét kỹ hơn về Datum, Redeemer, Context và cách xây dựng trình xác thực mạnh mẽ trong một số mô-đun tiếp theo. Mong được làm tất cả những điều đó với bạn. Cảm ơn bạn đã xem những bài học này và vui lòng liên hệ.
Lesson 102.1: Build Your First Transactions
Bài học 102.1: Xây dựng giao dịch đầu tiên của bạn
Xin chào và chào mừng bạn đến với Plutus Project-Based Learning 2023. Chúng tôi rất vui vì bạn đã ở đây. Đây là video đầu tiên trong Mô-đun 102: Xây dựng các giao dịch đầu tiên của bạn. Bây giờ, để xây dựng các giao dịch đầu tiên của bạn, bạn sẽ phải biết cách sử dụng Cardano CLI. Đó là lý do tại sao chúng ta sẽ bắt đầu với mục tiêu học tập này: 'Tôi có thể truy vấn blockchain bằng Cardano CLI.' Trong video này, chúng ta sẽ xem cách sử dụng Cardano CLI, được cài đặt sẵn trong Demeter.run. Chúng tôi cũng sẽ xem xét cách sử dụng Cardano CLI trên máy tính của riêng bạn. Điều kiện tiên quyết để đạt được điều đó là cài đặt và chạy node Cardano của riêng bạn, giống như lần đầu tiên thiết lập môi trường phát triển Plutus. Quá trình cài đặt và chạy node Cardano lần đầu tiên có thể hơi khó khăn và tốn thời gian, nhưng chúng ta sẽ cùng nhau vượt qua. Khi bạn đã thiết lập node Cardano, sử dụng Cardano CLI là một cách thực sự hữu ích để tìm hiểu một cách thực tế về cách thức hoạt động của blockchain Cardano.
Bây giờ, bạn có thể đã nghe nói rằng có những yêu cầu phần cứng khá ấn tượng để chạy một node Cardano và điều này đúng một phần. Về cốt lõi, một blockchain chỉ là một cơ sở dữ liệu và cơ sở dữ liệu mạng chính của Cardano chiếm gần 120 gigabyte dung lượng ổ ổ cứng và điều đó sẽ luôn tiếp tục phát triển. Ngoài ra còn có các yêu cầu về bộ nhớ để chạy một node. Tuy nhiên, trong khóa học này, chúng tôi đang sử dụng mạng tiền sản xuất Cardano và cơ sở dữ liệu tiền sản xuất hiện có kích thước chưa đến ba gigabyte. . Vì vậy, ngay cả khi hiện tại bạn thiếu phần cứng để chạy một node mạng chính, thì bạn vẫn có thể chạy một node tiền sản xuất chỉ để xem nó hoạt động như thế nào. Và ngay cả khi bạn không thể chạy một node cục bộ, chúng ta có thể dựa vào các công cụ như Demeter và những công cụ khác mà chúng ta sẽ tìm hiểu trong khóa học này để tham gia phát triển Cardano. Hãy xem qua.
Đây là ví dụ Demeter mà tôi đã thiết lập ban đầu trong Bài 101.3. Nếu bạn đã hoàn thành bài học đó, có lẽ bạn cũng đang chạy bài này. Tôi sẽ mở Mã VS. Tại thời điểm này, bạn nên làm quen với thiết bị đầu cuối ở cuối cửa sổ Mã VS của mình. Nếu tôi đang sử dụng dòng lệnh trong thiết bị đầu cuối này, tôi có thể chỉ cần Kiểu 'Cardano node --version' để xem node Cardano đó đã được cài đặt trong phiên bản Demeter này. Tôi có thể làm điều tương tự cho Cardano CLI và tôi có thể sử dụng Cardano CLI để thực hiện truy vấn đầu tiên của mình. Hãy thử, thực sự không phải là 'utxo', hãy thử 'mẹo magic testnet'. Bây giờ, bạn sẽ tìm hiểu thêm về truy vấn này và các truy vấn khác trong mô-đun này và trong suốt khóa học, nhưng đây mới là thành công của bài học này. Bạn muốn có thể chạy 'mẹo truy vấn Cardano CLI' và nhận được phản hồi khi bạn thấy rằng tiến trình đồng bộ hóa ở mức một trăm phần trăm. Đẹp! . Vì vậy, nếu bạn đang sử dụng Demeter, bạn đã hoàn thành mục tiêu học tập này.
Trong phần còn lại của video này, chúng ta sẽ xem xét cách cài đặt và chạy một node Cardano cục bộ. Tôi sẽ cho bạn thấy thế nào là thành công. Đầu tiên, ở đây trên máy tính của tôi, tôi có một cửa sổ đầu cuối đang mở. Nếu tôi gõ
'phiên bản Cardano-cli', tôi có thể thấy rằng tôi đã cài đặt Cardano CLI. Nếu tôi chạy 'Cardano CLI query tip testnet magic one', tôi gặp lỗi. Bây giờ, lý do tôi gặp lỗi đó là vì tôi không có node Cardano chạy cục bộ. Hãy thiết lập một cái.
Trong tài liệu cho bài học này, bạn sẽ thấy một liên kết đến node Cardano trong tài liệu chính thức của Cardano và node Cardano trên GitHub. Tôi sẽ mở trang GitHub. Nếu bạn cuộn xuống, bạn sẽ thấy tiêu đề này có nội dung 'Lấy node Cardano' và bạn có thể thấy các tùy chọn sau: xây dựng từ nguồn, tệp thực thi và Docker. Nếu mục tiêu của bạn là bắt đầu và chạy nhanh, tôi khuyên bạn chỉ nên sử dụng các tệp thực thi. Bạn có thể nhấp qua trang phát hành của họ. Bạn có thể cuộn qua các ghi chú phát hành và xuống các tệp nhị phân tĩnh này cho từng hệ điều hành khác nhau. Đây là một nơi tuyệt vời để bắt đầu. Mặt khác, nếu bạn muốn tìm hiểu càng nhiều càng tốt về Haskell hoặc Nix, bạn có thể làm theo các hướng dẫn này về xây dựng từ nguồn. Bạn có thể xây dựng một node bằng Cabal, là trình quản lý gói Haskell, hoặc Nix, mà chúng ta đã bắt đầu tìm hiểu trong Mô-đun 101. Tôi nhận thấy rằng bằng cách xây dựng node bằng Cabal, tôi cảm thấy thoải mái hơn rất nhiều với ngăn xếp công cụ Haskell và nếu đó là mục tiêu của bạn, tôi khuyên bạn nên sử dụng phương pháp này.
Bạn cũng sẽ thấy rằng có sẵn một Docker. Chúng tôi sẽ không đề cập đến điều đó trong khóa học này, nhưng hãy thoải mái khám phá điều đó nếu đó là phương pháp ưa thích của bạn. Bạn sẽ biết mình đã cài đặt thành công node Cardano nếu bạn có thể chạy 'Cardano node --version' và xem phiên bản nào bạn đang chạy và điều tương tự đối với Cardano CLI. Tuyệt vời! Bây giờ bạn đã sẵn sàng để bắt đầu node.
Bạn có thể nhớ rằng ngay từ đầu khóa học này, tôi đã đề cập rằng có nhiều mạng Cardano và trong khóa học này, chúng tôi đang sử dụng mạng tiền sản xuất. Trước khi chúng tôi có thể chạy node của mình, chúng tôi phải quyết định mạng nào chúng tôi sẽ kết nối. Để làm điều đó, chúng tôi phải chọn các tệp cấu hình phù hợp và có một liên kết trong tài liệu bên dưới nơi bạn có thể tìm thấy các tệp này. Đây là Sách Hoạt động Cardano và tôi đang ở trang 'Môi trường'. Nếu tôi cuộn xuống, tôi sẽ thấy 'Mạng thử nghiệm xem trước'. Đây là những gì chúng tôi muốn: testnet tiền sản xuất. Và sau đó, đây là mạng chính nếu bạn muốn chạy một node mạng chính.
Bằng cách nhấp chuột phải vào bất kỳ tệp nào trong số này, tôi chỉ có thể lưu từng tài liệu này. Chúng ta hãy xem những gì chúng trông giống như. Nó chỉ là một tệp JSON với một số thông tin cụ thể về cách thức hoạt động của mạng này. Tạo một thư mục mới nơi bạn có thể lưu tất cả bảy tệp này. Trên máy tính của tôi, tôi có một thư mục gọi là 'pre-prod config', và bên trong đó, bạn có thể thấy bảy tệp mà tôi đã tải xuống để chạy ứng dụng node.
. Vì vậy, làm thế nào để chúng ta sử dụng các tập tin này? Trong tài liệu dưới đây, bạn sẽ thấy lệnh 'Cardano node run'. Những gì bạn sẽ thấy ở đây là chúng tôi không tham khảo trực tiếp tất cả bảy tệp bạn vừa tải xuống và trên thực tế, chúng tôi không sử dụng tất cả chúng để chạy một node đơn giản. Nhưng chúng tôi cần tệp cấu trúc liên kết 'topology.json' và tệp cấu hình 'config.json'. Bạn có thể thêm đường dẫn tệp của riêng mình vào từng đường dẫn này. Chúng tôi cũng cần tạo một thư mục mới cho cơ sở dữ liệu của blockchain mà chúng tôi đang tải xuống. . Vì vậy, tôi có một thư mục mới cũng được gọi là 'DB tiền sản xuất Cardano'. Cuối cùng, có đường dẫn ổ cắm này. Điều bạn cần biết bây giờ là đường dẫn đến 'node.socket' của bạn giống với đường dẫn đến cơ sở dữ liệu của bạn với '/node.socket' ở cuối. Tôi sử dụng địa chỉ máy chủ là '0.0.0.0' và cổng '3001' vì đây chỉ là các giá trị mặc định thông thường, nhưng bạn có thể thay đổi các số này nếu có lý do chính đáng.
Cho phép
Hãy thử chạy lệnh này: 'chạy node Cardano' với cấu trúc liên kết, đường dẫn cơ sở dữ liệu, đường dẫn ổ cắm, địa chỉ máy chủ, cổng và cấu hình. Và khi tôi nhấn enter, tôi sẽ thấy điều kỳ diệu xảy ra. Lần đầu tiên bạn chạy ứng dụng này, có thể sẽ mất vài giờ để mạng tiền sản xuất đồng bộ hóa. Tôi đã làm điều này trước đây nên node của tôi không mất quá nhiều thời gian để đồng bộ hóa. Hãy nghĩ về nó, nó sẽ không tải xuống toàn bộ cơ sở dữ liệu từ đầu mỗi khi bạn sử dụng nó, nhưng mỗi khi tôi bắt đầu chạy node, nó sẽ bắt đầu tải xuống các khối mới từ bất kỳ nơi nào tôi đã dừng lại lần trước. Coi đây nè.
Bây giờ, nếu tôi gõ
'Cardano CLI query tip testnet magic one', tôi có thể thấy rằng tôi đã đồng bộ hóa tiến trình ở mức 100%. Tuyệt vời! Trước khi bạn có thể chạy Cardano CLI, bạn có thể phải đặt đường dẫn ổ cắm node Cardano của mình và đường dẫn này sẽ khớp với đường dẫn bạn đã xác định ngay tại đây khi bạn bắt đầu chạy node của mình.
. Vì vậy, trước khi kết thúc, hãy viết thêm một truy vấn nữa. Đây là lệnh utxo truy vấn Cardano CLI và với nó, tôi có thể chỉ định mạng mà tôi đã kết nối và bất kỳ địa chỉ nào on-chain, của tôi hoặc bất kỳ địa chỉ nào khác. Bạn có thể sử dụng bất kỳ địa chỉ nào bạn muốn với lệnh này, miễn là đó là địa chỉ tiền sản xuất. 'Truy vấn Cardano CLI utxo', tôi chỉ định mạng và sau đó tôi chỉ định địa chỉ. Và kết quả có thể trông giống như thế này.
Trong vài bài học tiếp theo, bạn sẽ trở nên rất quen thuộc với chế độ xem UTXO trong ví này. Bây giờ, xin chúc mừng bạn đã làm được điều này và tôi sẽ gặp bạn trong Bài học 102.2.
Lesson 102.2: Build Wallet with Cardano CLI
Bài học 102.2: Xây dựng ví với Cardano CLI
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Cảm ơn đã xem qua video này. Tên của mô-đun này là Xây dựng các giao dịch đầu tiên của bạn
. Nếu bạn đã từng sử dụng ví như Daedalus, Yoroi, Nami, Eternal hoặc bất kỳ ví nào khác, thì có lẽ bạn đã từng tạo các giao dịch trước đây. Trong vài bài học tiếp theo, bạn sẽ bắt đầu hiểu điều gì đang xảy ra đằng sau hậu trường trong ví khi bạn gửi Ada hoặc các token khác trên Cardano.
Để giúp chúng tôi biết điều gì đang xảy ra khi chúng tôi xây dựng các giao dịch trên Cardano, chúng tôi sẽ sử dụng một công cụ có tên là Cardano CLI, mà bạn đã thiết lập ban đầu trong Bài học 102.1. Trong video này, chúng ta sẽ tìm hiểu cách tạo ví bằng Cardano CLI. Chúng tôi sẽ đề cập đến cách xây dựng ví với Cardano CLI và sau đó chúng tôi sẽ thấy rằng việc xây dựng địa chỉ cho các hợp đồng Plutus của bạn rất giống nhau. Bạn có thể làm theo hướng dẫn từng bước được cung cấp trong tài liệu bên dưới video này.
Hãy thực hiện từng lệnh này một lần. Điều đầu tiên chúng tôi sẽ làm là tạo một thư mục mới để chứa tất cả các tệp sẽ được tạo bởi Cardano CLI khi chúng tôi tạo ví mới. Tôi có thể tạo một thư mục mới và tôi sẽ gọi thư mục này là ví-tiền-sản-xuất-của-tôi
. Bạn có thể gọi thư mục này theo bất cứ cách nào bạn muốn. Sau đó, tôi sẽ đưa ổ cứng CD vào đó và tôi sẽ thấy rằng mình có một thư mục trống. Sau đó, tôi có thể làm theo các bước như trong tài liệu.
Đây là lệnh đầu tiên: chúng tôi sẽ sử dụng Keygen địa chỉ Cardano CLI để tạo cặp tệp mới này. Lệnh trông như thế này. Tôi có thể sao chép nó vào thiết bị đầu cuối của mình và chạy nó. Như bạn có thể thấy, không có gì xảy ra. Nhưng nếu tôi chạy lại LS, thì bây giờ tôi có hai tệp này. Để xem những gì bên trong các tệp này, tôi có thể chạy cat và nhập
tên của tệp. Đây là tệp payment.skey
của tôi và tôi cũng có tệp payment.vkey
. Tệp này, tệp payment.skey của tôi, là một khóa cá nhân. Tôi nên cẩn thận với tệp này cũng như cẩn thận với các từ ghi nhớ được tạo ra khi tôi tạo ví mới trong Daedalus hoặc Eternal. Tệp payment.vkey
là khóa công khai và tôi có thể chia sẻ tệp này giống như tôi chia sẻ công khai địa chỉ. Tên của các tệp bạn thấy ở đây, payment.vkey
và payment.skey
, có thể là bất kỳ tên nào bạn muốn, nhưng theo thông lệ, bạn sẽ sử dụng các tên tệp này: payment.skey
và payment. vkey
. Tôi chỉ muốn nhắc lại một lần nữa: skey
là khóa riêng hoặc khóa ký của bạn và vkey
là khóa chung của bạn.
Tiếp theo, chúng tôi có thể tạo một tập hợp các tệp chính để xử lý thông tin xác thực ủy thác. Lệnh trông như thế này. Hãy sao chép nó và chạy cái này. Tôi có thể chạy lại LS và bây giờ tôi có thể thấy rằng tôi đã có khóa thanh toán và khóa ủy thác của mình. Khi tôi tạo địa chỉ, bạn không bắt buộc phải sử dụng các khóa ủy thác và trong ví dụ này, chúng tôi sẽ sử dụng các khóa ủy thác để tạo địa chỉ. . Vì vậy, làm thế nào để chúng tôi làm điều đó? Quay trở lại tài liệu, bước cuối cùng là chạy bản dựng địa chỉ Cardano CLI và để ý xem lệnh này lấy gì làm Đầu vào. Phải mất một tệp khóa xác minh thanh toán, payment.vkey
, và một tệp khóa xác minh staking, stake.vkey
. Chúng tôi cũng phải chỉ định mạng chúng tôi đang sử dụng và điều quan trọng cần lưu ý là các tệp khóa này có thể được
được sử dụng để tạo địa chỉ trên bất kỳ mạng Cardano nào. Bạn có thể sử dụng cùng một tệp vkey
để tạo địa chỉ tiền sản xuất như chúng tôi đang làm ở đây. Hoặc nếu bạn chuyển magic testnet sang mainnet, bạn cũng có thể tạo một địa chỉ mainnet. Hãy chạy lệnh này. Sao chép và dán. Bây giờ chúng tôi có một tệp payment.address
, như được chỉ định ở đây: outfile payment.address
. Và nếu tôi gửi địa chỉ đó, tôi có thể thấy một địa chỉ testnet có thể nhận dạng được. Chỉ để cho bạn thấy rằng điều này hoạt động mà không cần đến khóa staking, chúng ta hãy chỉ sao chép hai dòng đầu tiên của lệnh này và dòng cuối cùng. Nhưng hãy đổi tên tệp thành thanh toán mà không cần ủy thác
. Sau đó, tôi có thể thấy rằng tệp đó tạo ra một tệp mới khác và tôi cũng có thể xem địa chỉ đó. Thanh toán không cần ủy thác.address
tạo một địa chỉ giống như thế này mà không có thông tin xác thực ủy thác. Như bạn có thể thấy, địa chỉ ngắn hơn một chút. Trong bất kỳ ví trình duyệt nào, bạn sẽ thấy một địa chỉ có độ dài chính xác như vậy vì ví trình duyệt tạo thông tin xác thực ủy thác cho bạn. Chỉ cần lưu ý rằng thông tin xác thực ủy thác là tùy chọn.
Xuất sắc! Bây giờ bạn đã có một địa chỉ testnet mới mà chúng ta có thể sử dụng trong các bài học sắp tới. Nếu muốn, bạn có thể chạy cả ba lệnh cùng một lúc. Bạn có thể chỉ cần sao chép và dán toàn bộ khối mã này ngay tại đây và tất cả các lệnh này sẽ chạy tuần tự để tạo ví mới.
Làm cách nào để chúng tôi phân biệt giữa từ ví
và từ địa chỉ
? Hãy xem thêm một lần nữa các tệp chúng tôi vừa tạo. Chúng tôi có một tệp địa chỉ và đó là một phần của việc xây dựng ví. Nhưng chúng tôi cũng cần một cách để sử dụng UTXO từ địa chỉ này và đó là vai trò của tệp khóa riêng tư. Bạn sẽ thấy điều này thực tế trong Bài học 102.3.
Bây giờ chúng ta đã xem qua cách tạo địa chỉ với Cardano CLI bằng cách sử dụng khóa công khai, còn một điều nữa tôi muốn chỉ cho bạn. Bạn có thể sử dụng chính xác lệnh tương tự, xây dựng địa chỉ Cardano CLI, để tạo địa chỉ hợp đồng. Chúng ta hãy xem làm thế nào nó hoạt động. Tôi sẽ thay đổi các thư mục trong thư mục ví mới của mình và trong mẫu Plutus PPBL 2023, có một thư mục gồm các tập lệnh Plutus đã biên dịch. Ở đây, chúng ta có ba tập lệnh Plutus luôn thành công
mà chúng ta đã tạo trong Mô-đun 101. Bạn có thể sử dụng bất kỳ tập lệnh nào trong số này, như minh họa trong tài liệu. Ở đây, tôi sẽ thử chạy cái đầu tiên này. Một lần nữa, sao chép và dán, và bạn có thể thấy một địa chỉ.
Bây giờ, một số điều cần lưu ý: địa chỉ này là địa chỉ hợp đồng và không có thông tin xác thực ủy thác được liên kết với nó. . Vì vậy, bạn có thể nhận thấy rằng đây là một trong những địa chỉ ngắn hơn không có thông tin xác thực ủy thác. Lệnh này, xây dựng địa chỉ Cardano CLI với tệp tập lệnh thanh toán và tệp Plutus, có thể được sử dụng trên bất kỳ mạng nào. . Vì vậy, hãy thử nó cho chính mình. Bạn có thể thay đổi testnet magic one thành mainnet.
Cuối cùng, đối với mỗi địa chỉ này, như bạn có thể thấy trong tài liệu, các liên kết được cung cấp để điều tra từng địa chỉ trên CardanoScan. Tôi có thể thấy rằng địa chỉ hợp đồng này, luôn thành công
, có số dư dữ liệu thử nghiệm. Trong Bài 102.5, bạn sẽ học cách mở khóa UTXO từ địa chỉ này. Ngay tại đây, chúng tôi vừa trình bày rất nhiều điều trong video này và tôi hy vọng bạn có câu hỏi. Như mọi khi, vui lòng gửi câu hỏi của bạn đến chương trình mã hóa trực tiếp PlutusPBL vào Thứ Tư và Thứ Năm hoặc đặt câu hỏi trong Gimbalabs Discord.
Trong bài tiếp theo, chúng ta sẽ tìm hiểu cách sử dụng địa chỉ bạn vừa tạo để tạo giao dịch bằng Thẻ
khác CLI. Tôi không thể chờ đợi! Hẹn gặp bạn ở đó.
Lesson 102.3: Build First Transaction Cardano
Bài học 102.3: Xây dựng giao dịch đầu tiên Cardano
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn bạn đã xem video này. Chúng tôi hiện đang làm việc thông qua Mô-đun 102: Xây dựng giao dịch đầu tiên của bạn
và cuối cùng đã đến lúc xây dựng giao dịch đơn giản đầu tiên của chúng tôi bằng Cardano CLI. Xây dựng giao dịch với Cardano CLI không thuận tiện. Khi chúng ta chuyển qua khóa học này, chúng ta sẽ bắt đầu sử dụng các loại công cụ khác nhau để tự động hóa các giao dịch. Và tất nhiên, nếu bạn đã từng sử dụng bất kỳ ví trình duyệt nào, quy trình này đã được tự động hóa cho bạn.
Lý do chúng tôi sử dụng Cardano CLI trong mô-đun này là để giúp bạn hiểu điều gì đang xảy ra khi chúng tôi tương tác với Cardano. . Vì vậy, mặc dù không phải lúc nào bạn cũng xây dựng các giao dịch với Cardano CLI, nhưng tôi hy vọng rằng bạn sẽ cùng chúng tôi thực hiện các bài học tiếp theo.
Trong video này, chúng ta sẽ phân biệt quan trọng giữa giao dịch và UTXO. Tôi sẽ chỉ cho bạn một số quy trình mà chúng tôi sẽ sử dụng đi sử dụng lại trong khóa học này khi sử dụng Cardano CLI và lần đầu tiên chúng tôi sẽ xây dựng, ký và gửi một giao dịch từng bước.
Để trở thành nhà phát triển trên Cardano, bạn thực sự phải hiểu UTXO là gì. Chữ viết tắt là viết tắt của Đầu ra giao dịch chưa chi tiêu. Và mặc dù đó là một cụm từ lớn, nhưng nếu chúng ta hiểu từng từ một, tôi hy vọng bạn sẽ thấy rằng nó có ý nghĩa.
Nó là gì? Đó là kết quả từ một giao dịch trên Cardano. Và đã tiêu hết chưa? Không, nó chưa được sử dụng. Điều đó có nghĩa là chúng ta có thể chi tiêu nó trong một giao dịch trong tương lai. Bạn sẽ thấy cụm từ này mọi lúc.
TX trong UTXO là viết tắt của giao dịch và giao dịch chỉ là một sự kiện on-chain dành giá trị từ một địa chỉ và xuất giá trị đó sang một địa chỉ khác. Tại bất kỳ thời điểm nào trên blockchain Cardano, mọi token đều ở dạng UTXO ở đâu đó. Và nếu nó ở dạng UTXO, thì nó vẫn chưa được chi tiêu, điều đó có nghĩa là nó có thể được sử dụng cho một giao dịch trong tương lai.
Bất kể tôi có thể nói gì với bạn về các giao dịch và UTXO, không có gì tốt hơn là bắt tay vào thực hành với các khái niệm này để bạn có thể hiểu bằng cách thực hành ý nghĩa của từng khái niệm này.
Trước khi chúng ta bắt đầu, vui lòng gửi một số Ada thử nghiệm tới ví CLI mới mà bạn vừa tạo trong Bài học 102.2. Sau đó, chúng tôi sẽ sử dụng ví đó trong bài học này và các bài học trong tương lai. Chúng tôi sẽ sử dụng Cardano CLI trong thiết bị đầu cuối của mình. Bất cứ khi nào bạn sử dụng thiết bị đầu cuối, bạn có thể đặt các biến như thế này và sau đó đặt ký hiệu đô la trước các biến đó để sử dụng chúng trong các lệnh như thế này. Hãy xem qua.
Tôi có một địa chỉ thanh toán mà tôi vừa tạo. Nó khác với cái tôi đã cho bạn xem trong video trước vì trong video đó, tôi đã để lộ các khóa riêng tư của mình. Tôi không muốn sử dụng địa chỉ đó. . Vì vậy, trong ví dụ này, tôi sẽ giữ khóa cá nhân của mình ở chế độ riêng tư trong khi xây dựng giao dịch này. Hãy tạo một biến đầu tiên có tên là địa chỉ người gửi
. Địa chỉ người gửi bằng với địa chỉ này. Tuyệt vời! Bây giờ, nếu tôi gõ echo địa chỉ người gửi
, tôi sẽ thấy rằng biến đó tương ứng với địa chỉ này ngay tại đây. Và điều này có nghĩa là bây giờ tôi có thể sử dụng các lệnh như thế này, sao chép và dán nhanh, để truy vấn các UTXO tại địa chỉ này.
Khi tôi chạy Cardano CLI query utxo
, tôi phải chỉ định mạng mà tôi đang truy vấn và địa chỉ mà tôi muốn tra cứu UTXO. Tôi vừa gửi 100 Ada thử nghiệm từ ví trình duyệt của mình đến địa chỉ mới này. Và như vậy, bạn có thể thấy ngay tại đây, có 100 triệu Lovelace. Có một triệu Lovelace trong một Ada.
. Vì vậy, 100 Ada là 100 triệu Lovelace.
Khi tôi truy vấn các UTXO cho một số địa chỉ, tôi có thể thấy một hoặc nhiều UTXO. UTXO được biểu thị bằng hàm hash giao dịch và chỉ mục giao dịch. Nếu tôi muốn sử dụng UTXO này, một trong những lựa chọn của tôi là lưu nó dưới dạng một biến khác giống như thế này. Đồng hồ! Tôi có thể nói utxo in
tương đương với điều này. Biến có thể là bất cứ thứ gì bạn muốn. Sau đó, tôi có thể sao chép và dán hàm hash giao dịch, thẻ bắt đầu bằng # và sau đó là chỉ mục TX. Đây là cách UTXO được thể hiện khi chúng ta xây dựng các giao dịch.
Và trước khi chúng ta tiếp tục, tôi cũng sẽ nhớ đặt một biến cho khóa người gửi của mình. Khóa người gửi có thể được biểu diễn dưới dạng đường dẫn tệp đến tệp payment.skey
, chẳng hạn như thế này. Tuyệt vời! Bây giờ chúng tôi đã sẵn sàng để xây dựng một giao dịch.
Bất cứ khi nào chúng tôi gửi một giao dịch trên Cardano, thực tế sẽ có ba bước riêng biệt xảy ra: bước tạo, bước ký và bước gửi. Chúng tôi sẽ thực hiện từng bước một.
Để xây dựng một giao dịch, chúng tôi sử dụng lệnh Cardano CLI giao dịch xây dựng
. Và đây là cách bạn gửi một giao dịch đơn giản. Chúng tôi chỉ định mạng chúng tôi đang sử dụng. Chúng tôi chỉ định một hoặc nhiều UTXO để sử dụng làm Đầu vào cho giao dịch này. Nói cách khác, sau giao dịch này, UTXO ở đây sẽ không còn là chưa sử dụng nữa vì chúng tôi sắp sử dụng nó. Sau đó, giao dịch tạo ra một hoặc nhiều Đầu ra TX mới.
Vì đây là một giao dịch đơn giản nên chỉ có một TX vào và một TX ra. Và như bạn sẽ thấy ở phần sau của khóa học này, các giao dịch có thể có nhiều Đầu vào và nhiều Đầu ra. Trong bản dựng giao dịch này, có một số biến khác mà chúng tôi đang sử dụng. Một là địa chỉ người nhận và một là số lượng Lovelace chúng tôi muốn gửi.
Chà, tôi hiện có bao nhiêu Lovelace trong UTXO này? Một trăm triệu. . Vì vậy, tôi không thể chi tiêu nhiều hơn thế. Điều gì sẽ xảy ra nếu tôi chỉ muốn gửi 5 Ada thử nghiệm hoặc 5 triệu Lovelace? Điều đó nên làm. Và cuối cùng, tôi cần một địa chỉ người nhận. Tôi sẽ gửi năm Ada trở lại ví trình duyệt có địa chỉ này.
Nếu tôi đặt tất cả các biến này một cách chính xác, tôi có thể chỉ cần sao chép và dán lệnh xây dựng giao dịch này vào thiết bị đầu cuối của mình. Nhưng trước khi tôi thực hiện, hãy lưu ý rằng tệp này có tệp ngoài
. Bản dựng giao dịch tạo một tệp mới khác. . Vì vậy, hãy chắc chắn rằng tôi có một nơi để đặt nó. Tôi sẽ tạo một thư mục mới bên trong ví này có tên là giao dịch
và thư mục này sẽ lưu giữ bản ghi các giao dịch mà tôi đã gửi từ ví này. Tuyệt vời! Hãy thử nó. Sao chép và dán.
Và nếu quá trình xây dựng giao dịch của bạn thành công, bạn sẽ thấy phản hồi có nội dung phí giao dịch ước tính
, đồng thời bạn cũng sẽ thấy một tệp kết xuất mới. Trong trường hợp này, chúng tôi gọi nó là simple TX.raw
, nhưng bạn có thể gọi tệp này theo bất cứ cách nào bạn muốn.
Sau khi một giao dịch được xây dựng, bạn có thể ký nó. Để ký giao dịch này, tôi phải sử dụng khóa cá nhân được liên kết với địa chỉ hiện đang giữ UTXO mà tôi đang cố gắng chi tiêu. Nếu tôi không có đúng khóa, tôi sẽ không thể sử dụng UTXO này.
Bây giờ, tôi biết rằng tôi đã đặt các biến này một cách chính xác, vì vậy việc ký giao dịch sẽ hoạt động. Thử một lần đi. Nếu lệnh này chạy thành công, tôi có thể chạy lại ls
, và tôi có thể thấy rằng bây giờ tôi có tệp giao dịch đã ký.
Và một khi bước đó hoàn thành, chỉ còn một việc phải làm. Tôi chỉ cần gửi giao dịch đến mạng. Cho phép
thử đi. Có vẻ như nó đã hoạt động. Cũng giống như việc gửi bất kỳ giao dịch nào qua bất kỳ loại ví nào, có thể mất vài phút để giao dịch của bạn được xác nhận on-chain. Bạn có thể chạy lại lệnh query utxo
để xem giao dịch đã được xác nhận chưa.
Ngay bây giờ, nó vẫn chưa được xác nhận. Tôi vẫn có cùng một UTXO với 100 Ada. Sau vài phút, nếu tôi chạy lại lệnh, tôi có thể thấy bằng chứng cho thấy giao dịch đã được xác nhận. Tôi có một hàm hash giao dịch mới và một chỉ mục giao dịch mới. Và tôi có thể thấy rằng bây giờ có ít hơn 95 Ada một chút tại địa chỉ này. Tôi đã gửi năm Ada và có một khoản phí giao dịch. Đó là lý do tại sao bạn có thể thấy rằng tôi hiện có 94,83 Ada.
Khi tôi điều hướng đến ví bên ngoài của mình, tôi sẽ thấy rằng giao dịch này vừa được thực hiện. Và ID giao dịch bắt đầu bằng 5683eb
khớp với hàm hash giao dịch mà tôi thấy ngay tại đây khi truy vấn UTXO.
Đặt tất cả lại với nhau, chúng ta có ba lệnh tuần tự sau: xây dựng, ký và gửi. Và nếu bạn đặt chính xác tất cả các biến, bạn sẽ có thể chạy cả ba biến này cùng một lúc bằng cách sao chép và dán toàn bộ khối mã.
Trong bài 102.6, bạn cũng sẽ thấy cách sử dụng tập lệnh Bash để tiếp tục tự động hóa giao dịch này. Đây có thể là lần đầu tiên bạn thấy cách xây dựng giao dịch với Cardano CLI. Bạn sẽ có nhiều cơ hội hơn để thực hành quy trình này trong các bài học tới.
Như mọi khi, nếu bạn có câu hỏi, hãy nhớ đưa chúng đến chương trình mã hóa trực tiếp hoặc Gimbalabs Discord. Và vui lòng biết rằng chúng tôi sẽ tiếp tục sử dụng quy trình này theo cách giúp bạn xây dựng hiểu biết của mình về cách hoạt động của việc xây dựng giao dịch. Bạn cũng sẽ có cơ hội tự thực hành và đó là nội dung tiếp theo trong bài tập Thông thạo: xây dựng hai giao dịch.
Bài tập này sẽ cho bạn cơ hội để bắt đầu thực hành những gì bạn đã học cho đến nay và nó sẽ giới thiệu một số khái niệm thực sự quan trọng mà chúng ta sẽ nghiên cứu thêm trong khóa học này. Nếu bạn gặp khó khăn trong bài tập Thông thạo này, thì bạn biết câu chuyện rồi đấy: hãy nhớ đặt câu hỏi. Tôi rất vui khi thấy những gì chúng ta có thể học cùng nhau. Hẹn sớm gặp lại!
Lesson 102.4: Interact with Smart Contracts.
Bài 102.4: Tương tác với Hợp đồng Thông minh.
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Cảm ơn bạn đã xem video này. Trong mô-đun này, chúng ta đang xây dựng các giao dịch đầu tiên và trong bài học này, lần đầu tiên chúng ta sẽ tìm hiểu cách tương tác với một địa chỉ hợp đồng thông minh. Trong video này, bạn sẽ thấy ví dụ đầu tiên về cách khóa tiền tại địa chỉ hợp đồng bằng Cardano CLI. Hãy xem lại sơ đồ này cho Mô-đun 101. Trước đó trong mô-đun này, khi bạn học cách tạo địa chỉ Cardano bằng Cardano CLI, bạn đã thấy rằng chúng ta có thể sử dụng khóa chung để tạo địa chỉ ví. Và khi chúng tôi chi tiêu UTXO từ địa chỉ ví đó, chúng tôi phải có khóa riêng được liên kết với khóa chung. Bạn cũng đã thấy rằng chúng ta có thể xây dựng địa chỉ hợp đồng bằng cách sử dụng tập lệnh Plutus. Khi chúng tôi làm như vậy, chúng tôi phải tuân theo các quy tắc xác thực để mở khóa UTXO từ địa chỉ hợp đồng. Trong trường hợp luôn thành công
, không có quy tắc nào. Chúng tôi có thể mở khóa bất kỳ UTXO nào vào bất kỳ lúc nào. Nhưng khi trình xác thực của chúng tôi trở nên phức tạp hơn, các quy tắc trở nên cụ thể hơn và đó là điểm mà Plutus thực sự trở nên thú vị. Hiện tại, chúng ta sẽ xem xét cách khóa và mở khóa token từ hợp đồng luôn thành công
.
Chúng tôi đã xây dựng hợp đồng luôn thành công
theo ba cách khác nhau trong Mô-đun 101. Trong mô-đun này, bạn đã thấy cách xây dựng địa chỉ hợp đồng bằng cách sử dụng công cụ xây dựng địa chỉ CLI của Cardano và bây giờ chúng ta sẽ xem lần đầu tiên cách tạo tương tác với địa chỉ hợp đồng này. Trong tài liệu bên dưới video này, ba địa chỉ luôn thành công
được cung cấp để bạn tham khảo. Đây là những địa chỉ giống như đã được tạo trong Bài 102.2. Bạn có thể sao chép và dán tất cả những thứ này vào thiết bị đầu cuối để có thể truy vấn từng địa chỉ này.
Như thế này, có nhiều UTXO hơn tại địa chỉ hợp đồng luôn thành công
so với trong ví mà chúng ta đã xem trong video trước. Nhưng cấu trúc của từng UTXO này sẽ trông quen thuộc. Chúng tôi có hàm hash giao dịch, chỉ mục giao dịch, giá trị tổng và trong nhiều UTXO này, một số loại Datum. Trong bài học này, bạn sẽ thấy rằng sự khác biệt duy nhất giữa việc gửi một giao dịch đơn giản và gửi một giao dịch khóa đến một địa chỉ hợp đồng là chúng ta phải bao gồm Datum trong kết quả Đầu ra của chúng ta đến địa chỉ hợp đồng.
Hãy mở rộng định nghĩa của chúng ta về UTXO. Bất kỳ UTXO nào bao gồm những thành phần sau: hàm hash giao dịch, là hàm hash của giao dịch đã tạo UTXO làm Đầu ra; một chỉ mục giao dịch, cho phép chúng tôi xác định các UTXO khác nhau đến từ cùng một giao dịch; một số giá trị, luôn bao gồm Lovelace và có thể bao gồm một số token khác; và có thể là một số Datum. Chúng ta có thể thấy tất cả các yếu tố này ở đây: hàm hash giao dịch, chỉ số giao dịch, giá trị và có khả năng là một số Datum. Nếu có Datum, nó có thể trông giống như thế này và nếu không có Datum, bạn sẽ thấy rằng TX out Datum không có.
Vậy, Datum là gì? Đó là thông tin có thể được đưa vào UTXO. Đây là một chủ đề lớn và có nhiều cách khác nhau mà chúng ta sẽ xem xét chủ đề này trong suốt khóa học này. Hiện tại, điều quan trọng nhất bạn cần biết là UTXO tại địa chỉ hợp đồng phải bao gồm Datum. Nếu không bao gồm Datum, thì sẽ không thể mở khóa hoặc chi tiêu UTXO tại địa chỉ hợp đồng. UTXO này có thể chi tiêu được vì nó có Datum, nhưng UTXO ở đây thực sự không phải vì nó không có bất kỳ Datum nào được đính kèm. Sự thật này vẫn còn làm tôi suy nghĩ một chút, nhưng đó là cách Cardano hoạt động và bạn phải làm quen với nó.
Bất cứ khi nào bạn gửi token đến một địa chỉ hợp đồng, hãy đảm bảo bao gồm Datum. Nếu tôi chạy bản dựng giao dịch Cardano CLI, tôi có thể thấy hộp thoại trợ giúp cho lệnh này và như bạn có thể thấy, có rất nhiều thứ mà tôi có thể đưa vào. Và khi nói đến việc đính kèm Datum vào UTXO gửi đi, chúng tôi có nhiều tùy chọn. Chúng tôi có thể chỉ bao gồm hàm hash của Datum, chúng tôi có thể bao gồm một tệp hoặc chúng tôi có thể bao gồm một giá trị đơn giản. Và như bạn có thể thấy ngay tại đây, Datum đó có thể được hash, nhúng hoặc nội tuyến. Chúng ta sẽ xem xét từng khái niệm này trong các bài học tới.
Trong giao dịch mà bạn sẽ xây dựng ngay bây giờ, chúng tôi sẽ chỉ sử dụng một giá trị Datum nội tuyến, vì đây là hợp đồng luôn thành công
nên thực sự có thể là bất kỳ giá trị nào chúng tôi muốn. Nhưng để đơn giản, chúng ta sẽ sử dụng một số nguyên đơn giản làm giá trị Datum nội tuyến. Hãy làm theo quy trình tương tự như bạn đã làm trong Bài 102.3 để tạo, ký và gửi giao dịch này.
Đầu tiên, tôi sẽ đặt tất cả các biến của mình. Trên máy tính của tôi, tôi đã đặt địa chỉ người gửi và khóa người gửi của mình và bạn có thể thực hiện tương tự. Tiếp theo, tôi sẽ truy vấn địa chỉ người gửi của mình để chọn UTXO làm Đầu vào và tôi sẽ quyết định số lượng Lovelace mà tôi muốn khóa trong hợp đồng. Tôi có thể truy vấn địa chỉ của tôi. Chỉ có một UTXO ở đây, vì vậy tôi đoán đó là cái tôi sẽ sử dụng và tôi có ít hơn 100 Ada để chi tiêu. Hãy khóa 12,5 Ada. Bạn có thể khóa bất kỳ số tiền nào bạn muốn.
Nếu tôi đã đặt chính xác tất cả các biến này, tôi có thể sao chép và dán từng lệnh một hoặc tôi có thể lấy toàn bộ khối này ngay tại đây, sao chép và dán vào thiết bị đầu cuối của mình. Tôi có thể thấy rằng bước xây dựng đã thành công vì tôi có thể thấy thông báo phí giao dịch ước tính này và tôi có thể thấy rằng giao dịch đã được gửi thành công, giống như trước đây. Sau vài phút, tôi sẽ có thể thấy rằng giao dịch của mình đã được xác nhận on-chain. Như bạn có thể thấy, khi tôi truy vấn lại địa chỉ của mình, tôi có một hàm hash TX mới và hiện có ít Lovelace hơn trong ví này.
Bạn có thấy cách hash giao dịch này bắt đầu với ef3c A1 không? Nhớ lấy. Và nó có chỉ số TX một. Nếu tôi truy vấn lại địa chỉ hợp đồng, tôi sẽ có thể tìm thấy một UTXO có cùng hàm hash giao dịch. Hãy xem nếu tôi có thể tìm thấy nó. Bây giờ, tôi cũng biết rằng có 12,5 Ada trong giao dịch này và vì vậy tôi thấy số tiền đó ngay tại đây. Và nhìn này, UTXO này có hàm hash giao dịch giống như cái tôi vừa thấy trong ví của mình nhưng một chỉ mục khác. Chỉ số này bằng không; chỉ số này là một. Và đây là những giá trị tuần tự. Đầu ra đầu tiên có chỉ số bằng 0; Đầu ra tiếp theo có một chỉ mục. Và nếu có nhiều UTXO được tạo ra bởi giao dịch, thì chỉ số giao dịch cho mỗi UTXO Đầu ra sẽ tăng tương ứng.
Cuối cùng, hãy lưu ý rằng hợp đồng mới UTXO mà tôi vừa tạo này đã nội tuyến Datum và đây là số mà tôi đã đưa vào ngay tại đây khi tôi tạo giao dịch. Đây chỉ là bước đầu tiên. Chúng tôi sẽ tiếp tục sử dụng quy trình này khi tìm hiểu sâu hơn về các hợp đồng thông minh nâng cao hơn và các cách sử dụng khác nhau của Datum. Tôi rất vui khi được khám phá tất cả những điều đó với bạn. Tôi hy vọng bạn có một số niềm vui khi chơi với giao dịch này và tôi sẽ gặp bạn tại mã hóa trực tiếp hoặc trên Discord để tiếp tục tìm hiểu sâu hơn về từng khái niệm này. Hẹn sớm gặp lại.
Lesson 102.5: Plutus PBL Lesson
Bài 102.5: Bài PBL Plutus
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Chúng tôi rất vui vì bạn đã ở đây. Trong mô-đun này, bạn đang học cách xây dựng các giao dịch đầu tiên của mình với Cardano CLI. Trong bài học này, chúng ta sẽ tìm hiểu cách mở khóa tiền từ một địa chỉ hợp đồng bằng Cardano CLI lần đầu tiên. Như thường lệ, tất cả tài liệu bạn cần đều có bên dưới video này. Trước khi chúng ta bắt đầu, có hai khái niệm mới cần giới thiệu ngay bây giờ. Đầu tiên là tài sản thế chấp. Tóm lại, khi tương tác với một địa chỉ hợp đồng, bạn phải chỉ định một UTXO sẽ được sử dụng làm tài sản thế chấp trong giao dịch của mình. Bạn sẽ tìm hiểu thêm về tài sản thế chấp sau này trong khóa học. Hiện tại, chỉ cần lưu ý rằng 'TX' trong 'thế chấp' là một phần của giao dịch mà chúng tôi đang xây dựng.
Khi chúng tôi mở khóa UTXO từ địa chỉ hợp đồng, khái niệm hoàn toàn mới khác trong bài học này là khi chúng tôi mở khóa UTXO hợp đồng, nói cách khác, sử dụng UTXO tại địa chỉ hợp đồng làm Đầu vào, có một số điều chúng tôi sẽ phải chỉ định . Đầu tiên là tập lệnh Plutus tương ứng với địa chỉ hợp đồng mà từ đó hợp đồng UTXO đang được sử dụng. Tiếp theo là Datum, và cuối cùng là Redeemer. Bạn đã bắt đầu tìm hiểu một chút về Datum trong bài học trước và chúng ta vẫn chưa thực sự nói về Redeemer. Với cả ba trong số này - tập lệnh Plutus, Datum và Redeemer - chúng tôi có một số tùy chọn để chỉ định từng loại. Và bạn đã đoán ra rồi, hiện tại, chúng tôi đang giới thiệu cho bạn một số khái niệm này và cho phép bạn bắt đầu chơi với từng khái niệm đó. Trong suốt khóa học này, chúng ta sẽ xem xét kỹ hơn chi tiết của từng loại: tập lệnh Plutus, Datum và Redeemer.
Hãy xem liệu chúng ta có thể xây dựng giao dịch mở khóa này không. Như trước đây, chúng tôi sẽ đặt một số biến và sau đó chúng tôi sẽ xem liệu chúng tôi có thể tạo, ký và gửi giao dịch này hay không. Trên máy tính của tôi, tôi đã đặt địa chỉ người gửi và khóa người gửi của mình và bạn có thể thực hiện tương tự. Để xây dựng giao dịch này, chúng tôi chỉ cần chỉ định UTXO hợp đồng mà chúng tôi muốn mở khóa, đường dẫn tệp đến tập lệnh Plutus đã tạo địa chỉ hợp đồng mà từ đó chúng tôi đang cố gắng mở khóa UTXO này và cuối cùng, một UTXO thế chấp. Tôi có thể truy vấn địa chỉ hợp đồng luôn thành công. Trong trường hợp này, tôi đang sử dụng cái có nguồn gốc từ PlutusTX, nhưng bạn cũng có thể thử cái này cho Aiken hoặc PluTs
. Trong video trước, tôi đã trình bày cách khóa UTXO này. Đây là cái tôi sẽ cố gắng mở khóa, vì vậy chúng ta có thể nói rằng hợp đồng UTXO bằng với hàm hash này với chỉ số 0.
Tiếp theo, tôi sẽ chỉ định tệp tập lệnh Plutus. Tôi cung cấp đường dẫn tệp đến tệp luôn thành công plutistx. Plutus
của tôi, chẳng hạn như thế này. Cuối cùng, tôi sẽ cần chỉ định một UTXO thế chấp. Tôi có thể truy vấn lại địa chỉ của mình và điều này là đủ. UTXO thế chấp bằng với chỉ số hash giao dịch. Tôi nghĩ đó là tất cả. Hãy xem nào. Tôi có một hợp đồng UTXO, đường dẫn đến tệp tập lệnh Plutus của tôi, một UTXO thế chấp và địa chỉ người gửi của tôi. À, nhưng cái gì thế này? Điều này trông giống như một cái gì đó mới - tệp giao thức.json. Có thể xây dựng một giao dịch đơn giản mà không cần chỉ định tệp tham số giao thức, nhưng khi chúng tôi bắt đầu xây dựng các giao dịch phức tạp hơn, đặc biệt là những giao dịch tương tác với hợp đồng, chúng tôi phải truy vấn blockchain để biết các tham số giao thức hiện tại và sau đó sử dụng chúng.
tham số trong bản dựng giao dịch của chúng tôi để phí giao dịch có thể được tính toán chính xác.
Đây là cách lấy tệp protocol.json. Đó là một truy vấn Cardano CLI khác. Xem này: nếu tôi chỉ đơn giản Kiểu 'Cardano CLI query', tôi có thể thấy tất cả các truy vấn có sẵn mà tôi có thể thực hiện bằng lệnh này và một trong số chúng được gọi là 'tham số giao thức'. Hãy sử dụng cái đó. 'Tham số giao thức truy vấn Cardano CLI.' Tôi sẽ nhấn enter lần nữa để tìm hiểu cách hoạt động của lệnh này. Nó nói rằng tôi phải chỉ định mạng mà tôi đang sử dụng và tùy chọn, tôi có thể chỉ định tệp Đầu ra mà tôi sẽ thực hiện. . Vì vậy, 'Tham số giao thức truy vấn Cardano CLI.' Tôi đang sử dụng bản tiền sản xuất, đó là Testnet Magic One và tôi sẽ lưu trữ tệp này trong một tệp có tên 'protocol.json.' Thông thường người ta gọi tệp này là protocol.json, nhưng bạn có thể gọi nó bằng bất cứ tên nào bạn muốn. Tôi khuyên bạn nên viết đơn giản: 'protocol.json.'
Bây giờ, tôi nghĩ đó thực sự là tất cả. Hãy thử xây dựng giao dịch này. Tôi chỉ cần sao chép và dán bước xây dựng vào thiết bị đầu cuối của mình. Được rồi, có vẻ như nó đã hoạt động. Một lần nữa, tôi có thể thấy phí giao dịch ước tính ở đây và tôi có thể thấy rằng tôi có một tệp mới, 'unlock_always_succeeds.raw,' khi tôi liệt kê các tệp trong thư mục giao dịch của mình. Nếu 'xây dựng giao dịch' của bạn hoạt động thành công, bạn chỉ cần ký và gửi giao dịch giống như trong các ví dụ trước. Có chúng tôi đi!
Một trong những cách yêu thích của tôi để tìm hiểu thêm về cách hoạt động của hợp đồng thông minh trên Cardano là thử xây dựng các giao dịch khác nhau và xem loại lỗi nào tôi có thể mắc phải. Đó là điều chúng tôi sẽ làm trong một số phiên viết mã trực tiếp sắp tới. Ngoài ra, khi viết mã trực tiếp, chúng ta sẽ khám phá các cách khác nhau để xử lý Datum. Trong trường hợp này, chúng tôi đã sử dụng Datum nội tuyến, nhưng chúng tôi không cần phải làm như vậy. Và chúng ta sẽ xem xét các cách khác nhau để tham chiếu tập lệnh Plutus khi chúng ta xây dựng một giao dịch. Tham gia với chúng tôi tại mã hóa trực tiếp vào Thứ Tư hoặc Thứ Năm để xem các cuộc biểu tình về các loại xây dựng giao dịch khác nhau. Xin lưu ý rằng các phiên mã hóa trực tiếp được ghi lại và bạn cũng có thể theo dõi bằng cách xem các video đó bất kỳ lúc nào.
Bây giờ bạn đã thấy vừa đủ để bắt đầu khóa và mở khóa các giao dịch, có một thách thức dành cho bạn trong bài tập Thông thạo tiếp theo bài học này. Tôi hy vọng bạn sẽ thử. Và nếu bạn gặp khó khăn, như mọi khi, vui lòng liên hệ với các câu hỏi. Toàn bộ mục đích của khóa học này là đề xuất các dự án cho bạn để bạn có thể tìm hiểu về sự phát triển của Cardano bằng cách thực hiện nó. Tôi hy vọng bạn có thời gian vui vẻ với bài tập Thông thạo và hẹn gặp lại bạn sớm.
Lesson 102.6: Bash Scripting for Reusing
Bài học 102.6: Bash Scripting để tái sử dụng
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn bạn đã xem Mô-đun 102. Trong vài bài học trước và các bài tập thành thạo, bạn đã tạo được các giao dịch đầu tiên của mình. Cho đến nay, chúng tôi đã chỉ cho bạn cách đặt biến trong thiết bị đầu cuối của bạn cũng như cách sao chép và dán các lệnh Cardano CLI khác nhau để bạn có thể sử dụng chúng trong thiết bị đầu cuối. Tuy nhiên, chúng tôi thường cần sử dụng lại các lệnh này, đó là lý do tại sao chúng tôi muốn kết thúc mô-đun này bằng cách xem nhanh một số tập lệnh Bash để sử dụng lại các lệnh phổ biến, bao gồm các giao dịch được viết bằng Cardano CLI.
Trong mẫu PPBL 2023 Plutus, có một thư mục mới gọi là 'bash-Scripts'. Nếu bạn đã sao chép kho lưu trữ này trong bài học trước, bạn sẽ có thể thực hiện những thay đổi này. Đây là cách thực hiện: thay đổi thư mục thành mẫu Plutus, sau đó chạy 'git pull' để đảm bảo bạn có tất cả các thay đổi mới nhất từ mẫu Plutus PPBL 2023. Bạn có thể thấy rằng có thư mục 'bash-Scripts'. Nếu bạn điều hướng bằng cách sử dụng môi trường phát triển tích hợp như Mã VS, bạn cũng có thể thấy thư mục tập lệnh Bash này. Bạn có thể điều tra bất kỳ tệp nào trong số này. Trong ví dụ này, 'querytip.sh', bạn có thể thấy một lệnh mà chúng tôi đã sử dụng một vài lần trong mô-đun này. Tập lệnh Bash đơn giản là bất kỳ thứ gì bạn có thể gõ
trên một dòng lệnh được viết trong tệp tập lệnh shell như tệp này, tệp này có thể được sử dụng lại.
Hãy thử nó ra. Tôi đã có một node đang chạy, vì vậy tôi sẽ thay đổi thư mục thành 'bash-Scripts' rồi thực thi 'bash querytip.sh'. Tôi sẽ thấy Đầu ra dự kiến. Tùy thuộc vào cách hệ điều hành của bạn được thiết lập, bạn có thể Kiểu 'bash' theo sau tên của tệp hoặc bạn có thể chỉ cần Kiểu một dấu chấm và tên của tệp. Trên máy tính này, tôi đã thiết lập để sử dụng 'bash'. Tuy nhiên, tôi đã gặp lỗi ở đây. Nó nói, 'querytip.sh dòng ba: không có tệp hoặc thư mục như vậy.' Hãy xem dòng ba của tệp 'querytip'. Nó nói 'biến nguồn/private.sh'. Nếu bạn muốn tận dụng tối đa các tập lệnh này, bạn có thể thiết lập tệp có tên 'biến-riêng tư'. Có một tệp ví dụ tên là 'variables-example.sh'. Bạn có thể tạo một bản sao của nó và đổi tên thành 'biến-riêng tư'. Sau đó, bạn có thể thêm một số biến ở đây mà bạn có thể không muốn chia sẻ công khai. Ví dụ: đường dẫn đến tệp 'node.socket' hoặc thông tin về ví CLI của bạn.
Trong kho lưu trữ này, có tệp '.gitignore'. Nó bỏ qua tệp 'biến-riêng tư' để nó không bị đẩy lên kho lưu trữ Git trực tuyến. Tôi khuyên bạn nên tự mình khám phá các tập lệnh này. Sử dụng tài liệu bên dưới video này để xem liệu bạn có thể làm cho từng tập lệnh hoạt động hay không. Nếu bạn gặp khó khăn, hãy chắc chắn để đặt câu hỏi. Khi khóa học này tiếp tục, chúng tôi sẽ bắt đầu bằng cách sao chép và dán các lệnh vào dòng lệnh và cung cấp các tập lệnh như thế này. Nếu bạn muốn thực hành tìm hiểu thêm về Cardano CLI và tập lệnh cùng một lúc, hãy xem tập lệnh 'send-lovelace-preprod' này. Cố gắng hiểu cách thức hoạt động của nó và sau đó cố gắng tạo tập lệnh như thế này để khóa hoặc mở khóa UTXO khỏi hợp đồng 'luôn thành công'.
Bash Scripting không cần thiết để trở thành nhà phát triển dưới bất kỳ hình thức nào, nhưng nó có thể là một cách thực sự hay để tự động hóa các quy trình và tìm hiểu thêm về cách thức hoạt động của các công cụ. Bất cứ khi nào tôi xây dựng một hợp đồng thông minh mới, tôi sẽ tạo một tập hợp các tập lệnh Bash đi kèm. Điều này giúp tôi đảm bảo rằng hợp đồng của tôi hoạt động như kỳ vọng và cho phép tôi lên kế hoạch cho những gì cần
được thực hiện ở mặt trước của một dự án. Trong Mô-đun 201, chúng ta sẽ khám phá cách tạo giao dịch từ giao diện người dùng và tham khảo các lệnh và tập lệnh Cardano CLI của chúng tôi như thế này để lập kế hoạch triển khai cần thiết ở giao diện người dùng.
Vậy là xong Mô-đun 102. Tôi hy vọng bạn đã học được điều gì đó trong quá trình thực hiện và tôi rất vui khi được nghe câu hỏi của bạn khi chúng ta tiếp tục học cùng nhau. Tất cả những điều tốt đẹp nhất, và hẹn gặp lại bạn sớm.
Lesson 103.1: Git Contribution Basics
Bài học 103.1: Khái niệm cơ bản về đóng góp Git
Xin chào các sinh viên, chào mừng các bạn đến với Plutus Project Based Learning (PBL) 2023. Cảm ơn các bạn đã xem video này. Trong bài học Nhà mẫu 103 này, chúng ta sẽ cùng nhau trả lời câu hỏi: Học PPVL 2023 để khởi công xây dựng sẽ học những gì? Chúng ta sẽ xem trong Bài học 103 cách đóng góp cho một dự án mã nguồn mở bằng Git. Đến cuối bài học này, bạn sẽ có thể nói, 'Tôi có thể đóng góp cho một dự án mã nguồn mở bằng Git.'
Nói chung, bài học này đóng vai trò giới thiệu cách đóng góp cho một dự án thông qua Git. Các bước chung như sau: Đầu tiên, tạo một hard fork. Thứ hai, sao chép kho lưu trữ cục bộ. Bước này là tùy chọn đối với bài tập của bạn trong bài học này, nhưng bạn có thể hoàn thành bài tập của mình mà không cần sao chép kho lưu trữ trên máy của mình. Tuy nhiên, trong cuộc sống hàng ngày của bạn với tư cách là một nhà phát triển, bạn sẽ phải đối phó với các động lực diễn ra trong bước này.
Vậy hãy bắt đầu. Đầu tiên, tạo một hard fork. Bạn đang ở đây trong Kho ứng dụng Gimbal. Nhấp vào 'Fork' và chọn 'Fork Project'. Trong trường 'URL dự án', hãy chọn một không gian tên và nhập tên người dùng của bạn. Cuối cùng, nhấp vào 'Dự án rẽ nhánh.' Hành động này sẽ đưa bạn đến hard fork Kho lưu trữ ứng dụng Gimbal của riêng bạn.
Tiếp theo, sao chép kho lưu trữ cục bộ. Chuyển đến kho lưu trữ và chọn 'Sao chép bằng HTTPS.' Sao chép URL. Mở một thiết bị đầu cuối mới trên máy của bạn, điều hướng đến kho lưu trữ gốc của bạn và thực hiện lệnh 'git clone [dán URL].' Nếu bạn kiểm tra tất cả các tệp trong thư mục gốc của mình, bạn sẽ thấy kho lưu trữ.
Tiếp theo, mở kho lưu trữ bằng cách thực thi 'cd [tên kho lưu trữ].' Tại thời điểm này, bạn sẽ có bản sao Kho lưu trữ ứng dụng Gimbal của riêng mình trên máy của mình. Điều này có nghĩa là bạn có thể làm việc trên bản sao này mà không sợ làm hỏng Kho lưu trữ ứng dụng Gimbal gốc.
Bây giờ, hãy thêm kho lưu trữ ban đầu, kho lưu trữ Himax Labs, làm điều khiển từ xa. Thực hiện lệnh 'git remote add upstream [dán URL của Kho lưu trữ ứng dụng Gimbal].' Bước này thiết lập kết nối giữa Kho lưu trữ ứng dụng Gimbal và bản fork của bạn, cho phép tương tác giữa cả hai kho lưu trữ.
Sau đó, thực hiện lệnh 'git branch.' Lệnh này cho bạn biết bạn hiện có bao nhiêu nhánh trong dự án của mình. Tại thời điểm này, bạn chỉ nên có một nhánh, 'chính'. Mặc dù bạn có thể làm bất cứ điều gì mình muốn với bản sao kho lưu trữ này, nhưng điều cần thiết là phải xử lý bản sao của bạn cẩn thận giống như cách bạn đối xử với Kho lưu trữ ứng dụng Gimbal. . Vì vậy, hãy tạo một nhánh mới, nhánh làm việc của bạn. Thực hiện lệnh 'git checkout -b [tên nhánh]' và chọn tên cho nhánh của bạn. Ví dụ: 'chi nhánh đang hoạt động.' Cuối cùng, mở Visual Studio Code bằng cách thực hiện lệnh 'code .'
Nếu bạn chưa cài đặt môi trường phát triển tích hợp (IDE) trên máy của mình, Visual Studio Code là một lựa chọn được khuyến nghị. Bạn có thể tải xuống và cài đặt nó từ trang Visual Studio chính thức.
Tiếp theo, chúng ta sẽ khám phá hai phương pháp để thực hiện thay đổi. Phương pháp 1 đang sử dụng môi trường cục bộ của bạn, áp dụng nếu bạn đã cài đặt Visual Studio Code hoặc bất kỳ môi trường phát triển nào khác. Phương pháp 2 trực tiếp từ GitLab mà không sử dụng bất kỳ môi trường cục bộ nào. Hãy bắt đầu với Phương pháp 1.
Trong Visual Studio Code, hãy mở trình duyệt của bạn và mở hai trang: một trang dành cho Visual Studio Code và một trang dành cho kho lưu trữ GitLab. Trong kho lưu trữ GitLab, tìm kiếm tên token của bạn. Khi bạn tìm thấy nó, sao chép tên. Sau đó, truy cập trang web chuyển đổi chuỗi thành hex. Dán tên token của bạn, chuyển đổi nó và sao chép kết quả thập lục phân.
Chuyển về Visual Studio Code Trong Visual Studio Code, mở terminal và thực hiện lệnh 'git config --global user.name [tên người dùng của bạn].' Lệnh này đặt tên người dùng của bạn cho Git. Tương tự, thực hiện lệnh 'git config --global user.email [email của bạn].' Lệnh này đặt email của bạn cho Git.
Bây giờ hãy thực hiện một số thay đổi cho dự án. Trong Visual Studio Code, điều hướng đến tệp bạn muốn sửa đổi. Thực hiện các sửa đổi cần thiết cho tập tin. Khi bạn đã hoàn tất, hãy lưu các thay đổi.
Để tạo giai đoạn cho những thay đổi bạn đã thực hiện, hãy chuyển đến thiết bị đầu cuối và thực hiện lệnh 'git add [tên tệp].' Lệnh này thêm tệp đã sửa đổi vào khu vực tổ chức. Nếu bạn muốn sắp xếp tất cả các tệp đã sửa đổi, bạn có thể sử dụng lệnh 'git add .' để thêm mọi thứ.
Tiếp theo, thực hiện các thay đổi bằng cách thực hiện lệnh 'git commit -m [commit message]
.' Thay thế [commit message] bằng một thông báo ngắn gọn và mô tả giải thích những thay đổi bạn đã thực hiện.
Sau khi các thay đổi được thực hiện, hãy đẩy các thay đổi vào hard fork của bạn bằng cách thực hiện lệnh 'git push origin [tên nhánh].' Lệnh này đẩy các thay đổi tới nhánh trong kho lưu trữ rẽ nhánh của bạn.
Bây giờ, hãy chuyển sang Phương pháp 2, bao gồm việc thực hiện các thay đổi trực tiếp từ GitLab. Mở trình duyệt của bạn và truy cập kho lưu trữ GitLab. Điều hướng đến tệp bạn muốn sửa đổi và nhấp vào biểu tượng bút chì để chỉnh sửa tệp.
Thực hiện các thay đổi cần thiết trực tiếp trong trình chỉnh sửa GitLab. Khi bạn đã hoàn tất, hãy cuộn xuống cuối trang và nhập thông báo cam kết vào trường được chỉ định. Thông báo này sẽ mô tả những thay đổi bạn đã thực hiện.
Cuối cùng, nhấp vào node Cam kết thay đổi
để lưu các sửa đổi trực tiếp vào kho lưu trữ.
Chúc mừng! Bạn đã thực hiện thành công các thay đổi đối với dự án mã nguồn mở bằng Git. Hãy nhớ rằng điều quan trọng là phải tuân theo các phương pháp viết mã tốt, chẳng hạn như viết mã rõ ràng và có tài liệu tốt, đồng thời tôn trọng các nguyên tắc và chính sách đóng góp của dự án.
Điều đó kết thúc Bài 103 của Học tập dựa trên dự án Plutus 2023. Trong bài học tiếp theo, chúng ta sẽ khám phá cách tạo yêu cầu kéo để gửi các thay đổi của bạn cho dự án ban đầu. Hãy theo dõi và tiếp tục công việc tốt!
Cảm ơn các bạn đã theo dõi và hẹn gặp lại các bạn trong bài học tiếp theo!`
Lesson 103.2: Learning Tips
Bài 103.2: Mẹo học tập
Xin chào và chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn đã xem qua video này. Trong mô-đun này, chúng tôi đặt câu hỏi: Bạn sẽ học được gì trong PPBL 2023? Hy vọng, có rất nhiều bạn sẽ học được. Đối với nhóm GimbaLabs, nó thực sự tóm gọn lại một điều: Chúng tôi muốn giúp bạn tìm hiểu cách đóng góp cho các dự án thực tế.
Trong Bài học 103.1, chúng tôi giới thiệu về cách đóng góp cho một dự án thông qua Git và đó là một ví dụ về kỹ năng quan trọng mà bạn cần có nếu bạn có thể đóng góp với tư cách là nhà phát triển cho các dự án thực tế. Nhưng có nhiều cách để đóng góp, và trong khóa học này, chúng tôi hy vọng rằng bạn có cơ hội khám phá những cách mà bạn hào hứng tham gia nhất. Chúng tôi tin rằng cho dù bạn là nhà phát triển, người quản lý dự án, nhà đầu tư hay người sáng lập, cho dù bạn đang xây dựng cộng đồng hay xây dựng hệ thống mới, thì đến một lúc nào đó, bạn có thể muốn biết thêm về cách các ứng dụng được xây dựng trên Cardano. Ngay cả khi bạn không phải là nhà phát triển, khả năng xem lại và sử dụng lại mã từ các dự án hiện có sẽ luôn hữu ích.
Trong bài học này, chúng tôi chỉ cung cấp tổng quan nhanh với một số khái niệm cơ bản cần chú ý khi bạn sử dụng lại mã. Ở cấp độ thực sự cao, có ba điều sau: Khi bạn muốn sử dụng lại mã, hãy đảm bảo rằng bạn biết cách sử dụng nó. Điều này luôn quan trọng, nhưng nó đặc biệt quan trọng khi chúng ta nói về hợp đồng thông minh. Nếu tôi sử dụng mã hợp đồng thông minh mà tôi chưa xác thực cho chính mình, làm sao tôi biết được rằng không có gì ẩn trong mã có thể khiến tôi mất token? Điều quan trọng là chúng tôi biết hợp đồng thông minh hoạt động như thế nào và có những người đáng tin cậy để hỏi khi chúng tôi không chắc chắn.
Thứ hai, luôn đảm bảo kiểm tra giấy phép trên mã và đảm bảo rằng bạn được phép sử dụng nó. Và nếu mã là mã nguồn mở, hãy cố gắng đóng góp, ngay cả khi chỉ bằng cách chào và cảm ơn nhóm đã xây dựng mã mà bạn đang sử dụng, bằng cách viết tài liệu hoặc bằng cách đóng góp trực tiếp bằng các cải tiến cho dự án.
Chúng tôi muốn tất cả mọi người làm việc thông qua Plutus PBL 2023 ít nhất phải học đủ để hiểu cách hoạt động của quá trình phát triển Cardano, cho dù bạn muốn trở thành nhà phát triển, người quản lý dự án, nhà thiết kế hệ thống hay người sáng lập công ty khởi nghiệp. Chúng tôi hy vọng rằng khóa học này cung cấp cho bạn đủ kiến thức nền tảng để có một số ý tưởng thực sự tuyệt vời.
Nếu bạn muốn kiểm tra bản thân về mục tiêu học tập này, đây là bài kiểm tra mà bạn có thể thử bất cứ lúc nào. Tất cả những gì bạn phải làm là hỏi trợ lý AI cách viết một số mã. Hãy thử điều này: Làm cách nào để tôi viết trình xác thực luôn thành công trong PlutusTX? Bây giờ, tôi không thực sự quan tâm đến những chi tiết cụ thể mà câu trả lời này muốn nói với tôi. Điều tôi quan tâm hơn nhiều là biết liệu bạn có nghĩ rằng đây là một phản hồi tốt hay không. Chẳng hạn, không phải ai cũng có thể viết trình xác thực Plutus, nhưng ít nhất, bạn có thể đọc được không? Bạn có thể hiểu những gì nó nói và quyết định xem bạn nghĩ phản hồi này từ AI là chính xác hay không? Và chúng ta có thể làm bài kiểm tra tương tự bằng các ngôn ngữ khác. Ví dụ: trong mô-đun tiếp theo, chúng tôi sẽ bắt đầu xây dựng ứng dụng giao diện người dùng và trong trường hợp này, chúng tôi sẽ sử dụng thư viện có tên Chakra UI. . Vì vậy, tôi có thể đặt câu hỏi như, Làm cách nào để tạo đàn accordion với Chakra UI?
Cho dù tôi đang kiểm tra hiểu biết của mình về Plutus hay, trong trường hợp này, một dự án dựa trên JavaScript trong React, các dịch vụ trò chuyện AI cung cấp cho tôi cách để thực hành liệu
hoặc không thì tôi có thể đọc mã, ngay cả khi mục tiêu của tôi là không thể viết nó.
Tôi hy vọng bạn thấy thú vị với đề xuất này và tôi rất mong được cùng bạn xây dựng một số mã trong những tháng tới.
Lesson 103.3:
Bài 103.3:
Xin chào và chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn đã xem qua video này. Trong mô-đun này, chúng tôi đặt câu hỏi: Bạn sẽ học được gì trong PPBL 2023? Hy vọng, có rất nhiều bạn sẽ học được. Đối với nhóm GimbaLabs, nó thực sự tóm gọn lại một điều: Chúng tôi muốn giúp bạn tìm hiểu cách đóng góp cho các dự án thực tế.
Trong Bài học 103.1, chúng tôi giới thiệu về cách đóng góp cho một dự án thông qua Git và đó là một ví dụ về kỹ năng quan trọng mà bạn cần có nếu bạn có thể đóng góp với tư cách là nhà phát triển cho các dự án thực tế. Nhưng có nhiều cách để đóng góp, và trong khóa học này, chúng tôi hy vọng rằng bạn có cơ hội khám phá những cách mà bạn hào hứng tham gia nhất. Chúng tôi tin rằng cho dù bạn là nhà phát triển, người quản lý dự án, nhà đầu tư hay người sáng lập, cho dù bạn đang xây dựng cộng đồng hay xây dựng hệ thống mới, thì đến một lúc nào đó, bạn có thể muốn biết thêm về cách các ứng dụng được xây dựng trên Cardano. Ngay cả khi bạn không phải là nhà phát triển, khả năng xem lại và sử dụng lại mã từ các dự án hiện có sẽ luôn hữu ích.
Trong bài học này, chúng tôi chỉ cung cấp tổng quan nhanh với một số khái niệm cơ bản cần chú ý khi bạn sử dụng lại mã. Ở cấp độ thực sự cao, có ba điều sau: Khi bạn muốn sử dụng lại mã, hãy đảm bảo rằng bạn biết cách sử dụng nó. Điều này luôn quan trọng, nhưng nó đặc biệt quan trọng khi chúng ta nói về hợp đồng thông minh. Nếu tôi sử dụng mã hợp đồng thông minh mà tôi chưa xác thực cho chính mình, làm sao tôi biết được rằng không có gì ẩn trong mã có thể khiến tôi mất token? Điều quan trọng là chúng tôi biết hợp đồng thông minh hoạt động như thế nào và có những người đáng tin cậy để hỏi khi chúng tôi không chắc chắn.
Thứ hai, luôn đảm bảo kiểm tra giấy phép trên mã và đảm bảo rằng bạn được phép sử dụng nó. Và nếu mã là mã nguồn mở, hãy cố gắng đóng góp, ngay cả khi chỉ bằng cách chào và cảm ơn nhóm đã xây dựng mã mà bạn đang sử dụng, bằng cách viết tài liệu hoặc bằng cách đóng góp trực tiếp bằng các cải tiến cho dự án.
Chúng tôi muốn tất cả mọi người làm việc thông qua Plutus PBL 2023 ít nhất phải học đủ để hiểu cách hoạt động của quá trình phát triển Cardano, cho dù bạn muốn trở thành nhà phát triển, người quản lý dự án, nhà thiết kế hệ thống hay người sáng lập công ty khởi nghiệp. Chúng tôi hy vọng rằng khóa học này cung cấp cho bạn đủ kiến thức nền tảng để có một số ý tưởng thực sự tuyệt vời.
Nếu bạn muốn kiểm tra bản thân về mục tiêu học tập này, đây là bài kiểm tra mà bạn có thể thử bất cứ lúc nào. Tất cả những gì bạn phải làm là hỏi trợ lý AI cách viết một số mã. Hãy thử điều này: Làm cách nào để tôi viết trình xác thực luôn thành công trong PlutusTX? Bây giờ, tôi không thực sự quan tâm đến những chi tiết cụ thể mà câu trả lời này muốn nói với tôi. Điều tôi quan tâm hơn nhiều là biết liệu bạn có nghĩ rằng đây là một phản hồi tốt hay không. Chẳng hạn, không phải ai cũng có thể viết trình xác thực Plutus, nhưng ít nhất, bạn có thể đọc được không? Bạn có thể hiểu những gì nó nói và quyết định xem bạn nghĩ phản hồi này từ AI là chính xác hay không? Và chúng ta có thể làm bài kiểm tra tương tự bằng các ngôn ngữ khác. Ví dụ: trong mô-đun tiếp theo, chúng tôi sẽ bắt đầu xây dựng ứng dụng giao diện người dùng và trong trường hợp này, chúng tôi sẽ sử dụng thư viện có tên Chakra UI. . Vì vậy, tôi có thể đặt câu hỏi như, Làm cách nào để tạo đàn accordion với Chakra UI?
Cho dù tôi đang kiểm tra hiểu biết của mình về Plutus hay, trong trường hợp này, một dự án dựa trên JavaScript trong React, các dịch vụ trò chuyện AI cung cấp cho tôi cách để thực hành liệu
hoặc không thì tôi có thể đọc mã, ngay cả khi mục tiêu của tôi là không thể viết nó.
Tôi hy vọng bạn thấy thú vị với đề xuất này và tôi rất mong được cùng bạn xây dựng một số mã trong những tháng tới.
Lesson 203.1: Minting NFTs with Metadata
Bài học 203.1: Đúc NFT bằng siêu dữ liệu
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn bạn đã xem video này. Đây là bài học đầu tiên trong Mô-đun 203: Ba cách để đúc một NFT. Để bắt đầu, điều đầu tiên chúng tôi phải làm là xem cách thêm siêu dữ liệu vào giao dịch Cardano. Như bạn sẽ thấy, chúng tôi sẽ xây dựng dựa trên một số kiến thức trước đây. Nếu bạn đã biết cách xây dựng một giao dịch đơn giản bằng Cardano CLI, bạn sẽ thấy rằng việc thêm siêu dữ liệu chỉ là một bước bổ sung. Bạn cũng sẽ có cơ hội thực hành sử dụng một số tập lệnh Bash để xây dựng các giao dịch có thể tái sử dụng.
Trước khi tiếp tục, hãy nghĩ về những gì chúng tôi đã biết về các giao dịch. Trước hết, bạn nên làm quen với khái niệm rằng mọi giao dịch Cardano đều lấy một bộ gồm một hoặc nhiều UTXO làm Đầu vào và tạo một bộ mới gồm một hoặc nhiều UTXO làm Đầu ra. Nếu cụ thể hơn một chút, chúng tôi có thể nói về những gì được thể hiện trong mỗi UTXO này. Ví dụ: mọi UTXO đều chứa một số giá trị, ít nhất là một lượng Lovelace tối thiểu và có khả năng là một số token bổ sung. Một UTXO cũng có thể bao gồm một số Datum. Datum là thông tin có thể được lưu trữ trong UTXO và được đọc bởi các hợp đồng thông minh đang xác thực giao dịch.
Nhưng Datum không phải là nơi duy nhất thông tin có thể được lưu trữ trên blockchain. Mỗi giao dịch bao gồm một bản ghi thông tin nhất định. Ví dụ: hàm hash của giao dịch, nó được bao gồm trong khối nào, phí cho giao dịch đó, token mới có được đúc hay đốt hay không và một thứ gọi là siêu dữ liệu. Đây không phải là một danh sách đầy đủ. Đây là ảnh chụp màn hình từ tài liệu Cardano GraphQL và bạn có thể thấy có rất nhiều thông tin khác nhau mà chúng tôi có thể truy vấn về một giao dịch. Ví dụ, nhìn vào Đầu vào và Đầu ra của nó. Điều đó khá quan trọng khi bạn bắt đầu xây dựng các ứng dụng và tất cả các loại logic hợp đồng thông minh khác nhau. Đây là loại thông tin thực sự có ích.
Đối với bài học này, tôi chỉ muốn tập trung vào phần siêu dữ liệu. Siêu dữ liệu trông như thế này: đó là một đối tượng. Và nếu bạn đã quen thuộc với JSON, thì điều này sẽ trông quen thuộc. Nó có một khóa và một giá trị. Trong siêu dữ liệu giao dịch Cardano, khóa phải là một số nguyên được đặt trong dấu ngoặc kép. . Vì vậy, ví dụ: chúng tôi có thể đặt khóa 2023
trong dấu ngoặc kép và sau đó một chuỗi có thể là giá trị của siêu dữ liệu này. Hoặc tôi có thể sử dụng một số khác và giá trị có thể là một số nguyên đơn giản trong trường hợp này không có dấu ngoặc kép.
Tổng cộng, có năm thứ khác nhau mà một giá trị có thể là: một chuỗi hoặc một số nguyên như bạn vừa thấy, một chuỗi byte thực sự có ích nhưng chúng tôi sẽ không trình bày ngay bây giờ, một danh sách bất kỳ thứ nào khác các mục hoặc một đối tượng tùy chỉnh bao gồm một số kết hợp của các loại giá trị này. Và đối tượng này tuân theo ký hiệu JSON tiêu chuẩn.
Trong bài học tiếp theo, bạn sẽ thấy cách viết siêu dữ liệu áp dụng cụ thể tiêu chuẩn phương tiện NFT trên Cardano. Nhưng hiện tại, chúng tôi sẽ xem xét sơ bộ về cách thêm siêu dữ liệu đơn giản vào một giao dịch. Sau đó, bạn sẽ thấy rằng bạn có thể xem siêu dữ liệu của mình ở cuối trang bài học này bằng cách sử dụng truy vấn GraphQL.
Bắt đầu nào. Trong trình chỉnh sửa mã của mình, tôi đã mở mẫu PPBL 2023 Plutus. Tôi sẽ luôn đảm bảo chạy git pull
để đảm bảo rằng tôi có các thay đổi mới nhất. Và bạn sẽ biết mình đã cập nhật video này nếu bạn có thể tìm thấy tập lệnh có tên sendTX với siêu dữ liệu đơn giản
. Hãy mở nó ra.
Tập lệnh này sẽ hướng dẫn bạn quy trình tạo, ký và gửi giao dịch bao gồm một số siêu dữ liệu đơn giản. Và nếu bạn đã xem các tập lệnh đúc token được cung cấp trong Mô-đun 202, thì điều này sẽ khá quen thuộc. Tôi sẽ để bạn khám phá phần lớn tệp này, nhưng điều tôi muốn xem cùng nhau là dòng mới ngay tại đây có nội dung metadata-Json-File
và sau đó cung cấp đường dẫn đến một số tệp JSON.
Trước khi chúng tôi có thể tạo giao dịch này, chúng tôi sẽ phải đảm bảo rằng tệp này tồn tại. Bây giờ, bạn có thể thay đổi đường dẫn nếu muốn, nhưng tôi sẽ sử dụng đường dẫn được bao gồm ở đây. . Vì vậy, trong thư mục hiện tại, Bash Scripts, tôi có thể tạo một thư mục mới và tôi sẽ gọi nó là metadata
. Sau đó, bên trong thư mục đó, tôi sẽ tạo một tệp mới có tên message.json
. Trong tài liệu bên dưới video này, bạn có thể xem nội dung của message.json
sẽ như thế nào.
Chúng tôi có các dấu ngoặc nhọn mở và đóng, một khóa, trong trường hợp này là 2023
và một giá trị, trong trường hợp này là một chuỗi đơn giản. Tôi sẽ sao chép nó và dán nó ở đây. Và bạn có thể tùy chỉnh thông báo này thành bất cứ điều gì bạn muốn. Đối với phần này, tôi sẽ nói, Trực tiếp từ video Bài học 203.1!
cùng với một dấu chấm than để đo lường hiệu quả. Dù bạn chọn viết tin nhắn nào, bạn sẽ bị giới hạn ở độ dài 56 ký tự. Nếu bạn cố gắng đưa vào một thông báo dài hơn thế, bạn sẽ gặp lỗi khi cố tạo giao dịch này. Tất nhiên, có nhiều cách để viết các chuỗi dài hơn và chúng tôi sẽ đề cập đến điều đó trong bài học tiếp theo.
Khi tệp message.json
của bạn được chuẩn bị thành công, bạn có thể chỉ cần sử dụng tập lệnh được cung cấp để hoàn tất giao dịch của mình. Tôi sẽ điều hướng đến thư mục tập lệnh Bash, sau đó tôi sẽ thử chạy tập lệnh này. Và bạn có thể thấy ở đây, tôi nhận được thông báo sử dụng cho biết tôi cần bao gồm đường dẫn đến thư mục ví. Lý do tôi có thể thấy thông báo này là vì nó là một phần của shell Script. Và vâng, chúng tôi cần cung cấp đường dẫn đến ví làm đối số dòng lệnh đầu tiên và duy nhất. Hãy thử lại. Lần này, tôi sẽ cung cấp đường dẫn đến ví dụ PPBL 2023 của mình, ví dụ mà tôi có thể thấy ngay tại đây.
Tôi đã tạo tệp message.json
của mình như được mô tả trước đó trong video này, vì vậy tôi sẵn sàng bắt đầu. Và tại đây, bạn có thể thấy tập lệnh được tìm thấy trong tệp message.json
với những nội dung này. Và bạn cũng có thể thấy rằng ví của tôi đã được tải thành công. Chúng tôi sẽ gửi một giao dịch trở lại địa chỉ của tôi. Tuyệt vời! Tất cả những gì tôi phải làm bây giờ là chọn một UTXO sẽ chi trả phí giao dịch. Cái này có 7,3 Ada trong đó, số bảy. Điều đó là đủ tốt. Bạn có thể thấy chúng tôi đang xây dựng một giao dịch. Chúng tôi có thể thấy rằng nó đã thành công vì có phí giao dịch ước tính. Giao dịch được ký và gửi và chúng tôi nhận được thông báo thành công ngay tại đây.
Bây giờ tất cả những gì tôi phải làm là đợi giao dịch này được xác nhận on-chain và tôi sẽ có thể xem siêu dữ liệu này. Sau khi đợi vài phút, tôi thực sự có thể truy vấn lại địa chỉ này để xác nhận rằng giao dịch của tôi đã được thực hiện. Khi tôi tạo giao dịch, tôi có tám UTXO tại địa chỉ này và hãy nhớ rằng, tôi chỉ cố gắng chi tiêu cái này, cái bắt đầu b3ce
. Tôi sẽ sao chép địa chỉ này và sau đó tôi có thể sử dụng tập lệnh get-address-utxo
được cung cấp với địa chỉ đó làm đối số để xem các UTXO mới trong ví này.
Bây giờ tôi vẫn có tám UTXO, nhưng cái có khoảng 7
ETA trong đó là khác nhau. Hãy nhìn xem, nó từng có khoảng 7,3 Ada và hàm hash giao dịch b3ce7.
. Bây giờ nó có khoảng 7.1 Ada và một hàm hash giao dịch mới. Nhưng siêu dữ liệu ở đâu? Một cách để xem nó là tôi có thể sao chép hàm hash giao dịch này và chuyển đến Cardanoscan Preprad, nơi tôi có thể tìm kiếm giao dịch này. Khi tôi làm như vậy, tôi có thể thấy rằng nó có một số siêu dữ liệu. Và chắc chắn rồi, đây là siêu dữ liệu mà tôi đã đưa vào, khóa và giá trị.
Ở cuối trang bên dưới video này, bạn cũng sẽ thấy trực tiếp phần trình bày siêu dữ liệu này trong khóa học PPBL 2023. Hãy xem và bạn có thể điều tra cách thức hoạt động của nó. Cuối cùng, bạn cũng có thể chọn khám phá cách hoạt động của siêu dữ liệu giao dịch với Lưới hoặc với Game Changer. Cả hai đều cung cấp các công cụ để đưa siêu dữ liệu giao dịch lên chuỗi. Đây là giao diện của Lưới và Công cụ thay đổi trò chơi. Bạn có thể điều hướng đến sân chơi và chọn Bản trình diễn siêu dữ liệu Hello World
từ trình đơn trình diễn.
Dù bằng cách nào, tôi rất mong muốn được biết về những gì bạn khám phá được trong quá trình khám phá Lưới, Công cụ thay đổi trò chơi và các công cụ khác trong quá trình khám phá. Hiện tại, chúng tôi đã có đủ kiến thức cơ bản để bắt đầu đúc các NFT Cardano thực sự. Đó là những gì chúng tôi sẽ làm trong bài học tiếp theo. Hẹn gặp bạn ở đó!
Lesson 203.2: Cardano NFT Metadata Standard
Bài học 203.2: Tiêu chuẩn siêu dữ liệu Cardano NFT
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn bạn đã xem video này. Trong bài học này, bạn sẽ tìm hiểu cách tạo Cardano NFT tuân thủ các tiêu chuẩn CIP-25 hiện có. Bạn sẽ thấy một cách cụ thể để sử dụng siêu dữ liệu để đúc Cardano NFT. Bạn cũng sẽ biết rằng tiêu chuẩn để đúc Cardano NFT tham chiếu phương tiện như hình ảnh, âm thanh hoặc tệp video được xác định trong ZIP-25 hoặc Đề xuất cải tiến Cardano 25.
Trong video này, tôi sẽ cung cấp cho bạn một số kiến thức cơ bản để xem xét, nhưng tôi sẽ không trình bày cách thực sự đúc một NFT. Đó là để bạn khám phá trong bài tập Thông thạo tiếp theo bài học này. Tôi rất vui khi thấy những gì bạn đạt được và những câu hỏi bạn đưa ra khi chúng ta áp dụng phương pháp vừa học vừa làm này.
Trong bài học trước, chúng ta đã xây dựng một sơ đồ cho thấy rằng các giao dịch lấy UTXO làm Đầu vào, tạo UTXO làm Đầu ra và có thể bao gồm siêu dữ liệu cùng với thông tin khác. Siêu dữ liệu này có thể chứa thông tin tùy biến trong một giao dịch được ghi lại trên blockchain. Bây giờ, hãy điều tra một trường hợp sử dụng cụ thể cho siêu dữ liệu giao dịch: tiêu chuẩn siêu dữ liệu NFT phương tiện trên Cardano.
Trước khi chúng ta bắt đầu, có một vài điều cần lưu ý. Đầu tiên, như bạn đã thấy trong bài học trước, khóa siêu dữ liệu có thể là bất kỳ số nguyên dương nào. Tuy nhiên, nếu chúng tôi đang đúc NFT, thì khóa phải là 721. Điều này giúp các ứng dụng Cardano xác định siêu dữ liệu NFT on-chain. Giá trị phải tuân theo một định dạng đặc biệt được xác định trong Đề xuất cải tiến Cardano số 25. Bạn có thể tìm thấy tất cả các Đề xuất cải tiến Cardano tại sips.Cardano.org. Trong trường hợp này, chúng tôi đang đề cập đến CIP-25, tiêu chuẩn siêu dữ liệu NFT phương tiện.
Tôi thực sự khuyên bạn nên đọc qua đề xuất này một cách cẩn thận. Hãy cuộn xuống nơi cấu trúc của siêu dữ liệu được xác định. Tại đây, bạn có thể thấy đó là một đối tượng JSON với key là 721 và giá trị tương ứng là một đối tượng khác. Bên trong đối tượng này, có thêm các khóa và giá trị lồng nhau. Khóa đầu tiên chúng tôi gặp là ID chính sách cho token. Bạn đã tìm hiểu về ID chính sách trong mô-đun 202 và bạn cần sử dụng chúng để đúc NFT tuân thủ tiêu chuẩn này.
Tiếp theo, chúng ta có một đối tượng khác làm giá trị cho khóa này và bên trong đối tượng đó, có một khóa mới: tên nội dung hoặc tên token. on-chain, một nội dung được đại diện bởi ID chính sách và tên nội dung. Nếu bạn đã quen thuộc với các đối tượng JSON lồng nhau, bạn có thể nhận ra rằng cách để truy cập các chi tiết nội dung này là viết tên nội dung chấm ID chính sách. Thật thú vị khi nghĩ về cách các tài sản được thể hiện bằng Cardano CLI, vì ID chính sách chấm tên tài sản cũng là những gì chúng ta thấy trong Context đó.
Cuối cùng, chúng tôi có thông tin mô tả thực tế về phương tiện trong NFT này. Một số trường này là bắt buộc, trong khi những trường khác là tùy chọn. Bạn có thể đọc thêm về điều đó dưới đây. Các trường bao gồm tên, liên kết hình ảnh, Kiểu phương tiện, mô tả và danh sách các tệp bổ sung. Đây là những thuộc tính phổ biến trong siêu dữ liệu NFT và tùy thuộc vào trường hợp sử dụng của bạn, bạn cũng có thể thêm các thông tin khác. Trong ví dụ bên dưới video này, chúng tôi sẽ làm cho nó đơn giản bằng cách không bao gồm quá nhiều thông tin bổ sung.
Bây giờ, hãy thảo luận về nơi hình ảnh được lưu trữ. Khi đúc NFT, bạn có thể thấy ở đây rằng liên kết hình ảnh trỏ đến một trang web đơn giản, gimbalabs.com, nơi lưu trữ hình ảnh của GimbaLabs 'G'. Tuy nhiên, có một vấn đề với liên kết hình ảnh này. Nó không phải là vĩnh viễn, vì các máy chủ GimbaLabs có thể hoạt động
xuống, hình ảnh có thể bị xóa hoặc GimbaLabs có thể ngừng tồn tại. Trong trường hợp đó, điều gì sẽ xảy ra với miền này và mọi thứ được lưu trữ trên đó? Trong CIP-25, nếu chúng tôi cuộn xuống phần chi tiết về thuộc tính hình ảnh, bạn có thể thấy rằng IPFS được đề xuất nhưng không bắt buộc. Liên kết đến hình ảnh có thể là địa chỉ HTTP điển hình hoặc chúng có thể là địa chỉ IPFS hoặc RWeave. . Vì vậy, bạn nên lưu trữ hình ảnh NFT của mình ở đâu?
Điều quan trọng cần hiểu bây giờ là không có thông số kỹ thuật chính thức nào trong CIP-25 về slot hoặc cách thức lưu trữ hình ảnh. Trong nhiều cộng đồng NFT, có một kỳ vọng rằng hình ảnh được lưu trữ trên một số giải pháp phi tập trung. Ví dụ mà tôi đang cho bạn xem với 'G' được lưu trữ trên GimbaLabs có lẽ sẽ không tạo được niềm tin cho những người sưu tập NFT. Tuy nhiên, đây là một thỏa thuận xã hội và nó không được thực thi on-chain hoặc thậm chí trong CIP này. Đối với các nhà phát triển làm việc trên Cardano, điều quan trọng là phải phân biệt giữa các tính năng không thể thay đổi của giao thức blockchain Lớp 1 cơ bản, các tiêu chuẩn đã được thống nhất như tiêu chuẩn này và thậm chí cả các tiêu chuẩn cộng đồng không chính thức. Ví dụ: nơi lưu trữ các tệp hình ảnh.
Nếu bạn muốn tìm hiểu thêm về IPFS và RWeave, một số liên kết được cung cấp bên dưới. Tuy nhiên, đi sâu vào tất cả các chi tiết này nằm ngoài phạm vi của bài học này. Với một chút nghiên cứu, bạn có thể tìm thấy tài liệu tuyệt vời về các hệ thống này.
Bây giờ, hãy tập trung vào một khía cạnh khác của CIP. Ở đây, chúng tôi có một danh sách các chuỗi. Đây là cách bạn xử lý bất kỳ chuỗi nào dài hơn 56 ký tự trong siêu dữ liệu giao dịch Cardano. Bạn có thể chỉ cần tách một chuỗi thành nhiều chuỗi con và gộp tất cả chúng vào một mảng. Đó là lý do tại sao khi xem xét tiêu chuẩn siêu dữ liệu, tôi có thể thấy rằng các tùy chọn của mình cho hình ảnh, mô tả hoặc các trường khác có thể là một chuỗi hoặc một mảng hoặc một URI. Một số URL trên internet có thể dài hơn 56 ký tự và đó là lý do tại sao chúng tôi có tùy chọn sử dụng mảng ở đây.
Quay trở lại những gì được viết trong CIP, có hai điểm nữa tôi muốn nhấn mạnh. Đầu tiên, thuộc tính Kiểu và tệp phương tiện là tùy chọn. Hãy nhìn vào những cái đó. Phương tiện Kiểu, mô tả hình ảnh của chúng tôi, là tùy chọn, cũng như danh sách tệp bổ sung. Bạn có thể thoát khỏi mà không bao gồm chúng. Tuy nhiên, nếu bạn chọn sử dụng phương pháp này, thông thường bạn nên đưa vào hình ảnh có độ phân giải cao hơn. Điều này cho phép các ứng dụng hướng tới người dùng có hình ảnh thu nhỏ có kích thước tệp nhỏ và tải nhanh, trong khi vẫn cung cấp hình ảnh có chất lượng cao hơn hoặc độ phân giải cao hơn cho những người đam mê nghệ thuật kỹ thuật số.
Cuối cùng, hãy thảo luận ngắn gọn về cách truy xuất siêu dữ liệu cho một token cụ thể. Trong bài học tiếp theo, chúng ta sẽ so sánh một Đề xuất cải tiến Cardano khác với CIP-25 và chúng ta sẽ bắt đầu so sánh các quy trình khác nhau này. Theo CIP, một công cụ của bên thứ ba có thể tìm nạp siêu dữ liệu token một cách liền mạch. Điều này có nghĩa là ai đó sẽ phải xây dựng các ứng dụng tuân thủ tiêu chuẩn này để mọi người có thể xem NFT như kỳ vọng. Ví dụ: khi xây dựng một công cụ hoặc ứng dụng như ví, đây là các bước:
- Tra cứu giao dịch đúc cho token được đề cập.
- Trên giao dịch đúc tiền, hãy tìm siêu dữ liệu và tìm khóa 721. Điều quan trọng cần lưu ý là siêu dữ liệu giao dịch có thể bao gồm một số khóa khác nhau, với 721 là một trong số đó.
- Trong khóa 721, hãy tìm ID chính sách cụ thể và tên nội dung được đề cập.
- Bây giờ, bạn sẽ có thể truy cập siêu dữ liệu cho token.
Đây là một điểm quan trọng để hiểu. Nếu không có các nhà phát triển ứng dụng tuân theo các bước này, thì điều gì xảy ra on-chain cũng không thành vấn đề. Bạn đã học cách mint nội dung gốc và bây giờ bạn đang học cách bao gồm siêu dữ liệu.
Chúng tôi có thể đặt tất cả các loại token và siêu dữ liệu on-chain, nhưng để có trải nghiệm xem NFT trong ứng dụng hoặc ví, các nhà phát triển phải tạo các công cụ tuân thủ tiêu chuẩn này để người thu thập NFT có thể có trải nghiệm mà chúng kỳ vọng.
Tóm lại, cần có những gì để tạo Cardano NFT? Bạn phải xây dựng siêu dữ liệu tuân theo tiêu chuẩn CIP-25, tạo tập lệnh đúc và lấy ID chính sách tương ứng của nó (như bạn đã học trong Mô-đun 202) và chuẩn bị liên kết đến tệp hình ảnh hoặc phương tiện được lưu trữ ở đâu đó. Mặt khác, những gì không được yêu cầu hoặc chỉ định rõ ràng? Kiểu
của tập lệnh đúc tiền không quan trọng miễn là bạn có ID chính sách. Bạn có thể sử dụng tập lệnh gốc hoặc tập lệnh Plutus để đúc token. Nó cũng không quy định rằng NFT phải là đa chữ ký, mặc dù một số cộng đồng muốn thấy chính sách đúc nhiều chữ ký. Tương tự, hình ảnh có thể được lưu trữ trên bộ lưu trữ phi tập trung như IPFS hoặc RWeave, nhưng đó không phải là yêu cầu kỹ thuật.
Bây giờ bạn đã có tất cả thông tin này, có hai điều bạn có thể làm. Trước tiên, bạn có thể tiếp tục tìm hiểu trong hướng dẫn Đúc lưới được chia sẻ trong mô-đun trước. Hướng dẫn này sẽ hướng dẫn bạn toàn bộ quá trình tạo một loạt NFT, vì vậy nếu bạn quan tâm đến việc phát triển ứng dụng giao diện người dùng bằng cách sử dụng Lưới, tôi thực sự khuyên bạn nên làm theo hướng dẫn này. Thứ hai, nếu bạn thích khám phá Game Changer, bạn có thể thấy rằng việc đúc NFT được tích hợp trực tiếp vào ví. Với một chút mày mò, bạn có thể làm cho nó hoạt động. Để có ví dụ thực hành về đúc NFT đầu tiên của bạn với Cardano CLI, hãy đảm bảo điều hướng đến bài tập sau bài học này. Đây là một bài tập Thông thạo có hướng dẫn và tất cả các hướng dẫn cũng như tập lệnh trình bao đều được cung cấp.
Trong nhiệm vụ này, bạn sẽ đúc một NFT bằng tập lệnh đúc Plutus có các quy tắc xác thực nhất định. Bạn sẽ tìm thấy một liên kết đến trình xác thực đúc tiền và các hướng dẫn bạn cần. Trình xác thực đúc xác định một số ràng buộc: chỉ có thể đúc một token tại một thời điểm, như được xác định với kiểm tra số lượng đúc', Đầu vào phải bao gồm token PPBL 2023 của bạn (mã bạn đã đúc trong Mô-đun 100, vì vậy bạn sẽ cần để gửi lại ví CLI của bạn) và cuối cùng, tên của NFT mới mà bạn đúc phải khớp với token PPBL 2023 của bạn mà không có số có ba chữ số ở đầu tên token. Bạn có thể nhận thấy rằng token PPBL 2023 của mình có
222` ở đầu tên. Điều này là do token PPBL 2023 của bạn không tuân theo tiêu chuẩn CIP-25 NFT; chúng thực sự tuân theo một tiêu chuẩn mới gọi là CIP-68, chúng ta sẽ tìm hiểu tiêu chuẩn này trong bài học tiếp theo.
Tôi hy vọng bạn thấy vui vẻ với nhiệm vụ Thông thạo này và đúc thành công CIP-25 PPBL NFT của mình. Khi bạn hoàn thành nó, chúng ta sẽ sẵn sàng khám phá CIP-68 cùng nhau. Hẹn sớm gặp lại.
Lesson 203.3: Cardano CIP Exploration
Bài học 203.3: Thăm dò CIP Cardano
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ GimbaLabs. Cảm ơn bạn đã xem video này. Mục tiêu học tập 203.3 nói rằng tôi biết nơi để tìm hiểu thêm về Đề xuất cải tiến Cardano. Đây là địa chỉ: sips.Cardano.org. Đảm bảo đánh dấu trang này. Đây là một video ngắn, nhưng là một bài học rất quan trọng và chúng tôi thực sự muốn làm nổi bật điều này. Nếu tôi phải đề xuất một trang web nên truy cập cho bất kỳ ai muốn trở thành nhà phát triển trên Cardano, thì đây sẽ là trang web đó.
Quy trình Đề xuất Cải tiến Cardano được tích hợp vào cách Cardano hoạt động và đó là cầu nối giữa blockchain bất biến mà tất cả chúng ta đang xây dựng và cộng đồng toàn cầu mà chúng ta đang trở thành. Quy trình CIP cho phép cộng đồng cùng nhau đề xuất và tinh chỉnh các quy trình và thiết kế sẽ thúc đẩy tương lai của Cardano. Bằng cách duyệt trang web này, đọc Đề xuất cải tiến Cardano và, nếu bạn muốn, tham gia vào quá trình này, bạn sẽ hiểu và đóng góp cho công việc ở slot hàng đầu trong quá trình phát triển Cardano.
Cuộn qua danh sách các đề xuất, bạn có thể nhấp qua và xem bất kỳ đề xuất nào có vẻ thú vị nhất đối với bạn. Chúng ta đã xem xét CIP25 trong bài học trước. Có các CIP khác về siêu dữ liệu. Một số, chẳng hạn như những cái xung quanh Đầu vào tham chiếu và Datum nội tuyến và tập lệnh tham chiếu, đã được triển khai ở cấp độ giao thức trong các sự kiện hard fork
gần đây. Những người khác đề xuất cách sử dụng mới cho siêu dữ liệu. Ví dụ: với token âm nhạc hoặc chúng đề xuất các slot mới để lưu trữ siêu dữ liệu, giống như CIP68 thực hiện với khái niệm lưu trữ siêu dữ liệu trong UTXO Datum chứ không phải siêu dữ liệu giao dịch.
Nếu bạn đã từng xem cách các địa chỉ được lấy từ một bộ khóa, có thể bạn đã thấy các số 1852 hoặc 1853 trong đường dẫn xuất phát. Đây là các CIP cho biết cách tạo địa chỉ ví. Và sau đó, tất nhiên, sẽ không có cuộc trò chuyện nào về Đề xuất cải tiến Cardano vào năm 2023 mà không đề cập đến CIP1694, hiện đang trong giai đoạn đề xuất và toàn bộ cộng đồng Cardano đang tập hợp xung quanh, cung cấp phản hồi và tinh chỉnh đề xuất này để cuối cùng nó có thể được thực hiện.
Nếu tôi nhấp qua cái này, bạn sẽ thấy rằng nó thậm chí còn chưa có trang trên trang CIP. Đây vẫn là một repo Git và tại đây bạn có thể đọc qua cuộc trò chuyện đã diễn ra kể từ tháng 11 khi bản nháp này được xuất bản lần đầu và bạn có thể thêm suy nghĩ của riêng mình vào cuộc trò chuyện tại đây. Giống như việc bạn cần có tài khoản GitLab để đóng góp vào kho lưu trữ Plutus PBL mà chúng tôi đang sử dụng trong khóa học này, bạn sẽ cần có tài khoản GitHub để tham gia vào các cuộc hội thoại này. Tôi hy vọng rằng một số trải nghiệm bạn có với Git trong khóa học này đã làm sáng tỏ nó một chút và tôi khuyến khích bạn tham gia vào các cuộc trò chuyện CIP này.
Trong bài học tiếp theo, tôi sẽ giới thiệu cuộc trò chuyện về token dành cho người đóng góp PPBL 2023 mà bạn đã đúc ban đầu trong mô-đun 100 và tôi sẽ giới thiệu về công việc hợp tác sắp tới để đạt được thỏa thuận về cách chúng tôi sẽ sử dụng Datum được trình bày trên của bạn. Token của người đóng góp PPBL. Hiện tại, bạn đã có nó, đề xuất số một của tôi cho trang web nào trong cộng đồng nhà phát triển Cardano mà tôi khuyên bạn nên đánh dấu trang nhất. Tôi hy vọng bạn có một số niềm vui khi khám phá trang web này và đặc biệt, tôi thực sự rất vui khi biết những ý tưởng và câu hỏi nào nảy ra cho bạn khi bạn khám phá các CIP này. Chúng ta sẽ xem xét kỹ hơn về CIP68 trong bài học tiếp theo và sau đó khi chúng ta tiếp tục đạt được tiến bộ thông qua khóa học này, chúng ta sẽ có cơ hội tham khảo một số CIP thực sự thú vị khác hiện đang được xử lý. Cảm ơn vì đã là một phần của công việc này, và hẹn gặp lại bạn sớm.
Lesson 203.3: Lesson 203.4
Bài 203.3: Bài 203.4
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Cảm ơn đã xem video này. Trong bài học này, chúng ta sẽ tìm hiểu sâu hơn một chút về token dành cho người đóng góp PPBL 2023 mà bạn đã tạo trong bài học 100.4. Chúng tôi sẽ sử dụng điều này như một ví dụ giúp chúng tôi suy nghĩ về những cách chúng tôi có thể đóng góp cho các tiêu chuẩn mới và đang nổi lên trong hệ sinh thái phát triển Cardano. Khi thực hiện, chúng ta sẽ xây dựng dựa trên kiến thức cơ bản của bạn về CIP 25, kiến thức đã được trình bày trước đó trong mô-đun này. Bây giờ chúng ta sẽ xem xét một chút về CIP 68, được gọi là Tiêu chuẩn siêu dữ liệu Datum.
Chúng ta hãy nhìn vào một số hình ảnh đầu tiên. Nếu chúng ta đang sử dụng CIP 25 để đúc NFT trên Cardano, thì đây là giao dịch đúc có thể trông như thế nào. Tất nhiên, bạn sẽ có Đầu ra với NFT trong đó và tất cả siêu dữ liệu để mô tả NFT đó đều có trong siêu dữ liệu trong giao dịch đúc. Không có Datum nào được sử dụng khi chúng ta nói về CIP 25 NFT.
Mặt khác, với CIP 68, chúng tôi không sử dụng siêu dữ liệu giao dịch. Thay vào đó, tất cả dữ liệu có liên quan đến NFT được đưa vào một số Datum trong UTXO với thứ được gọi là token tham chiếu. Trong các giao dịch đúc CIP 68, token thực sự được đúc theo cặp. Một trong số chúng là NFT chuyển đến ví của ai đó và cái còn lại là token tham chiếu, mục đích là giúp chúng tôi xác định metaDatum có liên quan đi kèm với NFT. Điều này có một số ý nghĩa thực sự lớn. Trước hết, Datum có thể được đọc bởi các hợp đồng thông minh. Đây là một hạn chế lớn của siêu dữ liệu giao dịch và do đó, là hạn chế kỹ thuật của tất cả các NFT được đúc bằng CIP 25. Hợp đồng thông minh không thể đọc được siêu dữ liệu giao dịch. Ngoài ra, cách chúng tôi xây dựng các ứng dụng sẽ thay đổi.
Để tóm tắt những gì chúng ta đã xem xét trước đó, nếu chúng ta đang sử dụng CIP 25, cách xây dựng ứng dụng giao diện người dùng là bạn muốn truy vấn giao dịch đúc cho NFT được đề cập, tìm siêu dữ liệu trong giao dịch đúc đó, cụ thể là với khóa 721, sau đó đọc siêu dữ liệu đó để hiển thị hình ảnh hoặc dữ liệu khác trong DApp của bạn. Quá trình này khác với CIP 68. Thay vì truy vấn blockchain để tìm siêu dữ liệu giao dịch, chúng tôi truy vấn token tham chiếu được liên kết với NFT. Chúng tôi có thể lấy Datum từ UTXO có token tham chiếu trong đó và sau đó chúng tôi có thể đọc Datum đó để hiển thị bất kỳ thứ gì chúng tôi muốn, hình ảnh hoặc dữ liệu khác.
Bạn có thể tự hỏi, bạn có thể kết hợp CIP 25 và 68 không? Bạn chắc chắn có thể. Bạn có thể đặt một số siêu dữ liệu trong giao dịch đúc và bạn có thể đúc token theo cặp để có một số thông tin có thể thay đổi trong metaDatum. Trên thực tế, đây chính xác là Hàm của token PPBL 2023 của bạn. Đó là một triển khai một phần của CIP 68, nhưng nó không hoàn toàn tuân theo toàn bộ. Để hiển thị hình ảnh mà bạn có thể nhìn thấy trong ví khi nhìn vào token PPBL 2023 của mình, chúng tôi vẫn sử dụng tiêu chuẩn CIP 25 cho phần đó.
Lý do chúng tôi thực hiện phương pháp này là để mời bạn tham gia vào công việc mới và thú vị này. Một trong những cách bạn có thể đúc NFT là đóng góp vào các tiêu chuẩn mới và đang nổi lên trên Cardano. Nó đang xảy ra ngay bây giờ. Tài liệu bên dưới video này là một lời mời để bạn khám phá. Bắt đầu bằng cách nhấp vào liên kết này và truy cập bảng điều khiển dành cho sinh viên mới. Hãy thử kết nối ví của bạn và xem những gì bạn thấy. Tôi có thể thấy tên này
token của người đóng góp demo. Tôi có thể thấy con số may mắn được liên kết với nó và tôi có thể thấy có một danh sách các mô-đun đã hoàn thành ở đây.
Trong ví dụ này, tôi không thấy địa chỉ CLI vì sinh viên này chưa hoàn thành mô-đun 102. Bạn nghĩ gì về điều này? Bạn muốn thấy gì khác trên bảng điều khiển như thế này? Bây giờ, khi lưu ý đến bảng điều khiển dành cho sinh viên, chúng ta hãy suy nghĩ thêm một chút về cách token PPBL 2023 là triển khai một phần của CIP 68.
Tôi hy vọng rằng bạn sẽ dành thời gian để tự mình đọc qua CIP 68, nhưng đây là tổng quan về những gì được triển khai và những gì không có trong token PPBL 2023. Trước hết, chúng tôi đúc một cặp token trong CIP. Bạn sẽ thấy những thứ này được gọi là token người dùng và token tham chiếu. Trong khóa học này, chúng tôi sẽ gọi các token người dùng đó là token của sinh viên hoặc cộng tác viên và chúng tôi sẽ sử dụng các thuật ngữ này thay thế cho nhau. Token tham chiếu cũng được đúc và gửi đến địa chỉ tham chiếu khi bạn đúc token của mình trong bài 100.4. Cả hai token này đều được đúc như được đề xuất trong CIP 68. Tiền tố 100 được sử dụng ở đầu tên token token tham chiếu và tiền tố 222 được sử dụng ở đầu tên token sinh viên. . Vì vậy, trong ví của bạn, bạn có thể nhận thấy rằng token bạn nắm giữ thực sự có tên là 222, sau đó là PPBL 2023 và Bí danh của bạn.
Chúng tôi cũng làm theo hướng dẫn trong CIP 68 rằng có chính xác một token tham chiếu được liên kết với mỗi token của sinh viên. Mặt khác, có một số điều mà chúng tôi đã không thực hiện ở đây. Ví dụ: trọng tâm chính của CIP 68 là thể hiện dữ liệu NFT điển hình: tên, hình ảnh và các thuộc tính Kiểu phương tiện, giống như bạn đã thấy trong CIP 25. Với token PPBL 2023, chúng tôi không sử dụng bất kỳ của điều đó.
Ngoài ra, mặc dù chúng tôi đang tuân theo mẫu được đề xuất trong CIP 68 khi đặt tên cho học sinh và token tham chiếu, nhưng chúng tôi không sử dụng chính xác cùng một cú pháp để mã hóa các tên token đó. Đây là một cách thể hiện loại chế độ thử nghiệm mà chúng tôi đang thực hiện ngay bây giờ.
. Vì vậy, những gì chúng ta đang thử nghiệm với? Đối với một điều, CIP 68 không nhấn mạnh vào việc sử dụng bất kỳ loại địa chỉ Cardano cụ thể nào để lưu trữ token tham chiếu. Khi bạn bắt đầu hiểu cách thức hoạt động của token tham chiếu, tôi nghĩ rằng đó là một thử nghiệm tốt để xem xét điều gì sẽ xảy ra nếu bạn sử dụng các loại địa chỉ khác nhau. Điều gì sẽ xảy ra nếu bạn sử dụng một ví duy nhất trong đó một người có khóa ký để di chuyển token tham chiếu? Điều gì sẽ là ưu điểm và nhược điểm của việc sử dụng Trình xác thực đa chữ ký hoặc Plutus hoặc thậm chí là một địa chỉ không thể chi tiêu, nơi chúng tôi có thể gửi token tham chiếu nhưng không bao giờ mở khóa chúng?
Trong trường hợp token PPBL 2023, chúng tôi đang lưu trữ token tham chiếu tại một địa chỉ hợp đồng. Chúng tôi sử dụng trình xác thực để đặt các quy tắc cụ thể về người có thể xóa token tham chiếu. Trong trường hợp này, đó là các giáo viên của khóa học này. Chúng tôi cũng sử dụng trình xác thực để đặt quy tắc về cách có thể cập nhật Datum. Điều này dẫn đến một bước đột phá thực sự thú vị mà bạn sẽ bắt đầu thấy với token của người đóng góp PPBL. Sử dụng Plutus, chúng tôi có thể viết các quy tắc được nhắm mục tiêu cho phép những người nắm giữ các token vai trò khác nhau cập nhật Datum theo các cách khác nhau. Khi bạn bắt đầu hiểu những khái niệm này, niềm vui thực sự có thể bắt đầu.
Chúng tôi có một số câu hỏi về token sinh viên PPBL thực sự nên là gì và bạn được mời tham gia xác định những gì chúng tôi làm tiếp theo. Token PPBL 2023 được thiết kế để thay đổi theo thời gian và khi sẵn sàng, chúng tôi có thể chuyển tất cả token tham chiếu hiện có sang địa chỉ hợp đồng mới mã hóa Datum và các tham số cho
mọi thứ mà chúng ta sẽ thống nhất trong vài tuần tới. Nhưng đó không phải là một quá trình mà chúng tôi muốn thực hiện mọi lúc, vì vậy chúng tôi sẽ suy nghĩ kỹ về nó và chúng tôi sẽ bắt đầu bằng một cuộc trò chuyện.
. Vì vậy, đây là nhiệm vụ của bạn cho bài học này. Đảm bảo điều hướng đến mẫu PPBL 2023 Plutus trên GitLab. Đây là repo mà chúng tôi đã sử dụng trong suốt khóa học. Bạn có thể xem thư mục bash Scripts quen thuộc tại đây. Các hợp đồng token của người đóng góp chưa được bao gồm trong thư mục nguồn. Chúng tôi sẽ thêm những người sớm. Những gì bạn sẽ tìm thấy trong danh sách các vấn đề ở đây. . Vì vậy, tôi sẽ nhấp vào các vấn đề và ở đây tôi có thể thấy một danh sách có ba câu hỏi trên đó. Mỗi vấn đề trong số này là một vấn đề của GitLab và đây là không gian để trò chuyện về những gì chúng tôi muốn biến token PPBL 2023 trở thành.
Trong mỗi vấn đề, bạn sẽ thấy một số tài liệu hiện có. . Vì vậy, đối với câu hỏi này, thông tin nào nên được đưa vào hợp đồng tham chiếu cộng tác viên, có một mô tả về những gì hiện đang tồn tại và một số câu hỏi ở cuối trang. Khi bạn có ý kiến và bạn đã sẵn sàng, bạn có thể viết một bình luận mới ở đây và bạn có thể đăng nó. Điều này sẽ cho phép mọi người đóng góp cho dự án này chia sẻ thông tin Đầu vào của riêng chúng về từng câu hỏi ở đây.
Nếu tôi điều hướng trở lại danh sách vấn đề, tôi có thể thấy rằng có hai câu hỏi khác sau: Bạn muốn có thể làm gì với token PPBL 2023 của mình? Hiện tại chúng ta đang trong giai đoạn ước mơ lớn, vì vậy hãy làm như vậy. Và cuối cùng, ai sẽ có thể cập nhật cộng tác viên được tham chiếu Datum và bằng cách nào? Và đây là nơi bạn có thể xem mã trình xác thực cho phép chúng tôi thực hiện các thay đổi được nhắm mục tiêu đối với Datum tùy thuộc vào token vai trò mà chúng tôi nắm giữ. Trong trường hợp này, người nắm giữ token của quản trị viên hoặc giáo viên sẽ có thể thay đổi danh sách các mô-đun đã hoàn thành, nhưng không thể thay đổi con số may mắn. Và điều ngược lại là đúng đối với người nắm giữ token của người đóng góp. Sinh viên sẽ chỉ có thể thay đổi số may mắn trong Datum được tham chiếu của chúng chứ không thể thay đổi danh sách các mô-đun đã hoàn thành.
Cuối cùng, có một cửa hậu ngay tại đây, nơi giáo viên có thể xóa token của sinh viên khỏi khóa học. Đây là điều tốt hay điều xấu? Cái này có nên ở đây không? Những quy tắc bạn muốn xem tại chỗ? Có quy trình nào mà bạn có thể tưởng tượng rằng chúng ta nên tự động hóa không? Và một số giới hạn cần thiết và thích hợp đối với quyền lực của giáo viên và quản trị viên là gì? Hãy bắt đầu bằng cuộc trò chuyện này. Chúng ta sẽ có cơ hội thảo luận về những câu hỏi này tại buổi viết mã trực tiếp và khi tìm hiểu sâu hơn về Plutus, chúng ta sẽ có cơ hội triển khai những điều chúng ta quyết định thực hiện. Tôi không thể chờ đợi. Cảm ơn bạn, như mọi khi, vì đã tham gia trả lời những câu hỏi này và hẹn gặp lại bạn sớm.
Lesson 204: The PPBL Faucet Project
Bài 204: Dự án faucet PPBL
Chào mừng bạn đến với Plutus Project-Based Learning 2023 từ Gimbalabs. Cảm ơn bạn đã xem video này và tham gia vào khóa học này cho đến nay. Tôi vô cùng biết ơn tất cả mọi người ở đây, những người đang thúc đẩy bản thân học hỏi những điều mới, hợp tác với các sinh viên khác để cùng nhau học hỏi và giúp xây dựng các hệ thống mới tại Gimbalabs. Ví dụ, cách chúng tôi viết mã trực tiếp. Tôi thực sự đánh giá cao sự tham gia và phản hồi từ mọi người. Tôi thực sự hào hứng với điểm uốn này trong khóa học, nơi chúng tôi chuyển đổi từ giới thiệu và xây dựng kiến thức nền tảng sang chuyên môn hóa và đóng góp. Mô-đun này đóng vai trò là một nửa điểm trong khóa học và là một đánh giá dựa trên dự án. Nó hơi khác so với các mô-đun trước đó và trong video này, tôi muốn trình bày ngắn gọn về sự khác biệt của Mô-đun 204 so với các mô-đun trước đó và cung cấp thông tin sơ lược về cách nó sẽ đóng vai trò là điều kiện tiên quyết cho các mô-đun sắp tới.
Nếu kiểm tra khung PBL, chúng ta có thể nhận thấy rằng đã có các mô-đun cấp 100 và 200 tập trung vào việc giới thiệu và xây dựng kiến thức nền tảng. Hy vọng rằng bạn đã bắt đầu gặp phải một số thách thức trong quá trình phát triển Cardano, tạo môi trường phát triển của riêng mình và gặp những câu hỏi mà bạn quan tâm và sẽ giúp thúc đẩy công việc của chúng tôi tiến lên. Bây giờ, khi chúng ta bắt đầu chuyên môn hóa và cơ hội đóng góp xuất hiện, khóa học này thực sự trở thành một nỗ lực hợp tác cho tất cả chúng ta, xóa nhòa ranh giới giữa sinh viên và giáo viên. Trong tương lai, có hai mục tiêu học tập mới trong mô-đun này. Mặc dù có rất nhiều điều tôi muốn nói về các mục tiêu học tập này, nhưng làm như vậy sẽ mâu thuẫn với các nguyên tắc của học tập dựa trên dự án. Do đó, bây giờ, tôi sẽ chỉ giới thiệu những ý tưởng này.
Trong mô-đun này, bạn sẽ triển khai phiên bản PlutuScript của riêng mình với các tham số tùy chỉnh và đóng góp vào một ứng dụng phi tập trung không đầu. Cách tốt nhất để nắm bắt những khái niệm này là thông qua thử nghiệm, đó chính là mục tiêu mà chúng tôi muốn hỗ trợ bạn thực hiện trong suốt dự án này. Ở mỗi bước trong quá trình thực hiện, bạn sẽ xem lại các mục tiêu học tập mà chúng ta đã đề cập trước đó trong khóa học này, với tất cả sáu mục tiêu đều được đánh dấu. Ngoài ra, hãy chú ý đến bất kỳ kết nối nào bạn có thể nhận thấy với các mục tiêu học tập khác.
Vậy, mô-đun này khác nhau như thế nào? Trước hết, ít hỗ trợ hơn được cung cấp. Khi bạn kiểm tra từng bước trong khóa học, bạn sẽ nhận thấy rằng không có video giới thiệu nào. Thay vào đó, bạn sẽ tìm thấy tài liệu và tổng quan về những việc cần làm. Mỗi bước cũng bao gồm các liên kết đến các tài nguyên hoặc tập lệnh hữu ích, nhưng việc tìm ra cách hoàn thành từng bước này chủ yếu phụ thuộc vào bạn. Tôi thực sự vui mừng khi chứng kiến cách bạn phát triển sự tự tin và hiểu biết của mình về những khái niệm này khi bạn thực hiện dự án này. Một trong những lý do khiến chúng tôi ít trợ giúp hơn là việc gặp khó khăn thường là cách hiệu quả nhất để học những điều mới.
Đây là những gì chúng tôi đề xuất cho bước một: nhảy vào và thử một cái gì đó. Nếu một bước trở nên dễ dàng, thì đó là một tin tuyệt vời vì điều đó có nghĩa là bạn đã nắm vững một số yếu tố cần thiết trong quá trình phát triển Cardano. Tuy nhiên, nếu bạn gặp khó khăn, điều đó có thể còn ly kỳ hơn. Khi bạn gặp khó khăn, hãy đảm bảo xem lại các bài học của khóa học trước. Mỗi mục tiêu học tập trong mô-đun 100 đến 203 đều có một bài học đi kèm và bạn luôn có thể xem lại các bài học này để củng cố các khái niệm quan trọng và giúp bạn hoàn thành dự án này. Nếu bạn vẫn gặp khó khăn, hãy cộng tác với những người khác hoặc đặt câu hỏi trong các phiên viết mã trực tiếp. Chúng tôi sẽ làm việc cùng nhau để giúp bạn vượt qua những trở ngại vì chu kỳ mắc kẹt và thoát khỏi bế tắc nằm ở trung tâm của học tập dựa trên dự án và tôi tin rằng bạn đã nhận thức được điều này. Tất cả chúng ta đều đã có những kinh nghiệm học hỏi trong đời mà chúng ta sẽ không bao giờ quên, và khi tôi suy ngẫm về những kinh nghiệm đó trong cuộc đời mình, tất cả đều
phát sinh từ sự cần thiết phải tìm ra một cái gì đó. Tôi không thể ngừng suy nghĩ về nó, và mặc dù đó là một thử thách, nhưng cuối cùng tôi đã có một bước đột phá. Chúng tôi hy vọng dự án này sẽ mang đến cho bạn trải nghiệm tương tự, cho phép chúng ta cùng nhau xây dựng kiến thức và sự hiểu biết lâu dài.
Một lần nữa, dự án này là một cách để bạn xem lại những gì bạn đã học được cho đến nay, khám phá những ý tưởng mới trong Context của một dự án full-stack và tôi hy vọng nó sẽ giới thiệu cho bạn những câu hỏi mới sẽ thúc đẩy tất cả chúng ta chuyển tiếp trong nửa sau của khóa học này. Khi bạn tiến hành dự án, hãy chú ý đến những khái niệm này. Chúng ta sẽ thảo luận về tất cả chúng trong các phiên viết mã trực tiếp và trong các mô-đun cấp độ 300 tiếp theo. Trong bước đầu tiên của dự án, bạn sẽ biên dịch trình xác thực được tham số hóa và trong bước thứ hai, bạn sẽ triển khai tập lệnh tham chiếu. Trong suốt dự án, chúng tôi sẽ thử nghiệm các khái niệm về tập hợp và dapp không đầu.
Đóng góp thực sự bắt đầu từ đây. Nhiều sinh viên đã và đang đóng góp theo nhiều cách khác nhau bằng cách hỗ trợ lẫn nhau và tổ chức các buổi lập trình đồng đẳng. Tôi cũng muốn mời bạn tạo hình ảnh hoặc video hướng dẫn của riêng bạn cho các phần khác nhau của dự án này. Chúng ta có thể thảo luận thêm về vấn đề này trong quá trình mã hóa trực tiếp và khi chúng ta tiến tới cấp độ 300, chúng tôi sẽ tiếp tục mở rộng lời mời này để bạn đóng góp cho cả ứng dụng chúng tôi đang xây dựng cũng như tài liệu đi kèm và trải nghiệm học tập.
Cuối cùng, khi kết thúc mô-đun này, bạn sẽ tìm thấy một liên kết đến cuộc khảo sát giữa khóa học PPBL. Khảo sát này nhằm giúp nhóm của chúng tôi sắp xếp thứ tự ưu tiên dựa trên sở thích của bạn. Chúng tôi muốn biết bạn thực sự muốn làm gì, bạn háo hức tìm hiểu về điều gì, các chủ đề bạn muốn chuyên sâu và các dự án thú vị mà bạn muốn đóng góp. Điều này có thể liên quan đến các ý tưởng hoặc dự án nguồn mở của riêng bạn, chẳng hạn như những dự án chúng ta đã gặp trước đó trong khóa học này. Trong tương lai, để cam kết với bất kỳ điều gì tiếp theo, trước tiên bạn phải hoàn thành dự án này. Tất cả chúng ta đều có chung một mục tiêu và việc cung cấp khóa học này chỉ hợp lý nếu nó vẫn phù hợp với bạn với tư cách là người học. Do đó, chúng tôi sẽ tạm dừng phát hành các mô-đun 300 cấp độ cho khóa học này.
Đây là một thử thách nhỏ để tất cả chúng ta cùng nhau thực hiện trước khi phát hành mô-đun 300 cấp độ: chúng tôi muốn thấy tối thiểu 12 sinh viên hoàn thành dự án này và khảo sát giữa khóa PPBL. Việc hoàn thành dự án chứng tỏ rằng học sinh đã xây dựng đủ kiến thức cơ bản để đi sâu vào các khái niệm nâng cao hơn, đồng thời khảo sát giúp chúng tôi đảm bảo rằng khóa học phù hợp với kết quả học tập mong muốn của bạn. Tôi cho rằng bạn sẽ có câu hỏi về bất kỳ và tất cả những điều này và tôi rất vui được kết nối với bạn trong quá trình viết mã trực tiếp hoặc trả lời câu hỏi của bạn trên Gimbalab's Discord. Chúng tôi cũng sẽ tiếp tục xây dựng các hệ thống bổ sung có thể giúp tất cả chúng tôi đảm bảo rằng chúng tôi thống nhất về các dự án mà chúng tôi muốn thực hiện và những gì chúng tôi muốn tìm hiểu về sự phát triển của Cardano.
. Vì vậy, một lần cuối cùng, cách tốt nhất để tiếp cận dự án này là gì? Tham gia, thử một số thứ, gặp khó khăn, xem lại các bài học trước, hợp tác với nhau, đặt câu hỏi và gỡ rối. Nếu tất cả chúng ta cùng nhau nắm bắt quá trình này, thì tôi thực sự vui mừng được chứng kiến những gì chúng ta có thể xây dựng tiếp theo. Cảm ơn bạn, như mọi khi, vì đã ở đây, và hẹn gặp lại bạn sớm!
Module 301.1: Writing a Plutus Spending Validator
Mô-đun 301.1: Viết Trình xác thực chi tiêu Plutus
Xin chào, chào mừng bạn đến với Plutus Học tập dựa trên dự án 2023. Tên tôi là Frederick Sambora và hôm nay chúng ta sẽ xem qua Mô-đun 301, nói về cách viết và sử dụng trình xác thực Plutus. Đặc biệt, chúng ta sẽ tập trung vào Mô-đun 301.1, bao gồm việc viết trình xác thực chi tiêu Plutus.
Trình xác thực chi tiêu là tập lệnh xác thực xem giao dịch có được phép chi tiêu Đầu ra hay không. Mục đích chính của nó là để xác nhận chi tiêu. Trình xác thực có thể được phân loại dựa trên mục đích cụ thể của chúng, chẳng hạn như kiểm soát logic đằng sau phân phối token gốc hoặc phần thưởng ủy thác. Trong mô-đun này, chúng tôi sẽ tập trung vào các trình xác thực kiểm soát chi tiêu tiền được giữ trong một hợp đồng thông minh.
Khi kết thúc khóa học này, bạn sẽ có thể nạp tiền (gửi tiền) cho hợp đồng thông minh và chi tiêu (mở khóa) tiền do hợp đồng thông minh nắm giữ. Để đạt được điều này, chúng tôi cần một số công cụ và tài nguyên nhất định. Một điều kiện tiên quyết là kiến thức về cách gửi giao dịch qua dòng lệnh bằng Cardano CLI. Ngoài ra, bạn cần có một node đang chạy và trong trường hợp của tôi, tôi có một node tiền sản xuất đã được đồng bộ hóa, cho phép tôi gửi các giao dịch trên blockchain.
Chúng tôi sẽ sử dụng các mẫu cho trình xác thực thành công duy nhất, giúp đơn giản hóa công việc của chúng tôi vì chúng tôi không phải viết Trình xây dựng
hoặc phụ thuộc của riêng mình.
Trình xác thực chi tiêu của Plutus bao gồm ba yếu tố chính: Datum, Redeemer và Context. Datum là một phần dữ liệu được đính kèm với Đầu ra, có thể là nội tuyến (hiển thị) hoặc được hash (được mã hóa) kể từ hard fork của Alonzo. Redeemer là một Kiểu dữ liệu tùy biến được gửi trong quá trình xác thực và tương tác với hợp đồng thông minh. Context cung cấp thông tin về giao dịch, chẳng hạn như số tiền đã chi tiêu, người ký giao dịch và dấu thời gian. Thông tin này không cần phải được người dùng gửi một cách rõ ràng, nhưng nó có sẵn trong quá trình xác thực.
Hợp đồng thành công duy nhất mà chúng tôi sẽ sử dụng trong mô-đun này không thực hiện bất kỳ xác thực nào cho đến khi hợp đồng thành công. Tuy nhiên, có một xác thực cơ bản mà nó thực hiện, đặc biệt nếu Datum ở dạng giá trị hash. Trong trường hợp đó, Datum cần khớp với giá trị dự kiến. Nếu không có sự không khớp, thì Datum nội tuyến được coi là có và hợp đồng sẽ xử lý việc đánh giá Datum. Tập lệnh thành công duy nhất bao gồm các tham số Datum, Redeemer và Context và nó trả về một giá trị Boolean. Chúng tôi hy vọng tập lệnh thành công duy nhất trả về true cho thành công và sai cho thất bại. Phần đầu tiên của tập lệnh luôn cho phép chi tiêu, trong khi phần thứ hai, được biểu thị bằng dấu gạch dưới, trả về lỗi. Bằng cách này, chỉ phần đầu tiên cho phép chi tiêu thành công.
Sau khi tạo các hàm của bạn, chẳng hạn như tập lệnh thành công duy nhất, bạn có thể tạo một hàm trình xác thực, hàm này sẽ được sử dụng trong quá trình biên dịch, như chúng ta sẽ sớm thấy. Trong trường hợp này, chúng tôi có một hợp đồng thông minh Plutus thuộc Kiểu dot product
, từ đó chúng tôi lấy được một địa chỉ có tên là 'Always Succeed May 19'. Khi chúng tôi có địa chỉ này, chúng tôi có thể kiểm tra giá trị của nó và bắt đầu tài trợ cho hợp đồng thông minh để khóa và truy xuất tiền.
Ba bước chính để thực hiện điều này là:
- Xây dựng giao dịch: Xây dựng giao dịch bằng cách sử dụng Đầu vào, Đầu ra thích hợp, thay đổi địa chỉ và giá trị được gửi.
- Ký giao dịch: Ký giao dịch bằng tệp tạm thời được tạo để ký.
- Gửi giao dịch: Gửi giao dịch đã ký.
Bây giờ chúng ta đã biết cách tạo hợp đồng thông minh 'Luôn thành công', hãy áp dụng nó vào thực tế. Khi chúng tôi đã hoàn thành việc đó, chúng tôi sẽ có thể tạo hợp đồng thông minh cho các mục đích khác trong các bài học trong tương lai.
Để xem trình xác thực 'Luôn thành công' của chúng tôi
Để xem trình xác thực 'Luôn thành công' của chúng tôi, chúng tôi có thể bắt đầu bằng cách điều hướng đến thư mục chứa mã Plutus của chúng tôi. Trong trường hợp này, chúng ta có tệp always-succeed
. Plutus`. Hãy mở nó và xem mã:
{-# INLINABLE alwaysSucceedValidator #-} alwaysSucceedValidator :: AlwaysSucceedDatum -> AlwaysSucceedRedeemer -> ScriptContext -> Bool alwaysSucceedValidator _ _ _ = True
Trong đoạn mã này, chúng tôi xác định hàm alwaysSucceedValidator
, hàm này nhận ba tham số: AlwaysSucceedDatum,
AlwaysSucceedRedeemer và ScriptContext
. Nó trả về một giá trị Boolean.
Ký hiệu _
được sử dụng làm trình giữ chỗ cho các tham số mà chúng tôi hiện không sử dụng. Vì trình xác thực của chúng tôi luôn thành công nên chúng tôi không cần thực hiện bất kỳ xác thực nào dựa trên các tham số được cung cấp. Do đó, chúng tôi chỉ cần trả lại True
trong mọi trường hợp.
Khi chúng tôi đã xác định Hàm trình xác thực của mình, chúng tôi có thể biên dịch nó thành Plutus Core bằng cách sử dụng gói Plutus-starter. Plutus-starter
cung cấp một giao diện dòng lệnh (CLI) cho phép chúng ta biên dịch và tương tác với các tập lệnh Plutus.
Để biên dịch trình xác thực của chúng tôi, chúng tôi có thể sử dụng lệnh sau trong thiết bị đầu cuối:
Plutus-starter biên dịch luôn thành công
. Plutusluôn thành công
Lệnh này sẽ biên dịch tập lệnh always-succeed
. Plutus
của chúng ta và tạo biểu diễn Plutus Core của trình xác thực của chúng ta. Tập lệnh đã biên dịch sẽ được lưu dưới dạng always-succeed
. Plutus` trong thư mục hiện tại.
Sau khi biên dịch thành công tập lệnh, chúng ta có thể tiến hành quá trình giao dịch. Chúng tôi cần xây dựng, ký và gửi giao dịch bằng Cardano CLI.
Điều quan trọng cần lưu ý là quá trình xây dựng, ký và gửi giao dịch liên quan đến việc tương tác với blockchain Cardano và yêu cầu node Cardano đang chạy và quyền truy cập vào Cardano CLI.
Sau khi giao dịch được gửi và xác nhận trên blockchain, số tiền sẽ bị khóa bởi hợp đồng thông minh và trình xác thực sẽ luôn cho phép chi tiêu số tiền bị khóa đó.
Đó là tổng quan cấp cao về quá trình viết trình xác thực chi tiêu Plutus. Trong các mô-đun trong tương lai, chúng ta sẽ khám phá các Script và Trình xác thực nâng cao hơn liên quan đến logic và điều kiện bổ sung.
Tôi hy vọng điều này giúp bạn hiểu rõ về Mô-đun 301.1 và cách viết trình xác thực chi tiêu Plutus. Hãy cho tôi biết nếu bạn có thêm bất kỳ câu hỏi nào!