পড়ার সময়: 4 মিনিট
এই নির্দেশিকা আপনাকে সেই বাজে বাগ খুঁজে পেতে সাহায্য করতে পারে যা আপনাকে বিরক্ত করছে এবং সেগুলিকে সংশোধন করার জন্য সরঞ্জামগুলি৷
ডিবাগিং যেকোন সফ্টওয়্যার বিকাশ চক্রের জন্য অত্যন্ত গুরুত্বপূর্ণ; মানুষ সবসময় ভুল করে। এজন্য আমরা অপরাজেয়; আমরা ভুল করি এবং তাদের থেকে শিখি। ডিবাগিং হল আমাদের কোড কোথায় পিছিয়ে আছে তা খুঁজে বের করার একটি প্রক্রিয়া, সেটি ঠিক করা এবং সেই ত্রুটি সম্পর্কে শেখা যাতে এটি পুনরাবৃত্তি না হয়।
ব্লকচেইন অ্যাপ্লিকেশন তৈরির জন্য স্মার্ট চুক্তি উন্নয়ন অত্যন্ত গুরুত্বপূর্ণ। কিন্তু অন্য যেকোনো সফ্টওয়্যার ডেভেলপমেন্ট চক্রের মতো স্মার্ট কন্ট্রাক্ট ডিবাগিং কখনও কখনও চ্যালেঞ্জিং হতে পারে, এবং এখানে আমরা প্রায়শই বিপুল পরিমাণ অর্থের সাথে লেনদেন করি, আমরা সুযোগের জন্য কিছু ছেড়ে দিতে পারি না। আমাদের স্মার্ট চুক্তি লিখতে নিখুঁত হতে হবে এবং ডিবাগিংয়ে নিখুঁত হতে হবে। এই কারণেই আমরা এই ব্লগটি নিয়ে এসেছি যাতে আপনি সেরা থেকে ডিবাগিং সম্পর্কে জানতে পারেন৷
কিছু ঠিক করার আগে, আমাদের সমস্যাটি জানতে হবে, তাই আসুন স্মার্ট কন্ট্রাক্ট ডেভেলপমেন্টে বিভিন্ন ধরনের বাগ শনাক্ত করা শুরু করি।
সাধারণ ত্রুটি
এই বিভাগে, আমরা বিভিন্ন ধরনের বাগ অন্বেষণ করব স্মার্ট চুক্তি বিকাশকারীরা নিয়মিতভাবে আসে।
- বাক্যগঠন ত্রুটি:- এই ত্রুটিটি ঠিক করা সহজ। এটি ঘটে যখন একজন বিকাশকারী একটি কোড ভুল করে যা কম্পিউটারকে এটি বুঝতে বাধা দেয়, যেমন একটি সেমিকোলন অনুপস্থিত।
- লজিক্যাল ত্রুটি:- এই ধরনের ত্রুটি কখনও কখনও খুঁজে পাওয়া কঠিন হতে পারে। এটি কার্যকর করতে বাধা দেয় না, তবে প্রোগ্রামের কার্যকারিতা পরিবর্তন করা হয়। এই প্রোগ্রামটি অপ্রত্যাশিতভাবে একটি স্মার্ট চুক্তির মতো আচরণ করে যা একটি অ্যাকাউন্ট থেকে অন্য অ্যাকাউন্টে অর্থ পাঠানোর সময় ভুল ঠিকানায় অর্থ স্থানান্তর করে।
- রানটাইম ত্রুটি:- এই ত্রুটিগুলি অনুমান করা কঠিন। তারা একটি অপ্রত্যাশিত সময়ে এবং অপ্রত্যাশিত জায়গায় আসে. এটি স্মার্ট চুক্তি সম্পাদনের সময় ঘটে এবং অদক্ষ ব্যতিক্রম পরিচালনার কারণে ঘটে। উদাহরণস্বরূপ, এটি ঘটতে পারে যখন একটি চুক্তি অপ্রত্যাশিত ইনপুট পরিচালনা করতে ব্যর্থ হয় বা অন্তর্নিহিত ব্লকচেইন দ্বারা নিষিদ্ধ একটি অপারেশন চালানোর চেষ্টা করে। উদাহরণস্বরূপ, একটি চুক্তি অনুমোদিত প্যারামিটারের চেয়ে বেশি অর্থ স্থানান্তর করার চেষ্টা করছে।
- এক্সিকিউশন প্রত্যাবর্তিত ত্রুটি:- এটি ঘটে যখন ব্যবহারকারী কোন অবৈধ অনুরোধ করে যা স্মার্ট চুক্তির যুক্তির বিরুদ্ধে হয় তখন অনুরোধটি বাতিল এবং প্রত্যাবর্তন করা হয়। এটি ঘটে কারণ কখনও কখনও স্মার্ট চুক্তিতে লেনদেন প্রক্রিয়া করার জন্য নির্দিষ্ট প্রয়োজনীয়তা পূরণ করতে হয়। তবুও, ব্যবহারকারী প্রয়োজনীয়তা পূরণ না করে লেনদেনের সাথে এগিয়ে যায় এবং তারপরে লেনদেনটি এগিয়ে নেওয়া হয় না এবং ফিরিয়ে দেওয়া হয়। উদাহরণস্বরূপ, একজন ব্যবহারকারী $100 স্থানান্তর করার চেষ্টা করছেন কিন্তু তার $50 ব্যালেন্স আছে।
- স্ট্যাক ওভারফ্লো:- ক্রিয়াকলাপ সম্পাদনের জন্য সংস্থানগুলির জন্য একটি গ্যাস ফি খরচ হয়। ফাংশন যত ভারী, খরচ তত বেশি। কোডিং এর কিছু ভারী মেকানিজম হল লুপ এবং
পুনরাবৃত্ত কল<!– wp:paragraph –>পুনরাবৃত্ত কল এমন একটি শর্ত যা নিজেকে উল্লেখ করতে পারে এবং একটি লুপে বারবার তাদের পুনরায় কল করতে পারে। রিকার্সিভ ফাংশন বেস কেস (যদি) এবং ইন্ডাকশন কেস (অন্য) ব্যবহার করে। কোডে রিকার্সিভ কল ব্যবহার করে পুনরায় প্রবেশের আক্রমণ করা হয়। <br/><!– /wp:paragraph –>
” data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]”>রিকারসিভ কল। স্ট্যাক ওভারফ্লো সঙ্গে কি করতে হবে
পুনরাবৃত্ত কল<!– wp:paragraph –>পুনরাবৃত্ত কল এমন একটি শর্ত যা নিজেকে উল্লেখ করতে পারে এবং একটি লুপে বারবার তাদের পুনরায় কল করতে পারে। রিকার্সিভ ফাংশন বেস কেস (যদি) এবং ইন্ডাকশন কেস (অন্য) ব্যবহার করে। কোডে রিকার্সিভ কল ব্যবহার করে পুনরায় প্রবেশের আক্রমণ করা হয়। <br/><!– /wp:paragraph –>” data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]”>রিকারসিভ কল।
পুনরাবৃত্ত কল<!– wp:paragraph –>পুনরাবৃত্ত কল এমন একটি শর্ত যা নিজেকে উল্লেখ করতে পারে এবং একটি লুপে বারবার তাদের পুনরায় কল করতে পারে। রিকার্সিভ ফাংশন বেস কেস (যদি) এবং ইন্ডাকশন কেস (অন্য) ব্যবহার করে। কোডে রিকার্সিভ কল ব্যবহার করে পুনরায় প্রবেশের আক্রমণ করা হয়। <br/><!– /wp:paragraph –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>রিকারসিভ কল হল একই ফাংশনের মধ্যে বিভিন্ন ইনপুট দিয়ে একটি ফাংশন ইনভোক করার একটি পদ্ধতি। আখের রস মেশিন হিসাবে একটি পুনরাবৃত্ত ফাংশন চিন্তা করতে পারে। মেশিন একটি ফাংশন হিসাবে এবং আখ ইনপুট হিসাবে আচরণ করে। মেশিন থেকে আখের প্রতিটি রান মানে একটি ফাংশন কল। এক সময় পরে, আখ আবার মেশিনের নীচে চলে যায় এবং এই প্রক্রিয়াটি পুনরাবৃত্তি করতে থাকে। এই কি পুনরাবৃত্তি হয়. কিন্তু যেহেতু আমরা গ্যাস খরচ এবং ইভিএম সংস্থান কমাতে চাই, ইথেরিয়াম 1024 বার পর্যন্ত পুনরাবৃত্তি কল সীমাবদ্ধ করে। আপনি যখন একটি ফাংশন 1025 তম বার কল করেন, তখন এটি একটি স্ট্যাক ওভারফ্লো হয়।
- JUMP ত্রুটি:- যখন আপনি এমন একটি ফাংশন কল করার চেষ্টা করেন যা বিদ্যমান নেই বা অ্যাসেম্বলি ভাষা ব্যবহার করে এবং মিথ্যা মেমরির দিকে নির্দেশ করে, এর ফলে একটি ত্রুটি দেখা দেয়। আপনি যখন অন্য কোন চুক্তির একটি ফাংশন কল করেন তখনও এটি ঘটতে পারে, কিন্তু সেই ফাংশনটি বিদ্যমান নেই। এই ধরনের ত্রুটিগুলিকে JUMP ত্রুটি বলা হয়।
এই ছিল কিছু সাধারণ স্মার্ট চুক্তি ত্রুটি ডেভেলপারদের সম্মুখীন; ত্রুটিগুলি কখনও কখনও সনাক্ত করা এবং বোঝা কঠিন হতে পারে। ত্রুটিগুলি খুঁজে বের করতে এবং সেগুলি ঠিক করার চেষ্টা করার জন্য, আমরা বিভিন্ন সরঞ্জামের সাহায্য নিই। আসুন আমরা পরের বিভাগে একে একে সেগুলো দিয়ে যাই।
চারটি দরকারী ডিবাগিং টুল
এই বিভাগে, আমরা বিশ্বব্যাপী সবচেয়ে অভিজ্ঞ ডেভেলপারদের দ্বারা বাগ শনাক্ত করতে এবং সমাধান করতে ব্যাপকভাবে ব্যবহৃত সরঞ্জামগুলি সম্পর্কে শিখব। চলো যাই.
কঠিন টুপি
এই টুলটি বিভিন্ন প্যারামিটারে স্মার্ট চুক্তি পরীক্ষা করার জন্য ব্যাপকভাবে ব্যবহৃত এবং গৃহীত হয়। এটি Ethereum-এর জন্য একটি ওপেন সোর্স ডেভেলপমেন্ট এনভায়রনমেন্ট প্রদান করে। এটিতে স্মার্ট চুক্তির বিকাশ, পরীক্ষা এবং স্থাপনের জন্য সরঞ্জাম অন্তর্ভুক্ত রয়েছে। এর অন্তর্নির্মিত ডিবাগার সারা বিশ্বের অনেক ডেভেলপারদের জন্য সহায়ক। এটি পরীক্ষার পর্যায়েও একটি ভারী ভূমিকা পালন করে।
কন্দজাতীয় ছত্রাক
এটি Ethereum-এর জন্য একটি জনপ্রিয় উন্নয়ন কাঠামো। হার্ডহ্যাটের মতো, এটিতে স্মার্ট চুক্তিগুলি বিকাশ, পরীক্ষা এবং স্থাপনের জন্য সরঞ্জাম অন্তর্ভুক্ত রয়েছে এবং এটি তৈরি করেছে ট্রাফল ডিবাগার, যা ডেভেলপারদের পরীক্ষার পর্যায়ে একটি মসৃণ বিকাশের অভিজ্ঞতা দিয়ে সাহায্য করে।
রিমিক্স
এটি এমন একটি যা প্রায় প্রত্যেক ডেভেলপার যখন প্রথম web3 তে তাদের যাত্রা শুরু করেছিল তখন তারা পেয়েছিলেন। এটি দৃঢ়তার জন্য একটি অনলাইন কোড সম্পাদক, তাই বিকাশের সাথে শুরু করার জন্য কোনও অফলাইন ইনস্টলেশনের প্রয়োজন নেই। এর অন্তর্নির্মিত ডিবাগিং বৈশিষ্ট্যটি বিকাশকারীদের কোড স্ক্যান করতে এবং পরিবর্তনশীল সমস্যাগুলি পরিদর্শন করতে দেয়। এবং এই সবই অনলাইনে অফলাইন টুলের প্রয়োজন নেই।
Etherscan
এটি Ethereum-এর জন্য একটি ব্যাপকভাবে বিশ্বস্ত এবং জনপ্রিয় ব্লক এক্সপ্লোরার। এটি বিকাশকারীদের ইথেরিয়াম ব্লকচেইনে স্থাপন করা স্মার্ট চুক্তিগুলি পরিদর্শন এবং ডিবাগ করার অনুমতি দেয়। এটি ব্যবহার করে, আপনি যেকোনো ঠিকানা বা চুক্তির লেনদেন এবং কার্যকলাপ ট্র্যাক করতে পারেন। আপনার স্মার্ট চুক্তিতে কোনো অন-চেইন সমস্যার সম্মুখীন হলে সমস্যাটি কোথায় হবে তা চিহ্নিত করতে এটি আপনাকে সাহায্য করে।
উপসংহার
স্মার্ট চুক্তিগুলি ডিবাগ করা কঠিন এবং কখনও কখনও হতাশাজনক, তবে এটি নিরাপত্তা এবং পরীক্ষার সাথে সম্পর্কিত একটি গুরুত্বপূর্ণ পর্যায়। এখানেই দুর্বলতাগুলি হ্যাকারদের কাছে নিজেকে উপস্থাপন করার সম্ভাবনা বেশি এবং প্রোটোকল সম্পূর্ণ ব্যর্থতার দিকে নিয়ে যেতে পারে। এই ধরনের পরিস্থিতি থেকে নিজেকে বাঁচাতে, অডিট করার জন্য অত্যন্ত পরামর্শ দেওয়া হয়।
QuillAudits দীর্ঘকাল ধরে এই উল্লম্বে রয়েছে এবং একটি বিশেষজ্ঞ দল রয়েছে যারা সম্ভাব্য প্রতিটি দুর্বলতা পরিচালনা করতে পারে এবং আপনাকে আপনার প্রোটোকল সুরক্ষিত করতে সহায়তা করতে পারে। পরীক্ষা, এর গুরুত্ব এবং ডিবাগিংয়ের সাথে এর সম্পর্ক সম্পর্কে, বিস্তারিত ব্লগ পড়ুন, যা আপনাকে প্রতিটি দিক বুঝতে সাহায্য করবে https://blog.quillhash.com/2023/02/16/testing-and-formal-verification/. আমাদের ওয়েবসাইট পরিদর্শন করুন এবং আপনার প্রকল্প নিরীক্ষিত করুন!
12 মতামত
- এসইও চালিত বিষয়বস্তু এবং পিআর বিতরণ। আজই পরিবর্ধিত পান।
- প্লেটোব্লকচেন। Web3 মেটাভার্স ইন্টেলিজেন্স। জ্ঞান প্রসারিত. এখানে প্রবেশ করুন.
- উত্স: https://blog.quillhash.com/2023/03/03/4-most-useful-smart-contract-debugging-tools/
- a
- সম্পর্কে
- হিসাব
- দিয়ে
- কার্যকলাপ
- ঠিকানা
- পর
- বিরুদ্ধে
- সব
- অনুমতি
- সর্বদা
- পরিমাণ
- এবং
- অন্য
- অ্যাপ্লিকেশন
- কাছাকাছি
- দৃষ্টিভঙ্গি
- সমাবেশ
- আক্রমন
- প্রচেষ্টা
- অডিট
- ভারসাম্য
- ভিত্তি
- কারণ
- সর্বোত্তম
- বাধা
- blockchain
- blockchain অ্যাপ্লিকেশন
- ব্লগ
- নম
- বাগ
- ভবন
- নির্মিত
- বিল্ট-ইন
- কল
- নামক
- কল
- না পারেন
- বহন
- কেস
- কিছু
- চ্যালেঞ্জিং
- সুযোগ
- পরিস্থিতি
- কোড
- কোডিং
- আসা
- সাধারণ
- সম্পূর্ণ
- কম্পিউটার
- শর্ত
- চুক্তি
- চুক্তি
- মূল্য
- খরচ
- কঠোর
- কাটা
- চক্র
- লেনদেন
- মোতায়েন
- মোতায়েন
- বিশদ
- বিকাশকারী
- ডেভেলপারদের
- উন্নয়নশীল
- উন্নয়ন
- বিভিন্ন
- কঠিন
- সময়
- প্রতি
- সম্পাদক
- পরিবেশ
- ভুল
- ত্রুটি
- ethereum
- ইথেরিয়াম ব্লকচেইন
- এমন কি
- প্রতি
- ইভিএম
- উদাহরণ
- ব্যতিক্রম
- নির্বাহ
- ফাঁসি
- অভিজ্ঞতা
- অভিজ্ঞ
- ক্যান্সার
- অন্বেষণ করুণ
- অনুসন্ধানকারী
- সম্মুখ
- ব্যর্থ
- ব্যর্থতা
- বৈশিষ্ট্য
- পারিশ্রমিক
- আবিষ্কার
- প্রথম
- ঠিক করা
- অগ্রবর্তী
- ফ্রেমওয়ার্ক
- থেকে
- হতাশাজনক
- ক্রিয়া
- কার্যকারিতা
- গ্যাস
- পাওয়া
- Go
- Goes
- কৌশল
- হ্যাকার
- হাতল
- হ্যান্ডলিং
- ঘটা
- এরকম
- কঠিন
- প্রচন্ডভাবে
- ভারী
- সাহায্য
- সহায়ক
- সাহায্য
- এখানে
- অত্যন্ত
- HTTPS দ্বারা
- প্রচুর
- মানুষেরা
- সনাক্ত করা
- চিহ্নিতকরণের
- গুরুত্ব
- in
- অন্তর্ভুক্ত
- অদক্ষ
- ইনপুট
- সমস্যা
- সমস্যা
- IT
- নিজেই
- যাত্রা
- ঝাঁপ
- জানা
- পিছিয়ে
- ভাষা
- নেতৃত্ব
- শিখতে
- শিক্ষা
- ত্যাগ
- যাক
- সম্ভবত
- সীমা
- দীর্ঘ
- অনেকক্ষণ
- মেশিন
- করা
- তৈরি করে
- অনেক
- মানে
- স্মৃতি
- পদ্ধতি
- অনুপস্থিত
- ভুল
- টাকা
- অধিক
- সেতু
- প্রয়োজন
- পরবর্তী
- অফলাইন
- অন-চেইন
- ONE
- অনলাইন
- ওপেন সোর্স
- অপারেশন
- অপারেশনস
- অন্যান্য
- স্থিতিমাপ
- পরামিতি
- নির্ভুল
- ফেজ
- জায়গা
- Plato
- প্লেটো ডেটা ইন্টেলিজেন্স
- প্লেটোডাটা
- বিন্দু
- জনপ্রিয়
- সম্ভব
- ভবিষ্যদ্বাণী করা
- বর্তমান
- প্রতিরোধ
- আয়
- প্রক্রিয়া
- কার্যক্রম
- প্রকল্প
- প্রোটোকল
- উপলব্ধ
- কুইল্যাশ
- পড়া
- আবৃত্তি
- আবৃত্ত
- রিকার্সিভ
- সংক্রান্ত
- নিয়মিতভাবে
- সংশ্লিষ্ট
- সম্পর্ক
- পুনরাবৃত্ত
- অনুরোধ
- প্রয়োজন
- আবশ্যকতা
- Resources
- ফলাফল
- ভূমিকা
- চালান
- একই
- সংরক্ষণ করুন
- স্ক্যান
- অধ্যায়
- নিরাপদ
- নিরাপত্তা
- পাঠানোর
- স্মার্ট
- স্মার্ট চুক্তি
- স্মার্ট চুক্তি
- So
- সফটওয়্যার
- সফটওয়্যার উন্নয়ন
- ঘনত্ব
- কিছু
- গাদা
- পর্যায়
- শুরু
- এখনো
- এমন
- গ্রহণ করা
- টীম
- পরীক্ষামূলক
- সার্জারির
- বিশ্ব
- তাদের
- নিজেদের
- দ্বারা
- সময়
- বার
- থেকে
- অত্যধিক
- টুল
- সরঞ্জাম
- পথ
- লেনদেন
- লেনদেন
- হস্তান্তর
- স্থানান্তর
- বিরক্তিকর
- বিশ্বস্ত
- ধরনের
- অধীনে
- নিম্নাবস্থিত
- বোঝা
- বোধশক্তি
- অপ্রত্যাশিত
- us
- ব্যবহার
- ব্যবহারকারী
- বিভিন্ন
- দুর্বলতা
- দুর্বলতা
- Web3
- ওয়েবসাইট
- কি
- যে
- ব্যাপকভাবে
- ইচ্ছা
- মধ্যে
- ছাড়া
- বিশ্ব
- বিশ্বব্যাপী
- would
- লেখা
- আপনি
- আপনার
- নিজেকে
- zephyrnet