آدرسهای شبکه
آخرین ویرایش: @sipbikardi(opens in a new tab), ۲۴ مرداد ۱۴۰۲
گره های اتریوم برای اتصال به همتایان باید خود را با برخی از اطلاعات اولیه شناسایی کنند. برای اطمینان از اینکه هر همتای بالقوه می تواند این اطلاعات را تفسیر کند، در یکی از سه فرمت استاندارد شده ای که هر گره اتریوم می تواند درک کند، ارسال می شود: multiaddr، enode، یا Ethereum Node Records (ENR). ENR ها استاندارد فعلی آدرس های شبکه اتریوم هستند.
موارد مورد نیاز
برای درک این صفحه، مقداری آشنایی با لایه شبکه اتریوم لازم است.
Multiaddr
قالب اصلی آدرس گره اتریوم 'multiaddr' (مخفف 'multi-addresses') بود. Multiaddr یک قالب جهانی است که برای شبکه های همتا به همتا طراحی شده است. آدرس ها به صورت جفت های کلید-مقدار با کلیدها و مقادیری که با یک اسلش رو به جلو از هم جدا شده اند نشان داده می شوند. به عنوان مثال، multiaddr برای یک گره با آدرس IPv4 192.168.22.27
در حال گوش دادن به پورت TCP 33000
به نظر می رسد:
/ip4/192.168.22.27/tcp/33000
برای یک گره اتریوم، multiaddr شامل شناسه گره (هش کلید عمومی آنها) است:
/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br
Enode
یک Enode راهی برای شناسایی گره اتریوم با استفاده از فرمت آدرس URL است. شناسه گره هگزادسیمال در قسمت نام کاربری URL که از میزبان جدا شده است با استفاده از علامت @ کدگذاری می شود. نام میزبان فقط می تواند به عنوان یک آدرس IP داده شود. نام های DNS مجاز نیستند. پورت موجود در قسمت hostname پورت گوش دادن TCP است. اگر پورت های TCP و UDP (کشف) متفاوت باشند، پورت UDP به عنوان پارامتر پرس و جو "discport" مشخص می شود
در مثال زیر، گره URL گرهای را با آدرس IP 10.3.58.6
، پورت TCP 30303
و پورت کشف UDP 30301
توصیف میکند.
enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301
سوابق گره اتریوم (ENR)
Ethereum Node Records (ENRs) یک فرمت استاندارد شده برای آدرس های شبکه در اتریوم است. آنها جایگزین multiaddr و enodes می شوند. اینها به ویژه مفید هستند زیرا اجازه تبادل اطلاعات بیشتر بین گره ها را می دهند. ENR شامل یک امضا، شماره دنباله و فیلدهایی است که طرح هویت مورد استفاده برای تولید و اعتبارسنجی امضاها را شرح می دهد. ENR همچنین می تواند با داده های دلخواه سازماندهی شده به عنوان جفتهای مقدار کلید پر شود. این جفتهای مقدار کلید حاوی آدرس IP گره و اطلاعات مربوط به پروتکلهای فرعی هستند که گره قادر به استفاده از آن است. کلاینتهای اجماع از یک ساختار خاص ENR(opens in a new tab) برای شناسایی نودهای راهاندازی استفاده میکنند و همچنین یک فیلد eth2
حاوی اطلاعات مربوط به فورک فعلی اتریوم و زیرشبکه شایعه تصدیق را در بر میگیرد (این، گره را به یک مجموعه خاصی از همتایان که گواهینامه های آنها با هم جمع شده است، وصل میکند).
اطلاعات بیشتر
EIP-778: سوابق گره اتریوم (ENR)(opens in a new tab) آدرسهای شبکه در اتریوم(opens in a new tab) LibP2P: Multiaddr-Enode-ENR?!(opens in a new tab)