Giao dịch đa nhân chứng
#
Tổng quannote
Hướng dân này giả định rằng bạn đã hoàn thành hướng dẫn Exploring Cardano Wallets. Bạn sẽ cần một UTxO ở mỗi ví(payment1.addr
và payment2.addr
) để hoàn thành hướng dẫn này.
Hướng dẫn này cũng giả định rằng bạn có cardano-node
chạy trên nền tảng và nối với mạng testnet
.
#
Tóm tắtChúng ta hãy tóm tắt lại những gì chúng ta đã làm cho đến nay. Mục tiêu của chúng ta trong hướng dẫn trước (/docs/integrate-cardano/creating-wallet-faucet) là lấy 1000 tADA
từ testnet và gửi 250 tAda
từ payment1 tới payment2.
Đảm bảo rằng chúng ta ở đúng thư mục.
- Query UTxO
- Calculate fees
- Build Tx
- Sign & Submit Tx
- Verify Tx
Chúng ta đã rút 1000 tAda
từ Testnet Faucet vào ví payment1 của mình.
Chúng ta đã sử dụng protocol-parameters
để dự thảo giao dịch của chúng ta và tính toán phí dự kiến.
Từ mức phí dự kiến 174169 Lovelace
, chúng ta có thể tính toán kết quả đầu ra và xây dựng giao dịch của mình.
note
Phí của bạn có thể khác nhau do đó bạn sẽ có số tiền khác nhau.
Chúng ta sử dụng payment1.skey
để ký giao dịch của mình và gửi nó lên blockchain.
Cuối cùng, chúng ta xác minh giao dịch bằng cách truy vấn ví payment1 và payment2.
Chúng ta hiện có 749.825831 tAda
trong ví payment1 và 250 tAda
trong ví payment2.
Hãy xem làm thế nào chúng ta có thể chi tiêu tất cả cùng một lúc!
#
Trường hợp sử dụngCó nhiều lý do để bạn muốn có nhiều ví gửi ada trong một giao dịch duy nhất. Một là, chính bạn có hai ví (payment1 và payment2) và bạn muốn chi tiêu nó vào thứ gì đó...
- đắt hơn số tiền bạn có trong bất kỳ ví nào trong hai ví của mình,
- nhưng cả hai số tiền gộp lại sẽ trang trải các chi phí.
Giả sử bạn đang ở cửa hàng xe đạp và bạn nhìn thấy một cái xe đẹp với giá 1100 tAda
. Bạn chỉ còn lại 999 tAda
(cộng với tiền lẻ).
Chủ cửa hàng xe đạp - một người đam mê công nghệ blockchai - sẵn sàng giảm giá cho bạn 10%, nếu bạn thanh toán cho anh ta trong một giao dịch duy nhất.
- Không có gì thay đổi cả, anh bạn* - Chủ cửa hàng Bike
Vì vậy, chúng ta cần đảm bảo chi tiêu tất cả tAda
từ hai ví của mình trong một giao dịch duy nhất.
note
Anh ta có thể dễ dàng xác minh xem chúng ta đã tiêu tất cả số tiền chưa bằng cách kiểm tra xem giao dịch có hơn một đầu ra hay không.
Có nhiều cách để tối ưu hóa số tiền bạn chi tiêu. Chúng ta sẽ để điều này cho bạn tự tìm hiểu.
#
Quy trình kỹ thuậtThis scenario is pretty straight forward and looks like this. Kịch bản này khá dễ hiểu và trông như này:
Như bạn có thể nhìn ở sơ đồ trên, chúng ta sẽ xây dựng và gửi một multi-witness transaction, có hai đầu vào và một đầu ra
note
Chúng ta không thể thực hiện việc này với cardano-wallet
hay bất kỳ ví nào khác như Daedalus hay Yoroi bởi vì chúng ta sẽ cần cả signing-keys
từ payment1 và payment2 để ký giao dịch.
#
Viết codenote
Như đã đề cập ở trên, hướng dẫn này giả sử bạn đã hoàn thành hướng dẫn Exploring Cardano Wallets
Chúng ta cũng giả định bạn đã thanh toán 174169 Lovelace
phí giao dịch và số dư hiện tại của bạn là:
- payment1:
749825831 Lovelace
- payment2:
250000000 Lovelace
#
Tạo ví chủNếu bạn chưa có ví thứ ba để sử dụng cho hướng dẫn này, hãy tạo một ví để chúng ta có thể chuyển tất cả tiền của mình sang.
Đảm bảo rằng bạn ở trong thư mục keys
như sau: cd $HOME/cardano/keys
Tạo một cặp khóa thanh toán sử dụng cardano-cli
:
Sau đó tạo một địa chỉ ví cho mạng testnet
:
Kiểm tra thư mục keys
của bạn. Nó trông như sau:
#
Tính toán phí cho giao dịchHãy tạo một thư mục để lưu trữ các giao dịch cho hướng dẫn này và nhập nó vào:
Chúng ta muốn gửi tất cả tAda tại hai UTxO mà chúng ta đã xác minh trước đó và gửi nó đến store-owner.addr
. Điều đó có nghĩa là chúng ta sẽ có hai đầu vào
Thế còn đầu ra? Chủ cửa hàng muốn chúng ta tiêu hết số tiền đó vì vậy sẽ có một đầu ra cho chủ cửa hàng và không có đầu ra cho chúng ta.
Hãy xây dựng giao dịch đó.
Điều cuối cùng chúng ta cần làm là tính toán các khoản phí chotx2.draft
. Chú ý --tx-in-count
và --witness-count
.
Chúng tôi có thể tính toán số tiền mà chủ cửa hàng sẽ nhận được, nếu cả hai UTxO đều được chi tiêu trong giao dịch:
#
Build, sign và submit giao dịchChúng ta biết số lượng đầu ra cũng như phí . Cuối cùng, chúng ta có thể xây dựng, ký và gửi giao dịch tx2.draft
của mình.
Chúng ta phải sử dụng payment1.skeyvà
payment2.skey`đẻ ký kết giao dịch của mình.
#
Xác minh các giao dịch có nhiều nhân chứngChủ cửa hàng bây giờ sẽ xác minh rằng mọi thứ đã diễn ra theo kế hoạch của anh ta.
Xác minh 258abd628eef7d6ff0f7b4e6866b4f7c21065f4d6b5e49b51e2ac4ff035ad06f trên cardano testnet explorer
Success!
Anh ta có thể thấy rằng giao dịch có một đầu ra vào ví của anh ta. Không có kết quả đầu ra nào khác, do đó bạn phải tiêu hết tAda
.
Xin chúc mừng, bạn hiện có thể gửi các giao dịch nhiều nhân chứng trên Cardano . Điều này sẽ giúp bạn tích hợp các ứng dụng hiện có hoặc ứng dụng mới sắp ra mắt của bạn. 🎉🎉🎉