నెట్వర్కింగ్ పొర
ఎథీరియం అనేది ప్రామాణిక ప్రోటోకాల్లను ఉపయోగించి ఒకదానితో ఒకటి కమ్యూనికేట్ చేయగల వేలాది నోడ్లతో కూడిన పీర్-టు-పీర్ నెట్వర్క్. "నెట్వర్కింగ్ పొర" అనేది ఆ నోడ్లు ఒకదానినొకటి కనుగొనడానికి మరియు సమాచారాన్ని మార్పిడి చేసుకోవడానికి అనుమతించే ప్రోటోకాల్ల స్టాక్. ఇందులో నెట్వర్క్ అంతటా సమాచారాన్ని "గాసిపింగ్" (ఒకరి నుండి చాలా మందికి కమ్యూనికేషన్) చేయడంతో పాటు నిర్దిష్ట నోడ్ల మధ్య అభ్యర్థనలు మరియు ప్రతిస్పందనలను మార్పిడి చేయడం (ఒకరి నుండి ఒకరికి కమ్యూనికేషన్) కూడా ఉంటుంది. సరైన సమాచారాన్ని పంపుతున్నాయని మరియు స్వీకరిస్తున్నాయని నిర్ధారించుకోవడానికి ప్రతి నోడ్ నిర్దిష్ట నెట్వర్కింగ్ నియమాలకు కట్టుబడి ఉండాలి.
క్లయింట్ సాఫ్ట్వేర్లో రెండు భాగాలు ఉన్నాయి (అమలు క్లయింట్లు మరియు ఏకాభిప్రాయ క్లయింట్లు), ప్రతి దానికి దాని స్వంత ప్రత్యేక నెట్వర్కింగ్ స్టాక్ ఉంటుంది. ఇతర ఎథీరియం నోడ్లతో కమ్యూనికేట్ చేయడంతో పాటు, అమలు మరియు ఏకాభిప్రాయ క్లయింట్లు ఒకదానితో ఒకటి కమ్యూనికేట్ చేసుకోవాలి. ఈ పేజీ ఈ కమ్యూనికేషన్ను ప్రారంభించే ప్రోటోకాల్ల పరిచయ వివరణను ఇస్తుంది.
అమలు క్లయింట్లు అమలు పొర పీర్-టు-పీర్ నెట్వర్క్ ద్వారా లావాదేవీలను గాసిప్ చేస్తాయి. దీనికి ప్రామాణీకరించబడిన పీర్ల మధ్య గుప్తీకరించిన కమ్యూనికేషన్ అవసరం. ఒక బ్లాక్ను ప్రతిపాదించడానికి ధృవీకర్త ఎంపిక చేయబడినప్పుడు, నోడ్ యొక్క స్థానిక లావాదేవీల పూల్ నుండి లావాదేవీలు స్థానిక RPC కనెక్షన్ ద్వారా ఏకాభిప్రాయ క్లయింట్లకు పంపబడతాయి, ఇవి బీకాన్ బ్లాక్లుగా ప్యాక్ చేయబడతాయి. ఏకాభిప్రాయ క్లయింట్లు ఆ తర్వాత తమ p2p నెట్వర్క్ అంతటా బీకాన్ బ్లాక్లను గాసిప్ చేస్తాయి. దీనికి రెండు వేర్వేరు p2p నెట్వర్క్లు అవసరం: లావాదేవీల గాసిప్ కోసం అమలు క్లయింట్లను కనెక్ట్ చేసేది ఒకటి మరియు బ్లాక్ గాసిప్ కోసం ఏకాభిప్రాయ క్లయింట్లను కనెక్ట్ చేసేది మరొకటి.
ముందస్తు అవసరాలు
ఈ పేజీని అర్థం చేసుకోవడానికి ఎథీరియం నోడ్లు మరియు క్లయింట్ల గురించి కొంత అవగాహన ఉండటం సహాయకరంగా ఉంటుంది.
అమలు పొర
అమలు పొర యొక్క నెట్వర్కింగ్ ప్రోటోకాల్లు రెండు స్టాక్లుగా విభజించబడ్డాయి:
-
అన్వేషణ స్టాక్: UDP పైన నిర్మించబడింది మరియు కనెక్ట్ కావడానికి పీర్లను కనుగొనడానికి కొత్త నోడ్ను అనుమతిస్తుంది
-
DevP2P స్టాక్: TCP పైన ఉంటుంది మరియు సమాచారాన్ని మార్పిడి చేసుకోవడానికి నోడ్లను అనుమతిస్తుంది
రెండు స్టాక్లు సమాంతరంగా పనిచేస్తాయి. అన్వేషణ స్టాక్ కొత్త నెట్వర్క్ భాగస్వాములను నెట్వర్క్లోకి తీసుకువస్తుంది మరియు DevP2P స్టాక్ వారి పరస్పర చర్యలను సాధ్యం చేస్తుంది.
అన్వేషణ
అన్వేషణ అనేది నెట్వర్క్లోని ఇతర నోడ్లను కనుగొనే ప్రక్రియ. ఇది చిన్న బూట్నోడ్ల సమితిని ఉపయోగించి బూట్స్ట్రాప్ చేయబడుతుంది (క్లయింట్లో హార్డ్కోడ్ (opens in a new tab) చేయబడిన చిరునామాలు ఉన్న నోడ్లు, తద్వారా వాటిని వెంటనే కనుగొనవచ్చు మరియు క్లయింట్ను పీర్లకు కనెక్ట్ చేయవచ్చు). ఈ బూట్నోడ్లు కేవలం కొత్త నోడ్ను పీర్ల సమితికి పరిచయం చేయడానికి మాత్రమే ఉనికిలో ఉంటాయి - ఇదే వాటి ఏకైక ఉద్దేశ్యం, అవి చైన్ను సమకాలీకరించడం వంటి సాధారణ క్లయింట్ పనులలో పాల్గొనవు మరియు క్లయింట్ మొదటిసారి ప్రారంభించబడినప్పుడు మాత్రమే అవి ఉపయోగించబడతాయి.
నోడ్-బూట్నోడ్ పరస్పర చర్యల కోసం ఉపయోగించే ప్రోటోకాల్ Kademlia (opens in a new tab) యొక్క సవరించిన రూపం, ఇది నోడ్ల జాబితాలను పంచుకోవడానికి పంపిణీ చేయబడిన హాష్ పట్టికను (opens in a new tab) ఉపయోగిస్తుంది. ప్రతి నోడ్ దాని సమీప పీర్లకు కనెక్ట్ కావడానికి అవసరమైన సమాచారాన్ని కలిగి ఉన్న ఈ పట్టిక యొక్క సంస్కరణను కలిగి ఉంటుంది. ఈ 'సామీప్యత' భౌగోళికమైనది కాదు - దూరం అనేది నోడ్ ID యొక్క సారూప్యత ద్వారా నిర్వచించబడుతుంది. భద్రతా లక్షణంగా ప్రతి నోడ్ యొక్క పట్టిక క్రమం తప్పకుండా రిఫ్రెష్ చేయబడుతుంది. ఉదాహరణకు, 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లు కొత్త నోడ్ను దాని పొరుగువారితో బంధిస్తాయి, సందేశ మార్పిడిని సాధ్యం చేస్తాయి.
క్లయింట్ను ప్రారంభించండి --> బూట్నోడ్కు కనెక్ట్ చేయండి --> బూట్నోడ్తో బంధించండి --> పొరుగువారిని కనుగొనండి --> పొరుగువారితో బంధించండి
అమలు క్లయింట్లు ప్రస్తుతం Discv4 (opens in a new tab) అన్వేషణ ప్రోటోకాల్ను ఉపయోగిస్తున్నాయి మరియు Discv5 (opens in a new tab) ప్రోటోకాల్కు మారడానికి చురుకైన ప్రయత్నం జరుగుతోంది.
ENR: ఎథీరియం నోడ్ రికార్డ్స్
ఎథీరియం నోడ్ రికార్డ్ (ENR) అనేది మూడు ప్రాథమిక అంశాలను కలిగి ఉన్న ఒక ఆబ్జెక్ట్: ఒక సంతకం (కొన్ని అంగీకరించిన గుర్తింపు పథకం ప్రకారం తయారు చేయబడిన రికార్డ్ కంటెంట్ల హాష్), రికార్డ్లో మార్పులను ట్రాక్ చేసే క్రమ సంఖ్య మరియు కీ:విలువ జతల ఏకపక్ష జాబితా. ఇది కొత్త పీర్ల మధ్య గుర్తింపు సమాచారాన్ని సులభంగా మార్పిడి చేసుకోవడానికి అనుమతించే భవిష్యత్తు-రుజువు ఆకృతి మరియు ఎథీరియం నోడ్ల కోసం ప్రాధాన్యత కలిగిన నెట్వర్క్ చిరునామా ఆకృతి.
అన్వేషణ 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 (రికార్సివ్ లెంగ్త్ ప్రిఫిక్స్) ఉపయోగించి ఎన్కోడ్ చేస్తుంది, ఇది నోడ్ల మధ్య పంపడానికి డేటాను కనీస నిర్మాణంలోకి ఎన్కోడ్ చేయడానికి చాలా స్థల-సమర్థవంతమైన పద్ధతి.
రెండు నోడ్ల మధ్య RLPx సెషన్ ప్రారంభ క్రిప్టోగ్రాఫిక్ హ్యాండ్షేక్తో ప్రారంభమవుతుంది. ఇందులో నోడ్ ప్రామాణీకరణ సందేశాన్ని పంపడం ఉంటుంది, అది పీర్ ద్వారా ధృవీకరించబడుతుంది. విజయవంతమైన ధృవీకరణ తర్వాత, పీర్ ప్రారంభ నోడ్కు తిరిగి ఇవ్వడానికి ప్రామాణీకరణ-రసీదు సందేశాన్ని ఉత్పత్తి చేస్తుంది. ఇది నోడ్లు ప్రైవేట్గా మరియు సురక్షితంగా కమ్యూనికేట్ చేయడానికి వీలు కల్పించే కీ-మార్పిడి ప్రక్రియ. విజయవంతమైన క్రిప్టోగ్రాఫిక్ హ్యాండ్షేక్ ఆ తర్వాత రెండు నోడ్లను ఒకదానికొకటి "ఆన్ ది వైర్" "హలో" సందేశాన్ని పంపడానికి ప్రేరేపిస్తుంది. హలో సందేశాల విజయవంతమైన మార్పిడి ద్వారా వైర్ ప్రోటోకాల్ ప్రారంభించబడుతుంది.
హలో సందేశాలు వీటిని కలిగి ఉంటాయి:
- ప్రోటోకాల్ వెర్షన్
- క్లయింట్ ID
- పోర్ట్
- నోడ్ ID
- మద్దతు ఉన్న సబ్ప్రోటోకాల్ల జాబితా
విజయవంతమైన పరస్పర చర్యకు అవసరమైన సమాచారం ఇది, ఎందుకంటే ఇది రెండు నోడ్ల మధ్య ఏ సామర్థ్యాలు భాగస్వామ్యం చేయబడతాయో నిర్వచిస్తుంది మరియు కమ్యూనికేషన్ను కాన్ఫిగర్ చేస్తుంది. సబ్ప్రోటోకాల్ చర్చల ప్రక్రియ ఉంది, ఇక్కడ ప్రతి నోడ్ మద్దతు ఇచ్చే సబ్ప్రోటోకాల్ల జాబితాలు పోల్చబడతాయి మరియు రెండు నోడ్లకు ఉమ్మడిగా ఉన్నవాటిని సెషన్లో ఉపయోగించవచ్చు.
హలో సందేశాలతో పాటు, వైర్ ప్రోటోకాల్ కనెక్షన్ మూసివేయబడుతుందని పీర్కు హెచ్చరిక ఇచ్చే "డిస్కనెక్ట్" సందేశాన్ని కూడా పంపగలదు. వైర్ ప్రోటోకాల్లో సెషన్ను తెరిచి ఉంచడానికి క్రమానుగతంగా పంపబడే PING మరియు PONG సందేశాలు కూడా ఉంటాయి. అందువల్ల RLPx మరియు వైర్ ప్రోటోకాల్ మార్పిడి నోడ్ల మధ్య కమ్యూనికేషన్ యొక్క పునాదులను ఏర్పాటు చేస్తాయి, నిర్దిష్ట సబ్ప్రోటోకాల్ ప్రకారం ఉపయోగకరమైన సమాచారాన్ని మార్పిడి చేసుకోవడానికి పరంజాను అందిస్తాయి.
సబ్ప్రోటోకాల్లు
వైర్ ప్రోటోకాల్
పీర్లు కనెక్ట్ చేయబడి, RLPx సెషన్ ప్రారంభించబడిన తర్వాత, పీర్లు ఎలా కమ్యూనికేట్ చేయాలో వైర్ ప్రోటోకాల్ నిర్వచిస్తుంది. ప్రారంభంలో, వైర్ ప్రోటోకాల్ మూడు ప్రధాన పనులను నిర్వచించింది: చైన్ సమకాలీకరణ, బ్లాక్ వ్యాప్తి మరియు లావాదేవీల మార్పిడి. అయితే, ఎథీరియం ప్రూఫ్-ఆఫ్-స్టేక్కు మారిన తర్వాత, బ్లాక్ వ్యాప్తి మరియు చైన్ సమకాలీకరణ ఏకాభిప్రాయ పొరలో భాగమయ్యాయి. లావాదేవీల మార్పిడి ఇప్పటికీ అమలు క్లయింట్ల పరిధిలోనే ఉంది. లావాదేవీల మార్పిడి అనేది నోడ్ల మధ్య పెండింగ్లో ఉన్న లావాదేవీలను మార్పిడి చేయడాన్ని సూచిస్తుంది, తద్వారా బ్లాక్ బిల్డర్లు తదుపరి బ్లాక్లో చేర్చడానికి వాటిలో కొన్నింటిని ఎంచుకోవచ్చు. ఈ పనుల గురించి వివరణాత్మక సమాచారం ఇక్కడ (opens in a new tab) అందుబాటులో ఉంది. ఈ సబ్ప్రోటోకాల్లకు మద్దతు ఇచ్చే క్లయింట్లు వాటిని జేసన్-ఆర్పీసీ ద్వారా బహిర్గతం చేస్తాయి.
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 యొక్క ఏకాభిప్రాయ పొర అమలు అమలు క్లయింట్ల నుండి భిన్నంగా ఉంటుంది, ఇది DevP2P ని నిలిపివేసి, discv5 ని libP2P (opens in a new tab) స్టాక్లోకి కనెక్ట్ చేసే అడాప్టర్ను కలిగి ఉంటుంది. libP2P యొక్క నాయిస్ సెక్యూర్ ఛానెల్ హ్యాండ్షేక్కు అనుకూలంగా అమలు పొర యొక్క RLPx సెషన్లు నిలిపివేయబడ్డాయి.
ENRలు
ఏకాభిప్రాయ నోడ్ల కోసం ENR లో నోడ్ యొక్క పబ్లిక్ కీ, IP చిరునామా, 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 కనెక్షన్ని ఉపయోగించి సాధించవచ్చు. 'ఇంజిన్-API' (opens in a new tab) అని పిలువబడే API రెండు క్లయింట్ల మధ్య పంపబడే సూచనలను నిర్వచిస్తుంది. రెండు క్లయింట్లు ఒకే నెట్వర్క్ గుర్తింపు వెనుక ఉన్నందున, అవి ప్రతి క్లయింట్కు (ఇత్1 కీ మరియు ఇత్2 కీ) ప్రత్యేక కీని కలిగి ఉన్న ENR (ఎథీరియం నోడ్ రికార్డ్) ని పంచుకుంటాయి.
నియంత్రణ ప్రవాహం యొక్క సారాంశం క్రింద చూపబడింది, సంబంధిత నెట్వర్కింగ్ స్టాక్ బ్రాకెట్లలో ఉంది.
ఏకాభిప్రాయ క్లయింట్ బ్లాక్ నిర్మాత కానప్పుడు:
- ఏకాభిప్రాయ క్లయింట్ బ్లాక్ గాసిప్ ప్రోటోకాల్ (ఏకాభిప్రాయ 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) ఇత్1/ఇత్2 సంబంధం (opens in a new tab) మెర్జ్ మరియు ఇత్2 క్లయింట్ వివరాల వీడియో (opens in a new tab)

