Bitcoin Magazine
The Core Issue: Cluster Mempool, সমস্যাগুলো টুকরো টুকরো করলে সহজ হয়
Cluster Mempool1 হলো মেমপুল কীভাবে লেনদেন সংগঠিত এবং সাজায় তার সম্পূর্ণ পুনর্গঠন, যা Suhas Daftuar এবং Pieter Wuille দ্বারা ধারণা করা এবং বাস্তবায়ন করা হয়েছে। এই ডিজাইনের লক্ষ্য হলো সামগ্রিক স্থাপত্য সরল করা, লেনদেন সাজানোর যুক্তিকে মাইনারদের প্রণোদনার সাথে আরও ভালোভাবে সামঞ্জস্যপূর্ণ করা এবং দ্বিতীয় স্তরের প্রোটোকলগুলির জন্য নিরাপত্তা উন্নত করা। এটি ২৫ নভেম্বর, ২০২৫ তারিখে PR #336292 এর মাধ্যমে Bitcoin Core-এ মার্জ করা হয়েছিল।
মেমপুল হলো অপেক্ষমাণ লেনদেনের একটি বিশাল সংগ্রহ যা আপনার নোডকে বিভিন্ন কারণে ট্র্যাক করতে হয়: ফি অনুমান, লেনদেন প্রতিস্থাপন যাচাইকরণ এবং আপনি যদি একজন মাইনার হন তবে ব্লক নির্মাণ।
এটি আপনার নোডের একটি একক ফাংশনের জন্য সেবা প্রদানের অনেকগুলো ভিন্ন লক্ষ্য। Bitcoin Core সংস্করণ 30.0 পর্যন্ত এই ফাংশনগুলিতে সহায়তা করার জন্য মেমপুলকে দুটি ভিন্ন উপায়ে সংগঠিত করে, উভয়ই যেকোনো নির্দিষ্ট লেনদেনের আপেক্ষিক দৃষ্টিকোণ থেকে: লেনদেন এবং তার সন্তানদের সামনের দিকে তাকিয়ে সম্মিলিত ফিরেট (বংশধর ফিরেট), এবং লেনদেন এবং তার পিতামাতাদের পিছনের দিকে তাকিয়ে সম্মিলিত ফিরেট (পূর্বপুরুষ ফিরেট)।
এগুলো ব্যবহার করা হয় আপনার মেমপুল পূর্ণ হলে কোন লেনদেনগুলো বের করে দিতে হবে এবং নতুন ব্লক টেমপ্লেট তৈরি করার সময় প্রথমে কোনগুলো অন্তর্ভুক্ত করতে হবে তা নির্ধারণ করতে।
যখন একজন মাইনার তাদের ব্লকে একটি লেনদেন অন্তর্ভুক্ত করবে কিনা তা নির্ধারণ করছে, তাদের নোড সেই লেনদেনটি দেখে এবং যেকোনো পূর্বপুরুষ যেগুলো ব্লকে বৈধ হওয়ার জন্য প্রথমে নিশ্চিত হতে হবে, এবং তাদের দ্বারা প্রদত্ত পৃথক ফিগুলো সামগ্রিকভাবে বিবেচনা করে তাদের সবগুলো একসাথে প্রতি বাইট গড় ফিরেট দেখে। যদি লেনদেনগুলির সেই গ্রুপটি ব্লকসাইজ সীমার মধ্যে ফিট হয় এবং ফি-তে অন্যদের তুলনায় ভালো হয়, তবে এটি পরবর্তী ব্লকে অন্তর্ভুক্ত হয়। এটি প্রতিটি লেনদেনের জন্য করা হয়।
যখন আপনার নোড তার মেমপুল পূর্ণ হলে কোন লেনদেনগুলো বের করে দিতে হবে তা নির্ধারণ করছে, এটি প্রতিটি লেনদেন এবং এর যেকোনো সন্তান দেখে, লেনদেন এবং তার সমস্ত সন্তানদের বের করে দেয় যদি মেমপুল ইতিমধ্যে উচ্চতর ফিরেট প্রদান করা লেনদেনগুলি (এবং তাদের বংশধরদের) দিয়ে পূর্ণ থাকে।
লেনদেনের উপরের উদাহরণ গ্রাফটি দেখুন, ফিরেটগুলো প্রথম বন্ধনীতে এভাবে দেখানো হয়েছে (পূর্বপুরুষ ফিরেট, বংশধর ফিরেট)। একজন মাইনার লেনদেন E দেখলে সম্ভবত এটি পরবর্তী ব্লকে অন্তর্ভুক্ত করবে, একটি ছোট লেনদেন যা একটি একক ছোট পূর্বপুরুষ সহ খুব উচ্চ ফি প্রদান করছে। তবে, যদি একটি নোডের মেমপুল পূর্ণ হচ্ছে, তবে এটি লেনদেন A কে দেখবে যার দুটি বিশাল সন্তান রয়েছে যারা কম আপেক্ষিক ফি প্রদান করছে, এবং সম্ভবত এটি বের করে দেবে বা এটি সবেমাত্র পাওয়া হলে গ্রহণ এবং রাখবে না।
এই দুটি র্যাঙ্কিং, বা ক্রম, একে অপরের সাথে সম্পূর্ণভাবে বিরোধী। মেমপুলকে নির্ভরযোগ্যভাবে প্রচার করা উচিত মাইনাররা কী মাইন করবে, এবং ব্যবহারকারীদের আত্মবিশ্বাসী হওয়া উচিত যে তাদের স্থানীয় মেমপুল সঠিকভাবে পূর্বাভাস দেয় মাইনাররা কী মাইন করবে।
এইভাবে মেমপুলের কাজ করা গুরুত্বপূর্ণ:
মেমপুলের বর্তমান আচরণ মাইনিং প্রণোদনার বাস্তবতার সাথে সম্পূর্ণভাবে সামঞ্জস্যপূর্ণ নয়, যা অন্ধ স্থান তৈরি করে যা দ্বিতীয় স্তরের নিরাপত্তার জন্য সমস্যাযুক্ত হতে পারে একটি লেনদেন মাইনারের কাছে পৌঁছাবে কিনা তা নিয়ে অনিশ্চয়তা সৃষ্টি করে, পাশাপাশি মাইনারদের কাছে অ-পাবলিক সম্প্রচার চ্যানেলগুলির জন্য চাপ, যা সম্ভাব্যভাবে প্রথম সমস্যাটিকে আরও খারাপ করতে পারে।
এটি বিশেষত সমস্যাযুক্ত যখন অনিশ্চিত লেনদেনগুলি প্রতিস্থাপন করার কথা আসে, হয় কেবল মাইনারদের দ্রুত একটি প্রতিস্থাপন অন্তর্ভুক্ত করতে উৎসাহিত করার জন্য, অথবা অন-চেইনে প্রয়োগ করা একটি দ্বিতীয় স্তরের প্রোটোকলের অংশ হিসাবে।
বিদ্যমান আচরণ অনুসারে প্রতিস্থাপন অনির্ণয়যোগ্য হয়ে ওঠে আপনার লেনদেনটি যে লেনদেনগুলির জালের মধ্যে আটকে আছে তার আকৃতি এবং আকারের উপর নির্ভর করে। একটি সাধারণ ফি-বাম্পিং পরিস্থিতিতে এটি একটি লেনদেন প্রচার এবং প্রতিস্থাপন করতে ব্যর্থ হতে পারে, এমনকি যখন প্রতিস্থাপন মাইন করা একজন মাইনারের জন্য ভালো হবে।
দ্বিতীয় স্তরের প্রোটোকলগুলির প্রেক্ষাপটে, বর্তমান যুক্তি অংশগ্রহণকারীদের সম্ভাব্যভাবে প্রয়োজনীয় পূর্বপুরুষ লেনদেনগুলি মেমপুল থেকে বের করে দিতে দেয়, অথবা অন্য একজন অংশগ্রহণকারীর জন্য বর্তমান নিয়মের অধীনে মেমপুলে একটি প্রয়োজনীয় সন্তান লেনদেন জমা দেওয়া সম্ভব না করে তোলে কারণ দূষিত অংশগ্রহণকারী তৈরি করা সন্তান লেনদেনগুলির কারণে, অথবা প্রয়োজনীয় পূর্বপুরুষ লেনদেনগুলির বহিষ্কার।
এই সমস্ত সমস্যাগুলি এই অসামঞ্জস্যপূর্ণ অন্তর্ভুক্তি এবং বহিষ্কার র্যাঙ্কিং এবং তারা যে প্রণোদনা অসামঞ্জস্যতা তৈরি করে তার ফলাফল। একটি একক বৈশ্বিক র্যাঙ্কিং থাকলে এই সমস্যাগুলি সমাধান হবে, তবে প্রতিটি নতুন লেনদেনের জন্য সম্পূর্ণ মেমপুলকে বৈশ্বিকভাবে পুনর্বিন্যাস করা অব্যবহারিক।
যে লেনদেনগুলি একে অপরের উপর নির্ভর করে তারা একটি গ্রাফ, বা একটি নির্দেশিত "পথ"-এর সিরিজ। যখন একটি লেনদেন অতীতে অন্য একটি দ্বারা তৈরি আউটপুট খরচ করে, তখন এটি সেই অতীত লেনদেনের সাথে সংযুক্ত হয়। যখন এটি অতিরিক্তভাবে অতীতের একটি দ্বিতীয় লেনদেন দ্বারা তৈরি আউটপুট খরচ করে, তখন এটি উভয় ঐতিহাসিক লেনদেনকে একসাথে সংযুক্ত করে।
যখন অনিশ্চিত থাকে, এই ধরনের লেনদেনের চেইনগুলির অবশ্যই পরবর্তীগুলি বৈধ হওয়ার জন্য প্রথমে পূর্ববর্তী লেনদেনগুলি নিশ্চিত হতে হবে। সর্বোপরি, আপনি এমন আউটপুট খরচ করতে পারবেন না যা এখনও তৈরি হয়নি।
এটি মেমপুল বোঝার জন্য একটি গুরুত্বপূর্ণ ধারণা, এটি স্পষ্টভাবে দিকনির্দেশনায় সাজানো।
এটি সবই একটি গ্রাফ।
ক্লাস্টার মেমপুলে, একটি ক্লাস্টার-এর ধারণা হলো অনিশ্চিত লেনদেনগুলির একটি গ্রুপ যা সরাসরি একে অপরের সাথে সম্পর্কিত, অর্থাৎ ক্লাস্টারে অন্যদের দ্বারা তৈরি আউটপুট খরচ করা বা বিপরীতভাবে। এটি নতুন মেমপুল স্থাপত্যের একটি মৌলিক ইউনিট হয়ে ওঠে। সম্পূর্ণ মেমপুল বিশ্লেষণ এবং সাজানো একটি অব্যবহারিক কাজ, তবে ক্লাস্টারগুলি বিশ্লেষণ এবং সাজানো অনেক বেশি পরিচালনযোগ্য।
প্রতিটি ক্লাস্টারকে চাংক-এ ভাঙা হয়, ক্লাস্টার থেকে লেনদেনগুলির ছোট সেট, যা তারপর দিকনির্দেশনা নির্ভরতাগুলিকে সম্মান করে প্রতি বাইট সর্বোচ্চ ফিরেট থেকে সর্বনিম্ন পর্যন্ত সাজানো হয়। সুতরাং উদাহরণস্বরূপ, বলা যাক সর্বোচ্চ থেকে সর্বনিম্ন ফিরেট পর্যন্ত ক্লাস্টার (A)-তে চাংকগুলি হলো: [A,D], [B,E], [C,F], [G, J], এবং শেষ [I, H]।
এটি এই সমস্ত চাংক এবং ক্লাস্টারগুলিকে পূর্ব-সাজানোর এবং প্রক্রিয়ায় সম্পূর্ণ মেমপুলের আরও দক্ষ সাজানোর অনুমতি দেয়।
মাইনাররা এখন প্রতিটি ক্লাস্টার থেকে সর্বোচ্চ ফিরেট চাংকগুলি সহজভাবে নিতে এবং তাদের টেমপ্লেটে রাখতে পারে, যদি এখনও জায়গা থাকে তবে তারা পরবর্তী সর্বোচ্চ ফিরেট চাংকগুলিতে যেতে পারে, ব্লক প্রায় পূর্ণ না হওয়া পর্যন্ত চালিয়ে যেতে পারে এবং কেবল শেষ কয়েকটি লেনদেন যা এটি ফিট করতে পারে তা বের করতে হবে। এটি সমস্ত উপলব্ধ লেনদেনে অ্যাক্সেস ধরে নিয়ে মোটামুটি সর্বোত্তম ব্লক টেমপ্লেট নির্মাণ পদ্ধতি।
যখন নোডগুলির মেমপুল পূর্ণ হয়, তারা প্রতিটি ক্লাস্টার থেকে সর্বনিম্ন ফিরেট চাংকগুলি সহজভাবে নিতে পারে এবং তাদের মেমপুল থেকে সেগুলি বের করা শুরু করতে পারে যতক্ষণ না এটি কনফিগার করা সীমার বেশি না হয়। যদি এটি যথেষ্ট না হয়, তবে এটি পরবর্তী সর্বনিম্ন ফিরেট চাংকগুলিতে চলে যায়, এবং আরও অনেক কিছু, যতক্ষণ না এটি তার মেমপুল সীমার মধ্যে থাকে। এইভাবে করা হলে এটি মাইনিং প্রণোদনার সাথে সামঞ্জস্যহীন অদ্ভুত প্রান্তিক কেসগুলি সরিয়ে দেয়।
প্রতিস্থাপন যুক্তিও ব্যাপকভাবে সরলীকৃত হয়। ক্লাস্টার (A) এর সাথে ক্লাস্টার (B) তুলনা করুন যেখানে লেনদেন K, G, I, J, এবং H কে প্রতিস্থাপন করেছে। একমাত্র মানদণ্ড যা পূরণ করতে হবে তা হলো নতুন চাংক [K] এর অবশ্যই [G, J] এবং [I, H] এর চেয়ে উচ্চ চাংক ফিরেট থাকতে হবে, [K] কে অবশ্যই [G, J, I, H] এর চেয়ে মোট ফি-তে বেশি প্রদান করতে হবে, এবং K এটি কতগুলি লেনদেন প্রতিস্থাপন করছে তার ঊর্ধ্বসীমার বেশি যেতে পারবে না।
একটি ক্লাস্টার দৃষ্টান্তে এই সমস্ত বিভিন্ন ব্যবহার একে অপরের সাথে সামঞ্জস্যপূর্ণ।
এই নতুন স্থাপত্য আমাদের লেনদেন গ্রুপ সীমা সরল করার অনুমতি দেয়, মেমপুলে একটি লেনদেন কতগুলি অনিশ্চিত পূর্বপুরুষ থাকতে পারে তার পূর্ববর্তী সীমাবদ্ধতাগুলি সরিয়ে এবং সেগুলিকে প্রতি ক্লাস্টার 64টি লেনদেন এবং 101 kvB এর একটি বৈশ্বিক ক্লাস্টার সীমা দিয়ে প্রতিস্থাপন করে।
এই সীমা প্রয়োজনীয় যাতে ক্লাস্টার এবং তাদের চাংকগুলি পূর্ব-সাজানোর গণনামূলক খরচ নোডগুলির জন্য একটি ধ্রুবক ভিত্তিতে সম্পাদন করা ব্যবহারিক হওয়ার জন্য যথেষ্ট কম রাখা যায়।
এটি ক্লাস্টার মেমপুলের প্রকৃত মূল অন্তর্দৃষ্টি। চাংক এবং ক্লাস্টারগুলিকে তুলনামূলকভাবে ছোট রেখে, আপনি একই সাথে একটি সর্বোত্তম ব্লক টেমপ্লেটের নির্মাণ সস্তা করেন, লেনদেন প্রতিস্থাপন যুক্তি (ফি-বাম্পিং) সরল করেন এবং তাই দ্বিতীয় স্তরের নিরাপত্তা উন্নত করেন এবং বহিষ্কার যুক্তি ঠিক করেন, সবকিছু একবারে।
টেমপ্লেট নির্মাণের জন্য আর কোনো ব্যয়বহুল এবং ধীর গতির ফ্লাই গণনা নেই, অথবা ফি-বাম্পিং-এ অনির্ণয়যোগ্য আচরণ নেই। বিভিন্ন পরিস্থিতিতে মেমপুল কীভাবে লেনদেন সংগঠন পরিচালনা করছিল তার প্রণোদনার অসামঞ্জস্যতা ঠিক করে, মেমপুল সবার জন্য আরও ভালোভাবে কাজ করে।
ক্লাস্টার মেমপুল একটি প্রকল্প যা তৈরিতে বছরব্যাপী সময় লেগেছে, এবং লাভজনক ব্লক টেমপ্লেটগুলি সমস্ত মাইনারদের জন্য উন্মুক্ত রাখা নিশ্চিত করার উপর, দ্বিতীয় স্তরের প্রোটোকলগুলির তৈরি করার জন্য সুদৃঢ় এবং পূর্বাভাসযোগ্য মেমপুল আচরণ রাখার উপর এবং Bitcoin একটি বিকেন্দ্রীভূত আর্থিক ব্যবস্থা হিসাবে কাজ চালিয়ে যেতে পারে তার উপর একটি বস্তুগত প্রভাব ফেলবে।
যারা ক্লাস্টার মেমপুল কীভাবে বাস্তবায়িত এবং অভ্যন্তরীণভাবে কাজ করে তার সূক্ষ্ম বিবরণে গভীরভাবে ডুব দিতে আগ্রহী, এখানে দুটি Delving Bitcoin থ্রেড রয়েছে যা আপনি পড়তে পারেন:
উচ্চ স্তরের বাস্তবায়ন সংক্ষিপ্ত বিবরণ (ডিজাইন যুক্তিসহ): https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393
ক্লাস্টার মেমপুল ফিরেট ডায়াগ্রাম কীভাবে কাজ করে: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553
আজই The Core Issue-এর আপনার কপি পান!
The Core Issue এর মালিক হওয়ার সুযোগ হাতছাড়া করবেন না — অনেক Core Developers দ্বারা লেখা নিবন্ধ যেখানে তারা নিজেরা যে প্রকল্পগুলিতে কাজ করছেন তা ব্যাখ্যা করেছেন!
এই অংশটি Bitcoin Magazine-এর সর্বশেষ প্রিন্ট সংস্করণ, The Core Issue-এ প্রকাশিত Letter from the Editor। আমরা সম্পূর্ণ সংখ্যা জুড়ে অন্বেষণ করা ধারণাগুলির প্রাথমিক দৃষ্টিভঙ্গি হিসাবে এটি এখানে শেয়ার করছি।
[1] https://github.com/bitcoin/bitcoin/issues/27677
[2] https://github.com/bitcoin/bitcoin/pull/33629
এই পোস্ট The Core Issue: Cluster Mempool, Problems Are Easier In Chunks প্রথম Bitcoin Magazine-এ প্রকাশিত হয়েছে এবং Shinobi দ্বারা লেখা।
