نیٹ ورک کے پتے
ایتھیریم نوڈز کو پیئرز سے جڑنے کے لیے کچھ بنیادی معلومات کے ساتھ اپنی شناخت کرانی ہوتی ہے۔ اس بات کو یقینی بنانے کے لیے کہ کوئی بھی ممکنہ پیئر اس معلومات کو سمجھ سکے، اسے تین معیاری فارمیٹس میں سے کسی ایک میں بھیجا جاتا ہے جسے کوئی بھی ایتھیریم نوڈ سمجھ سکتا ہے: multiaddr، enode، یا ایتھیریم نوڈ ریکارڈز (ENRs)۔ ENRs ایتھیریم نیٹ ورک کے پتوں کے لیے موجودہ معیار ہیں۔
پیشگی شرائط
اس صفحے کو سمجھنے کے لیے ایتھیریم کی نیٹ ورکنگ لیئر کی کچھ سمجھ ہونا ضروری ہے۔
Multiaddr
ایتھیریم نوڈ کے پتے کا اصل فارمیٹ 'multiaddr' تھا (جو 'multi-addresses' کا مخفف ہے)۔ Multiaddr ایک عالمگیر فارمیٹ ہے جسے پیئر ٹو پیئر نیٹ ورکس کے لیے ڈیزائن کیا گیا ہے۔ پتوں کو کلید-قدر (key-value) کے جوڑوں کے طور پر پیش کیا جاتا ہے جس میں کلیدوں اور قدروں کو فارورڈ سلیش کے ذریعے الگ کیا جاتا ہے۔ مثال کے طور پر، ایک نوڈ جس کا IPv4 پتہ 192.168.22.27 ہے اور وہ TCP پورٹ 33000 پر سن رہا ہے، اس کا multiaddr کچھ یوں دکھتا ہے:
/ip4/192.168.22.27/tcp/33000
ایک ایتھیریم نوڈ کے لیے، multiaddr میں node-ID (ان کی عوامی کلید کا ایک ہیش) شامل ہوتا ہے:
/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br
Enode
enode ایک URL پتے کے فارمیٹ کا استعمال کرتے ہوئے ایتھیریم نوڈ کی شناخت کرنے کا ایک طریقہ ہے۔ ہیکساڈیسیمل node-ID کو URL کے یوزر نیم حصے میں انکوڈ کیا جاتا ہے جسے میزبان (host) سے @ علامت کا استعمال کرتے ہوئے الگ کیا جاتا ہے۔ ہوسٹ نیم صرف ایک 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) ایتھیریم پر نیٹ ورک کے پتوں کے لیے ایک معیاری فارمیٹ ہیں۔ یہ multiaddrs اور enodes کی جگہ لیتے ہیں۔ یہ خاص طور پر مفید ہیں کیونکہ یہ نوڈز کے درمیان زیادہ معلومات کے تبادلے کی اجازت دیتے ہیں۔ ENR میں ایک دستخط، سیکوئنس نمبر اور ایسے فیلڈز شامل ہوتے ہیں جو دستخطوں کو بنانے اور ان کی توثیق کرنے کے لیے استعمال ہونے والی شناختی اسکیم کی تفصیل دیتے ہیں۔ ENR کو کلید-قدر (key-value) کے جوڑوں کے طور پر منظم کردہ صوابدیدی ڈیٹا سے بھی بھرا جا سکتا ہے۔ ان کلید-قدر کے جوڑوں میں نوڈ کا IP پتہ اور ان ذیلی پروٹوکولز کے بارے میں معلومات شامل ہوتی ہیں جنہیں نوڈ استعمال کرنے کے قابل ہوتا ہے۔ اتفاق رائے والے کلائنٹس بوٹ نوڈز کی شناخت کے لیے ایک مخصوص ENR ساخت (opens in a new tab) کا استعمال کرتے ہیں اور اس میں ایک eth2 فیلڈ بھی شامل ہوتا ہے جس میں موجودہ ایتھیریم فورک اور تصدیق کے گپ شپ سب نیٹ (attestation gossip subnet) کے بارے میں معلومات ہوتی ہیں (یہ نوڈ کو پیئرز کے ایک خاص سیٹ سے جوڑتا ہے جن کی تصدیقات کو ایک ساتھ جمع کیا جاتا ہے)۔