برای یک معامله کاملاً ساخته شده ، حداقل هزینه ای را که برای پرداخت آن نیاز دارد تعیین کنید.
این عملکرد ساده است ، اما اگر انتخاب ورودی را انجام می دهید ، احتمالاً می خواهید EstertateTransactionFee را در نظر بگیرید.
هزینه TX ثابت
هزینه TX در هر بایت
تعداد ورودی های معامله اضافی UTXO
تعداد خروجی های معامله اضافی
تعداد شاهدان اضافی شلی کیلی
تعداد شاهدان اصلی بایرون اضافی
این می تواند بر اساس یک معامله پایه شروع ، به علاوه تعداد مؤلفه های اضافی معامله که ممکن است اضافه شود ، هزینه معامله را تخمین بزند.
بنابراین به عنوان مثال با انتخاب سکه کیف پول ، معامله پایه باید شامل همه مواردی باشد که در معرض انتخاب سکه نیست (مانند ورودی های اسکریپت ، ابرداده ، برداشت ، گواهی و غیره)
تعداد شاهدان شلی کی
تعداد شاهدان اصلی بایرون
هزینه معامله را برای یک معامله پیشنهادی محاسبه کنید ، با این فرض که تعداد مشخصی از شاهدان کلیدی (یعنی امضاها) وجود خواهد داشت.
TODO: ما برای شلی در مقابل بایرون Key Sigs به استدلال های جداگانه نیاز داریم
تعداد تقریبی از تعداد شاهدان کلیدی (یعنی امضاها) به معامله نیاز داشته باشید.
این یک تخمین است که یک حساب دقیق نیست زیرا می تواند بیش از حد تخمین زده شود: این فرضیات محافظه کارانه مانند همه ورودی ها از آدرس های مجزا است ، اما در اصل چندین ورودی می توانند از همان آدرس استفاده کنند و ما فقط در هر آدرس به یک شاهد نیاز داریم.
به طور مشابه می توان بین ورودی های منظم و وثیقه همپوشانی داشت ، اما ما به طور محافظه کارانه فرض می کنیم که آنها متمایز هستند.
TODO: ارزش دارد که ما یک شمارش دقیق تر را که به UTXO متکی است برای حل و فصل کدام ورودی ها برای آدرس های مجزا و همچنین تعداد شاهدان شلی در مقابل بایرون در نظر بگیریم.
واحدهای اجرای اسکریپت
اجرای اجرایی مورد نیاز برای هر اسکریپت را در معامله محاسبه کنید.
این کار با اجرای تمام اسکریپت ها و شمارش تعداد زیادی از واحدهای اعدام در واقع انجام می شود.
دلایل مختلف احتمالی که اجرای یک اسکریپت می تواند از بین برود ، همانطور که توسط EvaluateTransactionExitionUnits گزارش شده است.
سه مورد اول این در مورد شکست ها قبل از حتی اجرای فیلمنامه است و دو نفر نتیجه اجرای آن هستند.
این اسکریپت به یک TXIN بستگی دارد که در زیر مجموعه UTXO داده شده ارائه نشده است. UTXO داده شده باید تمام ورودی هایی را که منابع ارجاع معامله را پوشش می دهد ، پوشش دهد.
TXIN که اسکریپت هزینه می کند ScriptDatum ندارد. تمام ورودی های محافظت شده توسط اسکریپت های پلوتوس باید با یک اسکریپتداتوم ایجاد شوند.
ScriptDatum ارائه شده با UTxO مطابقت ندارد. این بدان معناست که مقدار ScriptDatum اشتباهی ارائه شده است.
ارزیابی فیلمنامه ناموفق بود. این معمولاً به این معنی است که به مقدار خطا ارزیابی می شود. این مورد در مورد تمام شدن واحدهای اجرایی نیست (که برای ارزیابیTransactionExecutionUnits امکان پذیر نیست، زیرا هدف اصلی آن کشف تعداد واحدهای اجرایی مورد نیاز است).
واحدهای اجرایی یک کلمه 64 بیتی را سرریز کردند. اگر با این خطا مواجه شدید به شما تبریک می گویم. با سبک فعلی مدل هزینه، این به یک اسکریپت برای اجرای بیش از 7 ماه نیاز دارد، که تا حدودی بیشتر از حداکثر مورد انتظار چند میلی ثانیه است.
تلاش شد تا ورودی tx شاهد کلیدی با شاهد اسکریپت صرف شود.
اشاره گر Redeemer به یک هش اسکریپت اشاره می کند که در تراکنش یا در UTxO به عنوان یک اسکریپت مرجع وجود ندارد.
اشاره گر Redeemer به اسکریپتی اشاره می کند که وجود ندارد.
یک مدل هزینه برای زبانی که استفاده می شد وجود نداشت.
موارد
جزئیات نمونه ها
| نمایش منبع ScriptExecutionError # |
| جزئیات نمونه |
فاصله اعتبار تراکنش در آینده بسیار دور است.
تراکنش های با اسکریپت های Plutus باید دارای فاصله اعتباری باشند که در آینده چندان دور نباشد که نتوانیم زمان UTC مربوط به فاصله اعتبار بیان شده در اعداد شکاف را به طور قابل اعتماد تعیین کنیم.
این به این دلیل است که به اسکریپت های Plutus بازه اعتبار تراکنش در زمان UTC داده می شود، به طوری که به طول شکاف ها حساس نیستند.
اگر هر یک از انتهای بازه اعتبار فراتر از به اصطلاح "افق زمانی" باشد، الگوریتم اجماع قادر به تعیین قابل اعتماد رابطه بین شکاف ها و زمان نیست. در این وضعیت این خطا گزارش شده است. برای شبکه اصلی Cardano، افق زمانی 36 ساعت فراتر از زمان فعلی است. این در واقع به این معنی است که ما نمی توانیم چک ارسال کنیم یا تراکنش هایی را ارسال کنیم که از اسکریپت های Plutus استفاده می کنند که فاصله اعتبار آنها بیش از 36 ساعت به پایان می رسد.
موارد
جزئیات نمونه ها
| نمایش منبع TransactionValidityError # |
| جزئیات نمونه |
تراز معامله
موجودی کل معامله پیشنهادی را محاسبه کنید. در نهایت یک تراکنش معتبر باید کاملاً متعادل باشد: یعنی دارای ارزش کل صفر باشد.
یافتن موجودی (غیر صفر) تراکنش نیمه ساخته شده برای تنظیم تراکنش برای متعادل شدن کامل مفید است.
ساختمان تراکنش خودکار
مجموعه ای از استخرهای سهام ثبت شده
فقط ورودی های تراکنش، نه کل UTxO.
شاهدان کلیدی را نادیده بگیرید
این بسیار شبیه Maketransactionbody است اما با اتوماسیون بیشتر برای محاسبه مقادیر مناسب برای چندین چیز.
- این محاسبه اجرای صحیح اسکریپت (نادیده گرفتن مقادیر ارائه شده ، که از این رو می تواند صفر باشد) محاسبه می کند.
- این هزینه معاملات را بر اساس اجرای اسکریپت ، پروتکل پارامترهای فعلی و برآوردی از تعداد شاهدان کلیدی (یعنی امضاها) محاسبه می کند. برای تعداد شاهدان کلیدی نادیده گرفته شده است.
- این یک آدرس تغییر را می پذیرد ، تراز معامله را محاسبه می کند و تغییر اضافی را در خروجی تغییر قرار می دهد.
- همچنین بررسی می کند که تعادل مثبت است و تغییر بالاتر از حداقل آستانه است.
برای انجام این کار به اطلاعات بیشتری نسبت به maketransactionbody نیاز دارد ، که همه آنها می توانند از یک گره محلی پرسیده شوند.< Span> این مانند maketransactionbody است اما با اتوماسیون بیشتر برای محاسبه مقادیر مناسب برای چندین چیز.
کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید
برچسب : نویسنده : محمود استادمحمد بازدید : 41 تاريخ : دوشنبه 28 فروردين 1402 ساعت: 12:22