زمان انقضا

ساخت وبلاگ

پاسخ از مصرف بیش از حد انرژی معامله تماس با قرارداد جلوگیری کنید.

توضیح FEE_LIMIT نشان دهنده ارزش کل انرژی است که یک تماس گیرنده قرارداد می تواند حداکثر برای این معامله تحمل کند. واحد پایه خورشید است و حداکثر مقدار را می توان روی 1E10 تنظیم کرد. اگر کاربر Fee_limit را تنظیم نکند ، مقدار پیش فرض 0 است. به عنوان مثال ، اگر Fee_limit در معامله روی 1000 Sun تنظیم شده باشد ، به این معنی است که تماس گیرنده قرارداد معامله را تحمل می کند و حداکثر 1000/420 انرژی مصرف می کند (فعلیقیمت واحد انرژی 420 خورشید است).

اگر میزان انرژی مصرفی توسط اجرای معامله از قیمت واحد انرژی Fee_limit*فراتر رود ، اجرای قرارداد متوقف می شود و خطای OUT_OF_ENERGY ایجاد می شود.

در برخی از کارکردهای قرارداد ، حلقه های پیچیده ای وجود خواهد داشت. اگر کاربر بدون دانستن آن به اشتباه تماس بگیرد ، ممکن است باعث شود کاربر بیش از حد انرژی مصرف کند ، بنابراین کاربر می تواند این قسمت Fee_limit را به عنوان یک حد بالایی تنظیم کند.

برخی از موقعیت ها وجود دارد که باعث می شود همه هزینه های Fee_limit کسر شود:

  • دستورالعمل غیرقانونی که در هنگام اجرای قرارداد صورت می گیرد
  • زمان تماس با قرارداد ، خطای out_of_time را تحریک کنید
  • if the array index you are accessing is too large or negative (for example x[i] where i >= x. l طول یا من< 0).
  • اگر به طول ثابت بایت دسترسی پیدا کنید ، شاخص خیلی بزرگ یا منفی است.
  • اگر از صفر به عنوان تقسیم کننده برای عملیات تقسیم یا مدول استفاده می کنید (به عنوان مثال 5 /0 یا 23 ٪ 0).
  • اگر رقم منفی را تغییر دهید.
  • اگر مقدار بیش از حد بزرگ یا منفی را به یک نوع enum تبدیل کنید.
  • اگر متغیر نوع عملکرد داخلی ناآگاهانه را صدا می کنید.
  • اگر استدلال ادعا (بیان) را صدا می کنید ، و نتیجه نهایی نادرست است.
  • اگر یک JVMStackoverFlowException رخ دهد.
  • اگر یک استثناء OutofMem رخ دهد ، یعنی حافظه از 3 متر فراتر می رود.
  • در حین کار قرارداد ، سرریز مانند علاوه بر این رخ می دهد.

پاسخ عملکرد قرارداد بسیار پیچیده است یا عملکرد گره SR در نوسان است.

توضیح در حال حاضر ، TRON یک محیط جهانی دارد. زمان اجرای تماس با معاملات قرارداد هوشمند نمی تواند از 80ms فراتر رود. این پارامتر 80ms را می توان با رأی گیری SR اصلاح کرد. اگر کد قرارداد بسیار پیچیده باشد و زمان اجرای آن از 80ms فراتر رود ، خطای out_of_time را ایجاد می کند و تمام هزینه های Fee_Limit را کسر می کند.

اگر همان عملکرد قرارداد گاهی اوقات خطای out_of_time را تحریک می کند ، گاهی اوقات خطای out_of_time را تحریک نمی کند ، نشان می دهد که پیچیدگی کد قرارداد در یک مقدار مهم است. از آنجا که عملکرد دستگاه SR های مختلف متفاوت است ، باعث تحریک متناوب می شود.

علاوه بر این ، لازم به ذکر است که به دلیل نوسانات عملکرد دستگاه SR ، یک احتمال کوچک وجود خواهد داشت که عملکرد قرارداد با پیچیدگی بسیار کم نیز خطای OUT_OF_TIME را ایجاد کند. توصیه می شود کاربران برای جلوگیری از خسارات بیش از حد ناشی از ایجاد بیش از حد FEE_LIMIT ، FEE_LIMIT مناسب را تنظیم کنند.

آدرس تخریب آدرس است که توسط کسی کنترل نمی شود ، یعنی هیچ کس کلید خصوصی آدرس را ندارد. به عنوان مثال ، آدرس 0 ، آدرس 1 ، آدرس 2. این آدرس های ویژه همه می توانند به عنوان آدرس تخریب استفاده شوند.

قالب هگزقالب BASE58
0410000000000000000000000000000000000000000T9YD14NJ9J7XAB4DBGEIX9H8UNKKHXUWB
1410000000000000000000000000000000000000001T9YD14NJ9J7XAB4DBGEIX9H8UNKKLXMGKN
2410000000000000000000000000000000000000002T9YD14NJ9J7XAB4DBGEIX9H8UNKKT76QBH

پاسخ

اول ، طبق گفته TXID ، زمینه Contractresult را در نتیجه بازگشت از طریق رابط Wallet/GetTransactionInfobyID پرس و جو کنید. اگر قسمت خالی نیست ، می توانید مقدار کد ABI پیام را مشاهده کنید ، مقدار کد را به یک رشته تبدیل کنید و دلیل خطا را پیدا کنید. شکست خاص ممکن است در اثر تعادل کافی ایجاد شود. شما باید مانده آدرس و مبلغ انتقال را بررسی کنید , خطاهای دیگر را می توان با توجه به دلیل خاص خطا بررسی کرد.

اگر متضاد خالی باشد ، ممکن است ناشی از عدم موفقیت ادعای نیاز بدون پیام در قرارداد باشد. برای جزئیات بیشتر ، لطفاً به سند مراجعه کرده و کد منبع قرارداد را برای تجزیه و تحلیل مشاهده کنید.

پاسخ

  1. پهنای باند بر اساس تعداد بایت های رمزگذاری شده توسط ProtoBUF معامله محاسبه می شود.
  2. انرژی بر اساس دستورالعمل های اجرا شده توسط قرارداد کسر می شود. دستورالعمل های مختلف به طور متفاوتی کسر می شوند. هرچه قرارداد پیچیده تر باشد ، انرژی بیشتری مصرف می شود. انرژی مصرفی توسط قرارداد فعلی را می توان با آزمایش در TestNet یا مشاهده تماس های تاریخی قبلی قرارداد از طریق Tronscan یا استناد به API تخمین زد. مدل منابع می تواند به سند مراجعه کند

چگونه می توان مصرف انرژی را از طریق API فراخوانی از GreatVoyage-V4. 3. 0 (بیکن) برآورد کرد ، کاربر می تواند از روش Readonly و همچنین روش غیر خواندنی یک قرارداد از طریق API کیف پول/TriggerConstantContract استفاده کند ، و یک زمینه جدید Energy_limit در وجود داردارزش بازگشت کیف پول/TriggerConstantContract ، به معنای مصرف انرژی واقعی این قرارداد است. لطفاً توجه کنید: این عملیات معامله ای در زنجیره ایجاد نمی کند و وضعیت گره فعلی را تغییر نمی دهد. استفاده از روش غیر خواندن می تواند برای پیش بینی مصرف انرژی استفاده شود.

پاسخ دهید که پخش معامله موفق است اما در زنجیره ای نیست زیرا معامله به دلیل شبکه گره یا دلایل ناشناخته دیگر به گره SR پخش نمی شود. در این حالت ، به دلیل اینکه معامله دارای یک دوره اعتبار است ، بهتر است داوری تأخیر اضافه کنید و پس از مدت اعتبار معامله آن را اضافه کنید. اگر کمی وقت اضافی در زنجیره نباشد ، می توان قضاوت کرد که معامله از دوره اعتبار فراتر رفته است و می توان معامله را دوباره آغاز کرد ، یا می توان معامله را در دوره اعتبار دوباره بارگیری کرد.

پاسخ

  1. لازم است بررسی کنید که آیا آدرس قرارداد تماس TRX دارای TRX است یا خیر ، آیا پرداخت هزینه انرژی سوزاندن یا هزینه پهنای باند کافی است ، در غیر این صورت آدرس نیاز به به دست آوردن TRX کافی دارد.
  2. اگر TRX به اندازه کافی وجود داشته باشد ، FeelImit تعیین شده توسط معامله کوچکتر است و تنظیمات FeelImit باید افزایش یابد.

پاسخ 1. پیکربندی دستگاه IMPROVE ، هارد دیسک 16Core 32Gram 1T (SSD) را توصیه کنید

در نتیجه دستور زیر ، حداکثر مقدار هر دو هسته CPU و خواهر و برادر باید بیشتر از یا برابر با 16 باشد.

$ cat /proc /cpuinfo |GRE P-E "هسته های CPU" -e "خواهر و برادر" |مرتب سازی |هسته های CPU UNIQ: 8 خواهر و برادر: 16 2. تحمل زمان تحمل معاملات تأیید ، مقدار مورد پیکربندی MaxTimeratio را در پرونده پیکربندی گره به 20. 0 یا بالاتر افزایش می دهد.

vm = supportConstant = false minTimeRatio = 0.0 maxTimeRatio = 20.0 saveIntealTx = false >3. پارامترهای راه اندازی Jav a-tron برای افزایش پارامترهای جمع آوری زباله موازی : xx:+useconcmarkseepgc و-xmx مانند: jav a-xmx24 g-xx:+useconcmarksweepg c-jar fullnode. ja r-c.-xx:+useconcmarksweepgc باید قبل از پارامت ر-jar قرار گیرد ، نه در پایا ن-xmx می تواند 80 ٪ از حافظه فیزیکی را تنظیم کند

پاسخ اگر تعداد معاملات فرآوری نشده گره از 2000 فراتر رود ، یک خطای شلوغ سرور بازگردانده می شود. با توجه به وضعیت دستگاه ، می توانید با اصلاح Node. MaxTransactionPendingsize در پرونده پیکربندی گره ، آویز را افزایش دهید. به عنوان مثال ، node. maxstransactionpendingsize = 5000 را تنظیم کنید.

پاسخ به منظور اطمینان از تخصیص معقول منابع درخواست شده ، Trongrid در حال حاضر محدودیت فرکانس IP را برای کلیه درخواست ها دارد. Trongrid هنگامی که از حد فرکانس دسترسی فراتر رود ، یک کد خطای 4xx یا 5xx را برمی گرداند. راه حل این است: ابتدا ، مطمئن شوید که از کلید API در URL استفاده می کنید. درخواست های بدون کلید API به شدت محدود خواهد شد یا حتی به طور کامل رد می شود. ثانیا ، می توانید به طور مناسب فرکانس درخواست را کاهش دهید ، به عنوان مثال ، هنگام شروع DAPP تعداد درخواست ها را محدود کنید. خیلی اوقات از نظرسنجی برای Trongrid استفاده نکنید ، شبکه Tron در هر 3 ثانیه بلوک تولید می کند ، بنابراین معمولاً منطقی نیست که داده های جدید را با سرعت بیشتری درخواست کنید.

11. نحوه حل بدون تغییر_ر در معامله هنگامی که کاربر روش های خالص یا مشاهده قرارداد را ایجاد می کند.

پاسخ این مسئله در حال حاضر فقط زمانی دیده می شود که کاربران نسخه Java-Tron را از GreatVoyage-V4. 2. 2 (Lucretius) یا سایر نسخه های بالاتر به GreatVoyage-V4. 2. 1 (Origen) (یا GreatVoyage-V4. 2. 0 (افلاطون)) کاهش می دهند. اگر کاربران با این مشکل روبرو شوند ، برای ترمیم پایگاه داده باید از یک ابزار تعمیر استفاده کنند. پس از اتمام تعمیر ، کاربران می توانند از نسخه های GreatVoyage-V4. 2. 2. 2. 1 یا بعداً از نسخه های بعدی استفاده کنند تا گره را به طور عادی شروع کند. لطفاً به مراحل عملکرد دقیق از راهنمای کاربر dbreqair. jar مراجعه کنید

 

کد خطاعلتراه حل
سورپرایزخطای امضای1. بررسی کنید که آیا کلید خصوصی مورد استفاده برای علامت متعلق به آدرس ارسال معامله است یا خیر.

 

contract_validate_error توضیحات پیام های خطای مشترک

حساب وجود نداردحسابی که معامله را آغاز کرده است فعال نمی شود
تأیید خطای *** ، بدون مالکیتآدرس مالک نادرست است
بدون قرارداد یا یک قرارداد هوشمند معتبرآدرس قرارداد نادرست است
این گره ثابت پشتیبانی نمی کندVM. SupportConstant از گره روی 1 تنظیم نشده است. این در گره های خود ساخته رایج است.

پاسخ از GreatVoyage-V4. 3. 0 (بیکن) ، اگر گره LevelDB را اتخاذ کند ، کاربر می تواند از ابزار بهینه سازی راه اندازی LevelDB برای بهبود سرعت راه اندازی گره استفاده کند. این ابزار اندازه پرونده مانیفست و فرآیند راه اندازی LevelDB را بهینه می کند ، که باعث کاهش مصرف حافظه و بهبود سرعت راه اندازی گره می شود. مراحل دقیق لطفا به ابزار بهینه سازی راه اندازی LevelDB - راهنمای کاربر مراجعه کنید

پاسخ برای مبادله یا کیف پول ، معمولاً لازم است اطلاعات معاملات تاریخی یک حساب را بدست آورید ، یا نظارت بر انتقال زمان واقعی وجوه از آدرس حساب. مبادله یا کیف پول می تواند یک گره کامل بسازد ، و سپس سوابق معامله آدرس حساب را با تجزیه بلوک های تاریخی بدست آورید ، برای اطلاعات بیشتر ، لطفاً به اینجا مراجعه کنید. پاسخ < SPAN> از GreatVoyage-V4. 3. 0 (بیکن) ، اگر گره LevelDB را اتخاذ کند ، کاربر می تواند از ابزار بهینه سازی راه اندازی LevelDB برای بهبود سرعت راه اندازی گره استفاده کند. این ابزار اندازه پرونده مانیفست و فرآیند راه اندازی LevelDB را بهینه می کند ، که باعث کاهش مصرف حافظه و بهبود سرعت راه اندازی گره می شود. مراحل دقیق لطفا به ابزار بهینه سازی راه اندازی LevelDB - راهنمای کاربر مراجعه کنید

کتاب دستیار معامله گر...
ما را در سایت کتاب دستیار معامله گر دنبال می کنید

برچسب : نویسنده : عزت‌الله انتظامی بازدید : 66 تاريخ : سه شنبه 1 فروردين 1402 ساعت: 10:33