নেটওয়ার্ক ঠিকানা
ইথেরিয়াম নোডগুলোকে পিয়ারদের সাথে সংযুক্ত হওয়ার জন্য কিছু প্রাথমিক তথ্য দিয়ে নিজেদের পরিচয় দিতে হয়। যেকোনো সম্ভাব্য পিয়ার যাতে এই তথ্য বুঝতে পারে তা নিশ্চিত করতে, এটি তিনটি প্রমিত ফর্ম্যাটের যেকোনো একটিতে রিলে করা হয় যা যেকোনো ইথেরিয়াম নোড বুঝতে পারে: multiaddr, enode, বা ইথেরিয়াম নোড রেকর্ডস (ENRs)। ENR হলো ইথেরিয়াম নেটওয়ার্ক ঠিকানার বর্তমান স্ট্যান্ডার্ড।
পূর্বশর্ত
এই পৃষ্ঠাটি বোঝার জন্য ইথেরিয়ামের নেটওয়ার্কিং লেয়ার সম্পর্কে কিছু ধারণা থাকা প্রয়োজন।
Multiaddr
আসল ইথেরিয়াম নোড ঠিকানার ফর্ম্যাটটি ছিল 'multiaddr' ('multi-addresses'-এর সংক্ষিপ্ত রূপ)। Multiaddr হলো পিয়ার-টু-পিয়ার নেটওয়ার্কের জন্য ডিজাইন করা একটি সর্বজনীন ফর্ম্যাট। ঠিকানাগুলোকে কী-ভ্যালু জোড়া হিসেবে উপস্থাপন করা হয়, যেখানে কী এবং ভ্যালুগুলো একটি ফরোয়ার্ড স্ল্যাশ দিয়ে আলাদা করা থাকে। উদাহরণস্বরূপ, 192.168.22.27 IPv4 ঠিকানাসহ একটি নোড যা 33000 TCP পোর্টে শুনছে, তার multiaddr দেখতে এমন হয়:
/ip4/192.168.22.27/tcp/33000
একটি ইথেরিয়াম নোডের ক্ষেত্রে, multiaddr-এ নোড-আইডি (তাদের পাবলিক কী-এর একটি হ্যাশ) থাকে:
/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br
Enode
enode হলো URL ঠিকানার ফর্ম্যাট ব্যবহার করে একটি ইথেরিয়াম নোড শনাক্ত করার একটি উপায়। হেক্সাডেসিমাল নোড-আইডিটি URL-এর ইউজারনেম অংশে এনকোড করা থাকে, যা একটি @ চিহ্ন ব্যবহার করে হোস্ট থেকে আলাদা করা হয়। হোস্টনেম শুধুমাত্র একটি IP ঠিকানা হিসেবে দেওয়া যেতে পারে; DNS নাম অনুমোদিত নয়। হোস্টনেম বিভাগের পোর্টটি হলো TCP লিসেনিং পোর্ট। যদি TCP এবং UDP (ডিসকভারি) পোর্ট আলাদা হয়, তবে UDP পোর্টটিকে "discport" কোয়েরি প্যারামিটার হিসেবে নির্দিষ্ট করা হয়।
নিচের উদাহরণে, নোড URL-টি এমন একটি নোডকে বর্ণনা করে যার IP ঠিকানা 10.3.58.6, TCP পোর্ট 30303 এবং UDP ডিসকভারি পোর্ট 30301।
enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301
ইথেরিয়াম নোড রেকর্ডস (ENRs)
ইথেরিয়াম নোড রেকর্ডস (ENRs) হলো ইথেরিয়ামে নেটওয়ার্ক ঠিকানার জন্য একটি প্রমিত ফর্ম্যাট। এগুলো multiaddr এবং enode-কে প্রতিস্থাপন করে। এগুলো বিশেষভাবে কার্যকর কারণ এগুলো নোডগুলোর মধ্যে আরও বেশি তথ্য আদান-প্রদানের সুযোগ দেয়। ENR-এ একটি স্বাক্ষর, সিকোয়েন্স নম্বর এবং স্বাক্ষর তৈরি ও যাচাই করতে ব্যবহৃত আইডেন্টিটি স্কিমের বিস্তারিত ফিল্ড থাকে। ENR-এ কী-ভ্যালু জোড়া হিসেবে সাজানো যেকোনো ডেটাও যুক্ত করা যেতে পারে। এই কী-ভ্যালু জোড়াগুলোতে নোডের IP ঠিকানা এবং নোডটি যেসব সাব-প্রোটোকল ব্যবহার করতে সক্ষম সেগুলোর তথ্য থাকে। ঐক্যমত ক্লায়েন্টগুলো বুট নোড শনাক্ত করতে একটি নির্দিষ্ট ENR কাঠামো (opens in a new tab) ব্যবহার করে এবং এতে একটি eth2 ফিল্ডও অন্তর্ভুক্ত থাকে, যেখানে বর্তমান ইথেরিয়াম ফর্ক এবং সত্যায়ন গসিপ সাবনেট (এটি নোডটিকে এমন একটি নির্দিষ্ট পিয়ার সেটের সাথে সংযুক্ত করে যাদের সত্যায়নগুলো একসাথে একত্রিত করা হয়) সম্পর্কে তথ্য থাকে।