আপনি জানেন: দুটি বিটকয়েন ব্লকের মধ্যে প্রত্যাশিত সময় গড়ে \(10\) মিনিট। এখন আপনি একটি গুরুত্বপূর্ণ বিটকয়েন লেনদেন করছেন এবং পরবর্তী ব্লকে এটি কখন প্রদর্শিত হবে তা দেখার জন্য অধীর আগ্রহে অপেক্ষা করছেন:
e50bfacc95975a4e7545d83d8954645f
যেহেতু আপনি পূর্ববর্তী ব্লকটি কখন সম্পন্ন হয়েছে তা পরীক্ষা করেননি, আপনি প্রকৃতপক্ষে গড়ে \( \frac{t}{2} = \frac{10}{2} = 5 \) মিনিট অপেক্ষা করার সময় আশা করছেন। \(5\) দীর্ঘ মিনিট অতিবাহিত হওয়ার পরে, শেষ ব্লকটি কখন সম্পূর্ণ হয়েছিল তা পরীক্ষা করুন:
e50bfacc95975a4e7545d83d8954645f
শেষ ব্লকটি ইতিমধ্যেই \(7\) মিনিট আগে সম্পন্ন হয়েছে। এখন যেহেতু আপনি এই তথ্যটি জানেন, প্রত্যাশিত সময় \(5\) মিনিট থেকে মোট \(10\) মিনিটে পরিবর্তিত হয়। এর মানে: প্রায় \(3\) মিনিটের মধ্যে এটি সম্ভবত এতদূর হবে। আপনি বারবার আদেশ জারি করেন। এবং অপেক্ষা করুন. আরও \(10\) মিনিট পরে আপনি অনুভব করবেন যে কিছু ভুল হয়েছে।
কিন্তু তারপর মনে পড়ে অপেক্ষমাণ প্যারাডক্স:
যদি বাসগুলি গড়ে প্রতি \(t\) মিনিটে চলে, তবে বাস স্টপে এলোমেলো আগমনের জন্য অপেক্ষার সময়টি \(\frac{t}{2}\) মিনিটের সাথে সঙ্গতিপূর্ণ নয়, তবে সূচকীয়ভাবে বিতরণের ক্ষেত্রে দূরত্ব \(t\) ।
বিটকয়েন ব্লক হওয়া একটি পয়সন প্রক্রিয়া এবং তাই তা দ্রুতগতিতে বিতরণ করা হয়। যেহেতু পয়সন প্রক্রিয়াগুলি স্মৃতিহীন, পরবর্তী ব্লকটিও গড়ে \(10\) মিনিটের মধ্যে সম্পন্ন হয়। এটি সর্বদা প্রযোজ্য - আমরা যতক্ষণ অপেক্ষা করছি না কেন। স্মৃতিহীনতার গুণটি সময়ের সাথে পিছনে এবং সামনে উভয় ক্ষেত্রেই প্রযোজ্য।
কিভাবে এটা পারব?
এটি করার জন্য, আমরা নিম্নলিখিত দুটি বিবৃতি বিবেচনা করি:
- ক) দুটি ব্লকের মধ্যে প্রকৃত গড় অপেক্ষার সময় হল \(10\) মিনিট, \(20\) মিনিট নয়।
- খ) সময়ের মধ্যে একটি এলোমেলো বিন্দু নির্বাচন করা হলে, আমরা আশা করি যে পূর্ববর্তী ব্লক \(10\) মিনিট অতীতে এবং পরবর্তী ব্লক \(10\) মিনিট ভবিষ্যতে। সুতরাং আমরা ব্লকগুলির মধ্যে \(20\) মিনিট অপেক্ষার সময় আশা করতে পারি।
আমরা উভয় বিবৃতি পরীক্ষা.
এটি করার জন্য, আমরা প্রথমে প্রাসঙ্গিক ডেটা বের করি, বিশেষ করে যে সময়ে ব্লকগুলি সম্পূর্ণ করা হয়েছিল, একটি TXT ফাইলে ( বিটকয়েন্ডের উপর ভিত্তি করে স্থানীয়ভাবে চলমান সম্পূর্ণ নোডের সাথে চালানো হবে):
e50bfacc95975a4e7545d83d8954645f
এটি আমাদের নিম্নলিখিত টেক্সট ফাইল দেয় , যা আমরা এখন আরও প্রক্রিয়া করি এবং /time.txt এ সংরক্ষণ করি । নিম্নলিখিত মরিচা প্রোগ্রামটি এর জন্য /Cargo.toml ফাইলের সাথে ব্যবহার করা হয়:
e50bfacc95975a4e7545d83d8954645f
/src/main.rs ফাইলটিতে প্রকৃত পরীক্ষার যুক্তি রয়েছে:
e50bfacc95975a4e7545d83d8954645f
আমরা নির্ভরতাগুলি ইনস্টল করি, প্রোগ্রামটি তৈরি করি এবং এটি শুরু করি:
e50bfacc95975a4e7545d83d8954645f
প্রকৃতপক্ষে, যখন আমরা আউটপুট বিশ্লেষণ করি তখন উভয় বিবৃতিই সত্য:
e50bfacc95975a4e7545d83d8954645f
এটিকে স্বজ্ঞাতভাবে ব্যাখ্যা করা যেতে পারে এইভাবে: যদি ব্লকের সময়গুলি উল্লেখযোগ্যভাবে পরিবর্তিত হয়, তবে নির্দিষ্ট অপেক্ষার সময় পরিবর্তিত হয় - যদি আমরা একটি এলোমেলো সময়ে লেনদেন সম্পাদন করি, তাহলে সম্ভাবনা বেশি যে আমরা একটি ব্যবধানে শেষ হব যার মধ্যে অপেক্ষার সময় 10 মিনিটের চেয়ে বেশি কারণ এই ব্যবধানগুলিও টাইমলাইনে বেশি স্থান নেয় কারণ দীর্ঘ সময়ের জন্য।