নেটওয়ার্কিং লেয়ার
পেজ সর্বশেষ আপডেট: 2 মার্চ, 2026
Ethereum হলো হাজার হাজার নোড সম্বলিত একটি পিয়ার-টু-পিয়ার নেটওয়ার্ক, যেগুলোকে অবশ্যই স্ট্যান্ডার্ডাইজড প্রটোকল ব্যবহার করে একে অপরের সাথে যোগাযোগ করতে সক্ষম হতে হবে। "নেটওয়ার্কিং লেয়ার" হলো প্রটোকলের একটি স্ট্যাক যা এই নোডগুলোকে একে অপরকে খুঁজে পেতে এবং তথ্য আদান-প্রদান করতে সাহায্য করে। এর মধ্যে নেটওয়ার্কের মাধ্যমে তথ্য "গসিপিং" (একের-সাথে-অনেকের যোগাযোগ) করার পাশাপাশি নির্দিষ্ট নোডগুলোর মধ্যে রিকোয়েস্ট এবং রেসপন্স সোয়াপ (একের-সাথে-একের যোগাযোগ) করা অন্তর্ভুক্ত। সঠিক তথ্য পাঠানো এবং গ্রহণ করা নিশ্চিত করতে প্রতিটি নোডকে অবশ্যই নির্দিষ্ট নেটওয়ার্কিং নিয়ম মেনে চলতে হবে।
ক্লায়েন্ট সফটওয়্যারের দুটি অংশ রয়েছে (এক্সিকিউশন ক্লায়েন্ট এবং কনসেন্সাস ক্লায়েন্ট), যার প্রতিটির নিজস্ব আলাদা নেটওয়ার্কিং স্ট্যাক রয়েছে। অন্যান্য ইথিরিয়াম নোডের সাথে যোগাযোগ করার পাশাপাশি, এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্টগুলোকে একে অপরের সাথেও যোগাযোগ করতে হয়। এই পেজটি সেই প্রটোকলগুলোর একটি প্রাথমিক ব্যাখ্যা দেয় যা এই যোগাযোগকে সম্ভব করে তোলে।
এক্সিকিউশন ক্লায়েন্টগুলো এক্সিকিউশন লেয়ার পিয়ার-টু-পিয়ার নেটওয়ার্কের মাধ্যমে লেনদেন গসিপ করে। এর জন্য অথেনটিকেটেড পিয়ারদের মধ্যে এনক্রিপ্টেড যোগাযোগ প্রয়োজন। যখন কোনো ভ্যালিডেটর একটি ব্লক প্রস্তাব করার জন্য নির্বাচিত হয়, তখন নোডের লোকাল ট্রানজেকশন পুল থেকে লেনদেনগুলো একটি লোকাল RPC কানেকশনের মাধ্যমে কনসেন্সাস ক্লায়েন্টগুলোতে পাঠানো হবে, যা বিকন ব্লকে প্যাকেজ করা হবে। এরপর কনসেন্সাস ক্লায়েন্টগুলো তাদের p2p নেটওয়ার্ক জুড়ে বিকন ব্লকগুলো গসিপ করবে। এর জন্য দুটি আলাদা p2p নেটওয়ার্ক প্রয়োজন: একটি লেনদেন গসিপের জন্য এক্সিকিউশন ক্লায়েন্টগুলোকে সংযুক্ত করে এবং অন্যটি ব্লক গসিপের জন্য কনসেন্সাস ক্লায়েন্টগুলোকে সংযুক্ত করে।
পূর্বশর্ত
এই পেজটি বোঝার জন্য ইথিরিয়াম নোড এবং ক্লায়েন্ট সম্পর্কে কিছু জ্ঞান থাকা সহায়ক হবে।
এক্সিকিউশন লেয়ার
এক্সিকিউশন লেয়ারের নেটওয়ার্কিং প্রটোকলগুলো দুটি স্ট্যাকে বিভক্ত:
-
ডিসকভারি স্ট্যাক: এটি UDP-এর উপর তৈরি এবং একটি নতুন নোডকে কানেক্ট করার জন্য পিয়ার খুঁজে পেতে সাহায্য করে
-
DevP2P স্ট্যাক: এটি TCP-এর উপর থাকে এবং নোডগুলোকে তথ্য আদান-প্রদান করতে সক্ষম করে
উভয় স্ট্যাক সমান্তরালভাবে কাজ করে। ডিসকভারি স্ট্যাক নতুন নেটওয়ার্ক অংশগ্রহণকারীদের নেটওয়ার্কে যুক্ত করে, এবং DevP2P স্ট্যাক তাদের মিথস্ক্রিয়া সক্ষম করে।
ডিসকভারি
ডিসকভারি হলো নেটওয়ার্কে অন্যান্য নোড খুঁজে পাওয়ার প্রক্রিয়া। এটি বুটনোডের একটি ছোট সেট ব্যবহার করে বুটস্ট্র্যাপ করা হয় (যে নোডগুলোর এডড্রেস ক্লায়েন্টে হার্ডকোড (opens in a new tab) করা থাকে যাতে সেগুলোকে তাৎক্ষণিকভাবে খুঁজে পাওয়া যায় এবং ক্লায়েন্টকে পিয়ারদের সাথে কানেক্ট করা যায়)। এই বুটনোডগুলোর অস্তিত্ব শুধুমাত্র একটি নতুন নোডকে একদল পিয়ারের সাথে পরিচয় করিয়ে দেওয়ার জন্য - এটাই তাদের একমাত্র উদ্দেশ্য, তারা চেইন সিঙ্ক করার মতো সাধারণ ক্লায়েন্ট কাজগুলোতে অংশগ্রহণ করে না, এবং এগুলো শুধুমাত্র প্রথমবার কোনো ক্লায়েন্ট চালু করার সময়ই ব্যবহার করা হয়।
নোড-বুটনোড মিথস্ক্রিয়ার জন্য ব্যবহৃত প্রটোকলটি হলো Kademlia (opens in a new tab)-এর একটি পরিবর্তিত রূপ যা নোডগুলোর তালিকা শেয়ার করার জন্য একটি ডিস্ট্রিবিউটেড হ্যাস টেবিল (opens in a new tab) ব্যবহার করে। প্রতিটি নোডের কাছে এই টেবিলের একটি সংস্করণ থাকে যাতে এর নিকটতম পিয়ারদের সাথে কানেক্ট করার জন্য প্রয়োজনীয় তথ্য থাকে। এই 'নৈকট্য' ভৌগোলিক নয় - দূরত্ব নোডের আইডির মিল দ্বারা সংজ্ঞায়িত করা হয়। নিরাপত্তা বৈশিষ্ট্য হিসেবে প্রতিটি নোডের টেবিল নিয়মিত রিফ্রেশ করা হয়। উদাহরণস্বরূপ, Discv5 (opens in a new tab)-এ, ডিসকভারি প্রটোকল নোডগুলো 'অ্যাড' পাঠাতেও সক্ষম যা ক্লায়েন্ট সমর্থন করে এমন সাবপ্রটোকলগুলো প্রদর্শন করে, যার ফলে পিয়াররা যোগাযোগের জন্য উভয়েই ব্যবহার করতে পারে এমন প্রটোকলগুলো নিয়ে আলোচনা করতে পারে।
ডিসকভারি শুরু হয় PING-PONG গেমের মাধ্যমে। একটি সফল PING-PONG নতুন নোডটিকে একটি বুটনোডের সাথে "বন্ড" করে। নেটওয়ার্কে প্রবেশ করা একটি নতুন নোডের অস্তিত্ব সম্পর্কে বুটনোডকে সতর্ক করার প্রাথমিক মেসেজটি হলো একটি PING। এই PING-এ নতুন নোড, বুটনোড এবং একটি এক্সপায়ারি টাইম-স্ট্যাম্প সম্পর্কে হ্যাস করা তথ্য অন্তর্ভুক্ত থাকে। বুটনোড PING গ্রহণ করে এবং PING হ্যাস ধারণকারী একটি PONG ফেরত দেয়। যদি PING এবং PONG হ্যাস মিলে যায় তবে নতুন নোড এবং বুটনোডের মধ্যে কানেকশন যাচাই করা হয় এবং বলা হয় যে তারা "বন্ডেড" হয়েছে।
একবার বন্ডেড হয়ে গেলে, নতুন নোডটি বুটনোডকে একটি FIND-NEIGHBOURS রিকোয়েস্ট পাঠাতে পারে। বুটনোড দ্বারা ফেরত দেওয়া ডেটাতে এমন পিয়ারদের একটি তালিকা অন্তর্ভুক্ত থাকে যাদের সাথে নতুন নোডটি কানেক্ট করতে পারে। যদি নোডগুলো বন্ডেড না হয়, তবে FIND-NEIGHBOURS রিকোয়েস্ট ব্যর্থ হবে, তাই নতুন নোডটি নেটওয়ার্কে প্রবেশ করতে পারবে না।
নতুন নোডটি বুটনোড থেকে প্রতিবেশীদের একটি তালিকা পাওয়ার পর, এটি তাদের প্রত্যেকের সাথে PING-PONG আদান-প্রদান শুরু করে। সফল PING-PONG নতুন নোডটিকে তার প্রতিবেশীদের সাথে বন্ড করে, যা মেসেজ আদান-প্রদান সক্ষম করে।
1start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighboursএক্সিকিউশন ক্লায়েন্টগুলো বর্তমানে Discv4 (opens in a new tab) ডিসকভারি প্রটোকল ব্যবহার করছে এবং Discv5 (opens in a new tab) প্রটোকলে মাইগ্রেট করার জন্য একটি সক্রিয় প্রচেষ্টা চলছে।
ENR: ইথিরিয়াম নোড রেকর্ডস
ইথিরিয়াম নোড রেকর্ড (ENR) হলো এমন একটি অবজেক্ট যাতে তিনটি মৌলিক উপাদান থাকে: একটি সিগনেচার (কোনো সম্মত আইডেন্টিটি স্কিম অনুযায়ী তৈরি করা রেকর্ড কন্টেন্টের হ্যাস), একটি সিকোয়েন্স নম্বর যা রেকর্ডের পরিবর্তনগুলো ট্র্যাক করে এবং key:value পেয়ারের একটি আরবিট্রারি তালিকা। এটি একটি ফিউচার-প্রুফ ফরম্যাট যা নতুন পিয়ারদের মধ্যে আইডেন্টিফাইং তথ্যের সহজ আদান-প্রদানের অনুমতি দেয় এবং এটি ইথিরিয়াম নোডগুলোর জন্য পছন্দের নেটওয়ার্ক এডড্রেস ফরম্যাট।
ডিসকভারি কেন UDP-এর উপর তৈরি?
UDP কোনো এরর চেকিং, ব্যর্থ প্যাকেট পুনরায় পাঠানো, বা ডায়নামিকভাবে কানেকশন খোলা এবং বন্ধ করা সমর্থন করে না - এর পরিবর্তে এটি সফলভাবে গৃহীত হয়েছে কিনা তা বিবেচনা না করেই একটি টার্গেটে তথ্যের একটি অবিচ্ছিন্ন স্ট্রিম ফায়ার করে। এই ন্যূনতম কার্যকারিতা ন্যূনতম ওভারহেডেও রূপান্তরিত হয়, যা এই ধরনের কানেকশনকে খুব দ্রুত করে তোলে। ডিসকভারির জন্য, যেখানে একটি নোড কেবল তার উপস্থিতি জানাতে চায় যাতে পরে একটি পিয়ারের সাথে একটি আনুষ্ঠানিক কানেকশন স্থাপন করা যায়, সেখানে UDP যথেষ্ট। তবে, নেটওয়ার্কিং স্ট্যাকের বাকি অংশের জন্য, UDP উপযুক্ত নয়। নোডগুলোর মধ্যে তথ্য আদান-প্রদান বেশ জটিল এবং তাই এমন একটি আরও সম্পূর্ণ বৈশিষ্ট্যযুক্ত প্রটোকল প্রয়োজন যা পুনরায় পাঠানো, এরর চেকিং ইত্যাদি সমর্থন করতে পারে। TCP-এর সাথে যুক্ত অতিরিক্ত ওভারহেড অতিরিক্ত কার্যকারিতার জন্য মূল্যবান। তাই, P2P স্ট্যাকের বেশিরভাগ অংশ TCP-এর উপর কাজ করে।
DevP2P
DevP2P নিজেই প্রটোকলের একটি সম্পূর্ণ স্ট্যাক যা ইথিরিয়াম পিয়ার-টু-পিয়ার নেটওয়ার্ক স্থাপন এবং বজায় রাখার জন্য প্রয়োগ করে। নতুন নোডগুলো নেটওয়ার্কে প্রবেশ করার পর, তাদের মিথস্ক্রিয়াগুলো DevP2P (opens in a new tab) স্ট্যাকের প্রটোকল দ্বারা পরিচালিত হয়। এগুলো সবই TCP-এর উপর থাকে এবং এর মধ্যে RLPx ট্রান্সপোর্ট প্রটোকল, ওয়্যার প্রটোকল এবং বেশ কয়েকটি সাব-প্রটোকল অন্তর্ভুক্ত রয়েছে। RLPx (opens in a new tab) হলো নোডগুলোর মধ্যে সেশন শুরু, প্রমাণীকরণ এবং বজায় রাখার প্রটোকল। RLPx RLP (Recursive Length Prefix) ব্যবহার করে মেসেজ এনকোড করে যা নোডগুলোর মধ্যে পাঠানোর জন্য ডেটাকে একটি ন্যূনতম স্ট্রাকচারে এনকোড করার একটি খুব স্পেস-এফিশিয়েন্ট পদ্ধতি।
দুটি নোডের মধ্যে একটি RLPx সেশন একটি প্রাথমিক ক্রিপ্টোগ্রাফিক হ্যান্ডশেকের মাধ্যমে শুরু হয়। এর মধ্যে নোডটি একটি অথ মেসেজ পাঠায় যা পরে পিয়ার দ্বারা যাচাই করা হয়। সফল যাচাইকরণের পর, পিয়ার ইনিশিয়েটর নোডে ফেরত পাঠানোর জন্য একটি অথ-অ্যাকনলেজমেন্ট মেসেজ তৈরি করে। এটি একটি কি-এক্সচেঞ্জ প্রক্রিয়া যা নোডগুলোকে ব্যক্তিগতভাবে এবং নিরাপদে যোগাযোগ করতে সক্ষম করে। একটি সফল ক্রিপ্টোগ্রাফিক হ্যান্ডশেক তারপর উভয় নোডকে "অন দ্য ওয়্যার" একে অপরকে একটি "হ্যালো" মেসেজ পাঠাতে ট্রিগার করে। ওয়্যার প্রটোকলটি হ্যালো মেসেজের সফল আদান-প্রদানের মাধ্যমে শুরু হয়।
হ্যালো মেসেজগুলোতে থাকে:
- প্রটোকল ভার্সন
- ক্লায়েন্ট আইডি
- পোর্ট
- নোড আইডি
- সমর্থিত সাব-প্রটোকলগুলোর তালিকা
এটি একটি সফল মিথস্ক্রিয়ার জন্য প্রয়োজনীয় তথ্য কারণ এটি সংজ্ঞায়িত করে যে উভয় নোডের মধ্যে কোন ক্ষমতাগুলো শেয়ার করা হয়েছে এবং যোগাযোগ কনফিগার করে। সাব-প্রটোকল নেগোসিয়েশনের একটি প্রক্রিয়া রয়েছে যেখানে প্রতিটি নোড দ্বারা সমর্থিত সাব-প্রটোকলগুলোর তালিকা তুলনা করা হয় এবং যেগুলো উভয় নোডের জন্য সাধারণ সেগুলো সেশনে ব্যবহার করা যেতে পারে।
হ্যালো মেসেজগুলোর পাশাপাশি, ওয়্যার প্রটোকল একটি "ডিসকানেক্ট" মেসেজও পাঠাতে পারে যা একটি পিয়ারকে সতর্ক করে যে কানেকশনটি বন্ধ হয়ে যাবে। ওয়্যার প্রটোকলে PING এবং PONG মেসেজও অন্তর্ভুক্ত থাকে যা একটি সেশন খোলা রাখার জন্য পর্যায়ক্রমে পাঠানো হয়। RLPx এবং ওয়্যার প্রটোকল এক্সচেঞ্জগুলো তাই নোডগুলোর মধ্যে যোগাযোগের ভিত্তি স্থাপন করে, একটি নির্দিষ্ট সাব-প্রটোকল অনুযায়ী দরকারী তথ্য আদান-প্রদানের জন্য স্ক্যাফোল্ডিং প্রদান করে।
সাব-প্রটোকল
ওয়্যার প্রটোকল
একবার পিয়াররা কানেক্ট হয়ে গেলে এবং একটি RLPx সেশন শুরু হলে, ওয়্যার প্রটোকল সংজ্ঞায়িত করে যে পিয়াররা কীভাবে যোগাযোগ করবে। প্রাথমিকভাবে, ওয়্যার প্রটোকল তিনটি প্রধান কাজ সংজ্ঞায়িত করেছিল: চেইন সিঙ্ক্রোনাইজেশন, ব্লক প্রোপাগেশন এবং লেনদেন এক্সচেঞ্জ। তবে, ইথিরিয়াম প্রুফ-অফ-স্টেক-এ স্যুইচ করার পর, ব্লক প্রোপাগেশন এবং চেইন সিঙ্ক্রোনাইজেশন কনসেন্সাস লেয়ারের অংশ হয়ে যায়। লেনদেন এক্সচেঞ্জ এখনও এক্সিকিউশন ক্লায়েন্টগুলোর এখতিয়ারে রয়েছে। লেনদেন এক্সচেঞ্জ বলতে নোডগুলোর মধ্যে পেন্ডিং লেনদেন আদান-প্রদান করা বোঝায় যাতে ব্লক বিল্ডাররা পরবর্তী ব্লকে অন্তর্ভুক্ত করার জন্য সেগুলোর মধ্যে কিছু নির্বাচন করতে পারে। এই কাজগুলো সম্পর্কে বিস্তারিত তথ্য এখানে (opens in a new tab) পাওয়া যাবে। যে ক্লায়েন্টগুলো এই সাব-প্রটোকলগুলোকে সমর্থন করে তারা সেগুলোকে JSON-RPC-এর মাধ্যমে এক্সপোজ করে।
les (লাইট ইথিরিয়াম সাবপ্রটোকল)
এটি লাইট ক্লায়েন্ট সিঙ্ক করার জন্য একটি ন্যূনতম প্রটোকল। ঐতিহ্যগতভাবে এই প্রটোকলটি খুব কমই ব্যবহৃত হয়েছে কারণ ফুল নোডগুলোকে কোনো ইনসেনটিভ ছাড়াই লাইট ক্লায়েন্টদের ডেটা পরিবেশন করতে হয়। এক্সিকিউশন ক্লায়েন্টগুলোর ডিফল্ট আচরণ হলো les-এর মাধ্যমে লাইট ক্লায়েন্ট ডেটা পরিবেশন না করা। les স্পেক (opens in a new tab)-এ আরও তথ্য পাওয়া যাবে।
স্ন্যাপ
স্ন্যাপ প্রটোকল (opens in a new tab) হলো একটি ঐচ্ছিক এক্সটেনশন যা পিয়ারদের সাম্প্রতিক স্টেটগুলোর স্ন্যাপশট আদান-প্রদান করতে দেয়, যার ফলে পিয়াররা ইন্টারমিডিয়েট মার্কেল ট্রাই নোডগুলো ডাউনলোড না করেই একাউন্ট এবং স্টোরেজ ডেটা যাচাই করতে পারে।
উইট (উইটনেস প্রটোকল)
উইটনেস প্রটোকল (opens in a new tab) হলো একটি ঐচ্ছিক এক্সটেনশন যা পিয়ারদের মধ্যে স্টেট উইটনেস আদান-প্রদান সক্ষম করে, যা ক্লায়েন্টদের চেইনের টিপে সিঙ্ক করতে সাহায্য করে।
হুইস্পার
হুইস্পার ছিল এমন একটি প্রটোকল যার লক্ষ্য ছিল ব্লকচেইনে কোনো তথ্য না লিখেই পিয়ারদের মধ্যে নিরাপদ মেসেজিং প্রদান করা। এটি DevP2P ওয়্যার প্রটোকলের অংশ ছিল কিন্তু এখন এটি বাতিল করা হয়েছে। একই ধরনের লক্ষ্য নিয়ে অন্যান্য সম্পর্কিত প্রজেক্ট (opens in a new tab) বিদ্যমান রয়েছে।
কনসেন্সাস লেয়ার
কনসেন্সাস ক্লায়েন্টগুলো একটি ভিন্ন স্পেসিফিকেশন সহ একটি আলাদা পিয়ার-টু-পিয়ার নেটওয়ার্কে অংশগ্রহণ করে। কনসেন্সাস ক্লায়েন্টগুলোকে ব্লক গসিপে অংশগ্রহণ করতে হয় যাতে তারা পিয়ারদের কাছ থেকে নতুন ব্লক গ্রহণ করতে পারে এবং যখন তাদের ব্লক প্রপোজার হওয়ার পালা আসে তখন সেগুলো ব্রডকাস্ট করতে পারে। এক্সিকিউশন লেয়ারের মতো, এর জন্য প্রথমে একটি ডিসকভারি প্রটোকল প্রয়োজন যাতে একটি নোড পিয়ার খুঁজে পেতে পারে এবং ব্লক, এটেস্টেশন ইত্যাদি আদান-প্রদানের জন্য নিরাপদ সেশন স্থাপন করতে পারে।
ডিসকভারি
এক্সিকিউশন ক্লায়েন্টগুলোর মতো, কনসেন্সাস ক্লায়েন্টগুলো পিয়ার খোঁজার জন্য UDP-এর উপর discv5 (opens in a new tab) ব্যবহার করে। discv5-এর কনসেন্সাস লেয়ার ইমপ্লিমেন্টেশন এক্সিকিউশন ক্লায়েন্টগুলোর থেকে শুধুমাত্র এই দিক থেকে আলাদা যে এটিতে discv5-কে একটি libP2P (opens in a new tab) স্ট্যাকের সাথে সংযুক্ত করার জন্য একটি অ্যাডাপ্টর অন্তর্ভুক্ত রয়েছে, যা DevP2P-কে বাতিল করে। এক্সিকিউশন লেয়ারের RLPx সেশনগুলো libP2P-এর নয়েজ সিকিউর চ্যানেল হ্যান্ডশেকের পক্ষে বাতিল করা হয়েছে।
ENRs
কনসেন্সাস নোডগুলোর জন্য ENR-এ নোডের পাবলিক কি, আইপি এডড্রেস, UDP এবং TCP পোর্ট এবং দুটি কনসেন্সাস-নির্দিষ্ট ফিল্ড অন্তর্ভুক্ত থাকে: এটেস্টেশন সাবনেট বিটফিল্ড এবং eth2 কি। প্রথমটি নোডগুলোর জন্য নির্দিষ্ট এটেস্টেশন গসিপ সাব-নেটওয়ার্কগুলোতে অংশগ্রহণকারী পিয়ারদের খুঁজে পাওয়া সহজ করে তোলে। eth2 কিতে নোডটি কোন ইথিরিয়াম ফর্ক ভার্সন ব্যবহার করছে সে সম্পর্কে তথ্য থাকে, যা নিশ্চিত করে যে পিয়াররা সঠিক ইথিরিয়ামের সাথে কানেক্ট হচ্ছে।
libP2P
libP2P স্ট্যাক ডিসকভারির পর সমস্ত যোগাযোগ সমর্থন করে। ক্লায়েন্টরা তাদের ENR-এ সংজ্ঞায়িত অনুযায়ী IPv4 এবং/অথবা IPv6-এ ডায়াল করতে এবং শুনতে পারে। libP2P লেয়ারের প্রটোকলগুলোকে গসিপ এবং req/resp ডোমেইনে উপবিভক্ত করা যেতে পারে।
গসিপ
গসিপ ডোমেইনে এমন সমস্ত তথ্য অন্তর্ভুক্ত থাকে যা নেটওয়ার্ক জুড়ে দ্রুত ছড়িয়ে পড়তে হয়। এর মধ্যে বিকন ব্লক, প্রুফ, এটেস্টেশন, এক্সিট এবং স্ল্যাশিং অন্তর্ভুক্ত রয়েছে। এটি libP2P gossipsub v1 ব্যবহার করে ট্রান্সমিট করা হয় এবং প্রতিটি নোডে স্থানীয়ভাবে সংরক্ষিত বিভিন্ন মেটাডেটার উপর নির্ভর করে, যার মধ্যে গ্রহণ এবং ট্রান্সমিট করার জন্য গসিপ পেলোডের সর্বোচ্চ আকার অন্তর্ভুক্ত। গসিপ ডোমেইন সম্পর্কে বিস্তারিত তথ্য এখানে (opens in a new tab) পাওয়া যাবে।
রিকোয়েস্ট-রেসপন্স
রিকোয়েস্ট-রেসপন্স ডোমেইনে ক্লায়েন্টদের তাদের পিয়ারদের কাছ থেকে নির্দিষ্ট তথ্যের রিকোয়েস্ট করার জন্য প্রটোকল থাকে। উদাহরণগুলোর মধ্যে নির্দিষ্ট রুট হ্যাসের সাথে মিলে যাওয়া বা স্লটের একটি রেঞ্জের মধ্যে নির্দিষ্ট বিকন ব্লকের রিকোয়েস্ট করা অন্তর্ভুক্ত। রেসপন্সগুলো সর্বদা স্ন্যাপি-কম্প্রেসড SSZ এনকোডেড বাইট হিসেবে ফেরত দেওয়া হয়।
কনসেন্সাস ক্লায়েন্ট কেন RLP-এর চেয়ে SSZ পছন্দ করে?
SSZ মানে হলো সিম্পল সিরিয়ালাইজেশন। এটি ফিক্সড অফসেট ব্যবহার করে যা সম্পূর্ণ স্ট্রাকচার ডিকোড না করেই একটি এনকোড করা মেসেজের পৃথক অংশগুলো ডিকোড করা সহজ করে তোলে, যা কনসেন্সাস ক্লায়েন্টের জন্য খুব দরকারী কারণ এটি এনকোড করা মেসেজগুলো থেকে নির্দিষ্ট তথ্যের টুকরোগুলো দক্ষতার সাথে গ্রহণ করতে পারে। এটি বিশেষভাবে মার্কেল প্রটোকলগুলোর সাথে একীভূত করার জন্যও ডিজাইন করা হয়েছে, যার সাথে মার্কেলিজেশনের জন্য সম্পর্কিত দক্ষতার লাভ রয়েছে। যেহেতু কনসেন্সাস লেয়ারের সমস্ত হ্যাস হলো মার্কেল রুট, তাই এটি একটি উল্লেখযোগ্য উন্নতি যোগ করে। SSZ ভ্যালুগুলোর অনন্য উপস্থাপনারও গ্যারান্টি দেয়।
এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্টগুলোকে সংযুক্ত করা
কনসেন্সাস এবং এক্সিকিউশন ক্লায়েন্ট উভয়ই সমান্তরালভাবে চলে। তাদের সংযুক্ত হওয়া প্রয়োজন যাতে কনসেন্সাস ক্লায়েন্ট এক্সিকিউশন ক্লায়েন্টকে নির্দেশাবলী প্রদান করতে পারে, এবং এক্সিকিউশন ক্লায়েন্ট বিকন ব্লকে অন্তর্ভুক্ত করার জন্য কনসেন্সাস ক্লায়েন্টকে লেনদেনের বান্ডিল পাঠাতে পারে। দুটি ক্লায়েন্টের মধ্যে যোগাযোগ একটি লোকাল RPC কানেকশন ব্যবহার করে অর্জন করা যেতে পারে। 'Engine-API' (opens in a new tab) নামে পরিচিত একটি API দুটি ক্লায়েন্টের মধ্যে পাঠানো নির্দেশাবলী সংজ্ঞায়িত করে। যেহেতু উভয় ক্লায়েন্ট একটি একক নেটওয়ার্ক আইডেন্টিটির পিছনে থাকে, তাই তারা একটি ENR (ইথিরিয়াম নোড রেকর্ড) শেয়ার করে যাতে প্রতিটি ক্লায়েন্টের জন্য একটি আলাদা কি (eth1 কি এবং eth2 কি) থাকে।
কন্ট্রোল ফ্লো-এর একটি সারসংক্ষেপ নিচে দেখানো হলো, ব্র্যাকেটে প্রাসঙ্গিক নেটওয়ার্কিং স্ট্যাক দেওয়া আছে।
যখন কনসেন্সাস ক্লায়েন্ট ব্লক প্রডিউসার নয়:
- কনসেন্সাস ক্লায়েন্ট ব্লক গসিপ প্রটোকলের (কনসেন্সাস p2p) মাধ্যমে একটি ব্লক গ্রহণ করে
- কনসেন্সাস ক্লায়েন্ট ব্লকটিকে প্রি-ভ্যালিডেট করে, অর্থাৎ, নিশ্চিত করে যে এটি সঠিক মেটাডেটা সহ একজন বৈধ প্রেরকের কাছ থেকে এসেছে
- ব্লকের লেনদেনগুলো একটি এক্সিকিউশন পেলোড (লোকাল RPC কানেকশন) হিসেবে এক্সিকিউশন লেয়ারে পাঠানো হয়
- এক্সিকিউশন লেয়ার লেনদেনগুলো এক্সিকিউট করে এবং ব্লক হেডারে স্টেট যাচাই করে (অর্থাৎ, হ্যাসগুলো মেলে কিনা তা চেক করে)
- এক্সিকিউশন লেয়ার ভ্যালিডেশন ডেটা কনসেন্সাস লেয়ারে ফেরত পাঠায়, ব্লকটি এখন ভ্যালিডেটেড বলে বিবেচিত হয় (লোকাল RPC কানেকশন)
- কনসেন্সাস লেয়ার তার নিজস্ব ব্লকচেইনের হেডে ব্লক যোগ করে এবং এটি এটেস্ট করে, নেটওয়ার্কের মাধ্যমে এটেস্টেশন ব্রডকাস্ট করে (কনসেন্সাস p2p)
যখন কনসেন্সাস ক্লায়েন্ট ব্লক প্রডিউসার হয়:
- কনসেন্সাস ক্লায়েন্ট নোটিশ পায় যে এটি পরবর্তী ব্লক প্রডিউসার (কনসেন্সাস p2p)
- কনসেন্সাস লেয়ার এক্সিকিউশন ক্লায়েন্টে
create blockমেথড কল করে (লোকাল RPC) - এক্সিকিউশন লেয়ার ট্রানজেকশন মেমপুলে অ্যাক্সেস করে যা ট্রানজেকশন গসিপ প্রটোকল (এক্সিকিউশন p2p) দ্বারা পপুলেট করা হয়েছে
- এক্সিকিউশন ক্লায়েন্ট লেনদেনগুলোকে একটি ব্লকে বান্ডিল করে, লেনদেনগুলো এক্সিকিউট করে এবং একটি ব্লক হ্যাস তৈরি করে
- কনসেন্সাস ক্লায়েন্ট এক্সিকিউশন ক্লায়েন্ট থেকে লেনদেন এবং ব্লক হ্যাস গ্রহণ করে এবং সেগুলোকে বিকন ব্লকে যোগ করে (লোকাল RPC)
- কনসেন্সাস ক্লায়েন্ট ব্লক গসিপ প্রটোকলের মাধ্যমে ব্লকটি ব্রডকাস্ট করে (কনসেন্সাস p2p)
- অন্যান্য ক্লায়েন্টরা ব্লক গসিপ প্রটোকলের মাধ্যমে প্রস্তাবিত ব্লকটি গ্রহণ করে এবং উপরে বর্ণিত অনুযায়ী যাচাই করে (কনসেন্সাস p2p)
একবার ব্লকটি পর্যাপ্ত ভ্যালিডেটরস দ্বারা এটেস্ট করা হলে এটি চেইনের হেডে যোগ করা হয়, জাস্টিফাই করা হয় এবং শেষ পর্যন্ত ফাইনাল করা হয়।
কনসেন্সাস এবং এক্সিকিউশন ক্লায়েন্টগুলোর জন্য নেটওয়ার্ক লেয়ার স্কিম্যাটিক, ethresear.ch (opens in a new tab) থেকে
আরও পড়ুন
DevP2P (opens in a new tab) LibP2p (opens in a new tab) কনসেন্সাস লেয়ার নেটওয়ার্ক স্পেকস (opens in a new tab) kademlia থেকে discv5 (opens in a new tab) kademlia পেপার (opens in a new tab) ইথিরিয়াম p2p পরিচিতি (opens in a new tab) eth1/eth2 সম্পর্ক (opens in a new tab) মার্জ এবং eth2 ক্লায়েন্ট ডিটেইলস ভিডিও (opens in a new tab)

