ప్రధాన కంటెంట్‌కి స్కిప్ చేయండి

స్థానిక, బహుళ-క్లయింట్ టెస్టునెట్‌లో డాప్‌ను అభివృద్ధి చేసి పరీక్షించడం ఎలా

క్లయింట్లు
నోడ్‌లు
స్మార్ట్ కాంట్రాక్టులు
కంపోజిబిలిటీ
ఏకాభిప్రాయ లేయర్
ఎగ్జిక్యూషన్ లేయర్
పరీక్షించడం
మధ్యస్థ
Tedi Mitiku
11 ఏప్రిల్, 2023
10 నిమిషం పఠనం

పరిచయం

ఈ గైడ్ మీకు కాన్ఫిగర్ చేయగల స్థానిక ఇథిరియం టెస్టునెట్‌ను ప్రారంభించడం, దానికి ఒక స్మార్ట్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడం, మరియు మీ డాప్‌పై పరీక్షలు అమలు చేయడానికి టెస్టునెట్‌ను ఉపయోగించే ప్రక్రియ ద్వారా మార్గనిర్దేశం చేస్తుంది. లైవ్ టెస్టునెట్ లేదా మెయిన్‌నెట్‌కు డిప్లాయ్ చేయడానికి ముందు వివిధ నెట్‌వర్క్ కాన్ఫిగరేషన్‌లకు వ్యతిరేకంగా వారి డాప్‌లను స్థానికంగా అభివృద్ధి చేసి, పరీక్షించాలనుకునే డాప్ డెవలపర్‌ల కోసం ఈ గైడ్ రూపొందించబడింది.

ఈ గైడ్‌లో, మీరు:

  • Kurtosis (opens in a new tab) ఉపయోగించి eth-network-package (opens in a new tab)తో స్థానిక ఇథిరియం టెస్టునెట్‌ను ప్రారంభించండి,
  • ఒక డాప్‌ను కంపైల్ చేయడానికి, డిప్లాయ్ చేయడానికి, మరియు పరీక్షించడానికి మీ హార్డ్‌హ్యాట్ డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని స్థానిక టెస్టునెట్‌కు కనెక్ట్ చేయండి, మరియు
  • వివిధ నెట్‌వర్క్ కాన్ఫిగరేషన్‌లకు వ్యతిరేకంగా డెవలప్‌మెంట్ మరియు టెస్టింగ్ వర్క్‌ఫ్లోలను ప్రారంభించడానికి నోడ్ల సంఖ్య మరియు నిర్దిష్ట EL/CL క్లయింట్ జతలు వంటి పారామీటర్లతో సహా స్థానిక టెస్టునెట్‌ను కాన్ఫిగర్ చేయండి.

కుర్టోసిస్ అంటే ఏమిటి?

కుర్టోసిస్ (opens in a new tab) అనేది బహుళ-కంటైనర్ టెస్ట్ వాతావరణాలను కాన్ఫిగర్ చేయడానికి రూపొందించబడిన ఒక కంపోజబుల్ బిల్డ్ సిస్టమ్. బ్లాక్‌చైన్ టెస్టునెట్‌లు వంటి డైనమిక్ సెటప్ లాజిక్ అవసరమయ్యే పునరుత్పాదక వాతావరణాలను సృష్టించడానికి ఇది ప్రత్యేకంగా డెవలపర్‌లను అనుమతిస్తుంది.

ఈ గైడ్‌లో, కుర్టోసిస్ eth-network-package, geth (opens in a new tab) ఎగ్జిక్యూషన్ లేయర్ (EL) క్లయింట్‌తో పాటు teku (opens in a new tab), lighthouse (opens in a new tab), మరియు lodestar (opens in a new tab) ఏకాభిప్రాయ లేయర్ (CL) క్లయింట్‌లకు మద్దతుతో ఒక స్థానిక ఇథిరియం టెస్టునెట్‌ను స్పిన్ అప్ చేస్తుంది. ఈ ప్యాకేజీ హార్డ్‌హ్యాట్ నెట్‌వర్క్, గనాచే, మరియు అన్విల్ వంటి ఫ్రేమ్‌వర్క్‌లలోని నెట్‌వర్క్‌లకు కాన్ఫిగర్ చేయగల మరియు కంపోజబుల్ ప్రత్యామ్నాయంగా పనిచేస్తుంది. కుర్టోసిస్ డెవలపర్‌లకు వారు ఉపయోగించే టెస్టునెట్‌లపై అధిక నియంత్రణ మరియు సౌలభ్యాన్ని అందిస్తుంది, ఇది ఇథిరియం ఫౌండేషన్ ది మెర్జ్‌ను పరీక్షించడానికి కుర్టోసిస్‌ను ఉపయోగించడానికి (opens in a new tab) మరియు నెట్‌వర్క్ అప్‌గ్రేడ్‌లను పరీక్షించడానికి దానిని ఉపయోగించడం కొనసాగించడానికి ఒక ప్రధాన కారణం.

కుర్టోసిస్‌ను సెటప్ చేయడం

మీరు కొనసాగే ముందు, మీకు ఇవి ఉన్నాయని నిర్ధారించుకోండి:

స్థానిక ఇథిరియం టెస్టునెట్‌ను ప్రారంభించడం

స్థానిక ఇథిరియం టెస్టునెట్‌ను స్పిన్ అప్ చేయడానికి, రన్ చేయండి:

1kurtosis --enclave local-eth-testnet run github.com/kurtosis-tech/eth-network-package

గమనిక: ఈ కమాండ్ --enclave ఫ్లాగ్‌ను ఉపయోగించి మీ నెట్‌వర్క్‌కు పేరు పెడుతుంది: "local-eth-testnet".

కుర్టోసిస్ సూచనలను అర్థం చేసుకోవడానికి, ధృవీకరించడానికి, ఆపై అమలు చేయడానికి పనిచేస్తున్నప్పుడు నేపథ్యంలో తీసుకుంటున్న దశలను ప్రింట్ చేస్తుంది. చివరగా, మీరు ఈ క్రింది విధంగా ఉండే అవుట్‌పుట్‌ను చూడాలి:

1INFO[2023-04-04T18:09:44-04:00] ======================================================
2INFO[2023-04-04T18:09:44-04:00] || Created enclave: local-eth-testnet ||
3INFO[2023-04-04T18:09:44-04:00] ======================================================
4Name: local-eth-testnet
5UUID: 39372d756ae8
6Status: RUNNING
7Creation Time: Tue, 04 Apr 2023 18:09:03 EDT
8
9========================================= Files Artifacts =========================================
10UUID Name
11d4085a064230 cl-genesis-data
121c62cb792e4c el-genesis-data
13bd60489b73a7 genesis-generation-config-cl
14b2e593fe5228 genesis-generation-config-el
15d552a54acf78 geth-prefunded-keys
165f7e661eb838 prysm-password
17054e7338bb59 validator-keystore-0
18
19========================================== User Services ==========================================
20UUID Name Ports Status
21e20f129ee0c5 cl-client-0-beacon http: 4000/tcp -> <http://127.0.0.1:54261> RUNNING
22 metrics: 5054/tcp -> <http://127.0.0.1:54262>
23 tcp-discovery: 9000/tcp -> 127.0.0.1:54263
24 udp-discovery: 9000/udp -> 127.0.0.1:60470
25a8b6c926cdb4 cl-client-0-validator http: 5042/tcp -> 127.0.0.1:54267 RUNNING
26 metrics: 5064/tcp -> <http://127.0.0.1:54268>
27d7b802f623e8 el-client-0 engine-rpc: 8551/tcp -> 127.0.0.1:54253 RUNNING
28 rpc: 8545/tcp -> 127.0.0.1:54251
29 tcp-discovery: 30303/tcp -> 127.0.0.1:54254
30 udp-discovery: 30303/udp -> 127.0.0.1:53834
31 ws: 8546/tcp -> 127.0.0.1:54252
32514a829c0a84 prelaunch-data-generator-1680646157905431468 <none> STOPPED
3362bd62d0aa7a prelaunch-data-generator-1680646157915424301 <none> STOPPED
3405e9619e0e90 prelaunch-data-generator-1680646157922872635 <none> STOPPED
35
అన్నీ చూపించు

అభినందనలు! మీరు డాకర్ ద్వారా, ఒక CL (lighthouse) మరియు EL క్లయింట్ (geth)తో ఒక స్థానిక ఇథిరియం టెస్టునెట్‌ను ప్రారంభించడానికి కుర్టోసిస్‌ను ఉపయోగించారు.

సమీక్ష

ఈ విభాగంలో, మీరు ఒక కుర్టోసిస్ ఎన్‌క్లేవ్ (opens in a new tab)లో స్థానిక ఇథిరియం టెస్టునెట్‌ను స్పిన్ అప్ చేయడానికి eth-network-package GitHubలో రిమోట్‌గా హోస్ట్ చేయబడిన (opens in a new tab) దాన్ని ఉపయోగించమని కుర్టోసిస్‌ను నిర్దేశించే ఒక కమాండ్‌ను అమలు చేశారు. మీ ఎన్‌క్లేవ్ లోపల, మీరు "ఫైల్ ఆర్టిఫ్యాక్ట్స్" మరియు "వినియోగదారు సేవలు" రెండింటినీ కనుగొంటారు.

మీ ఎన్‌క్లేవ్‌లోని ఫైల్ ఆర్టిఫ్యాక్ట్స్ (opens in a new tab) EL మరియు CL క్లయింట్‌లను బూట్‌స్ట్రాప్ చేయడానికి ఉత్పత్తి చేయబడిన మరియు ఉపయోగించబడిన మొత్తం డేటాను కలిగి ఉంటాయి. ఈ డాకర్ ఇమేజ్ (opens in a new tab) నుండి నిర్మించిన prelaunch-data-generator సేవను ఉపయోగించి డేటా సృష్టించబడింది

వినియోగదారు సేవలు మీ ఎన్‌క్లేవ్‌లో పనిచేస్తున్న అన్ని కంటైనరైజ్డ్ సేవలను ప్రదర్శిస్తాయి. ఒక EL క్లయింట్ మరియు ఒక CL క్లయింట్ రెండింటినీ కలిగి ఉన్న ఒకే నోడ్ సృష్టించబడిందని మీరు గమనిస్తారు.

మీ డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని స్థానిక ఇథిరియం టెస్టునెట్‌కు కనెక్ట్ చేయండి

డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని సెటప్ చేయండి

ఇప్పుడు మీకు రన్నింగ్‌లో ఉన్న స్థానిక టెస్టునెట్ ఉంది, మీ స్థానిక టెస్టునెట్‌ను ఉపయోగించడానికి మీ డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని కనెక్ట్ చేయవచ్చు. ఈ గైడ్‌లో మీ స్థానిక టెస్టునెట్‌కు ఒక బ్లాక్‌జాక్ డాప్‌ను డిప్లాయ్ చేయడానికి హార్డ్‌హ్యాట్ ఫ్రేమ్‌వర్క్ ఉపయోగించబడుతుంది.

మీ డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని సెటప్ చేయడానికి, మా నమూనా డాప్‌ను కలిగి ఉన్న రిపోజిటరీని క్లోన్ చేసి, దాని డిపెండెన్సీలను ఇన్‌స్టాల్ చేయడానికి, రన్ చేయండి:

1git clone https://github.com/kurtosis-tech/awesome-kurtosis.git && cd awesome-kurtosis/smart-contract-example && yarn

ఇక్కడ ఉపయోగించిన smart-contract-example (opens in a new tab) ఫోల్డర్ హార్డ్‌హ్యాట్ (opens in a new tab) ఫ్రేమ్‌వర్క్‌ను ఉపయోగించే ఒక డాప్ డెవలపర్ కోసం సాధారణ సెటప్‌ను కలిగి ఉంది:

  • contracts/ (opens in a new tab) ఒక బ్లాక్‌జాక్ డాప్ కోసం కొన్ని సాధారణ స్మార్ట్ కాంట్రాక్ట్‌లను కలిగి ఉంది
  • scripts/ (opens in a new tab) మీ స్థానిక ఇథిరియం నెట్‌వర్క్‌కు ఒక టోకెన్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడానికి ఒక స్క్రిప్ట్‌ను కలిగి ఉంది
  • test/ (opens in a new tab) మా బ్లాక్‌జాక్ డాప్‌లోని ప్రతి ప్లేయర్‌కు 1000 టోకెన్లు మింట్ చేయబడ్డాయని నిర్ధారించడానికి మీ టోకెన్ కాంట్రాక్ట్ కోసం ఒక సాధారణ .js టెస్ట్‌ను కలిగి ఉంది
  • hardhat.config.ts (opens in a new tab) మీ హార్డ్‌హ్యాట్ సెటప్‌ను కాన్ఫిగర్ చేస్తుంది

స్థానిక టెస్టునెట్‌ను ఉపయోగించడానికి హార్డ్‌హ్యాట్‌ను కాన్ఫిగర్ చేయండి

మీ డాప్ డెవలప్‌మెంట్ వాతావరణం సెటప్ చేయబడిన తర్వాత, మీరు ఇప్పుడు కుర్టోసిస్ ఉపయోగించి సృష్టించబడిన స్థానిక ఇథిరియం టెస్టునెట్‌ను ఉపయోగించడానికి హార్డ్‌హ్యాట్‌ను కనెక్ట్ చేస్తారు. దీనిని సాధించడానికి, మీ hardhat.config.ts కాన్ఫిగ్ ఫైల్‌లోని localnet స్ట్రక్ట్‌లో <$YOUR_PORT>ను ఏదైనా el-client-<num> సేవ నుండి వచ్చిన rpc uri అవుట్‌పుట్ పోర్ట్‌తో భర్తీ చేయండి. ఈ నమూనా సందర్భంలో, పోర్ట్ 64248 అవుతుంది. మీ పోర్ట్ భిన్నంగా ఉంటుంది.

hardhat.config.tsలో ఉదాహరణ:

1localnet: {
2url: 'http://127.0.0.1:<$YOUR_PORT>',// TODO: ETH నెట్‌వర్క్ కుర్టోసిస్ ప్యాకేజీ ద్వారా ఉత్పత్తి చేయబడిన నోడ్ URI యొక్క పోర్ట్‌తో $YOUR_PORTను భర్తీ చేయండి
3
4// ఇవి eth-network-package ద్వారా సృష్టించబడిన ప్రీఫండెడ్ టెస్ట్ ఖాతాలతో అనుబంధించబడిన ప్రైవేట్ కీలు
5// <https://github.com/kurtosis-tech/eth-network-package/blob/main/src/prelaunch_data_generator/genesis_constants/genesis_constants.star>
6accounts: [
7 "ef5177cd0b6b21c87db5a0bf35d4084a8a57a9d6a064f86d51ac85f2b873a4e2",
8 "48fcc39ae27a0e8bf0274021ae6ebd8fe4a0e12623d61464c498900b28feb567",
9 "7988b3a148716ff800414935b305436493e1f25237a2a03e5eebc343735e2f31",
10 "b3c409b6b0b3aa5e65ab2dc1930534608239a478106acf6f3d9178e9f9b00b35",
11 "df9bb6de5d3dc59595bcaa676397d837ff49441d211878c024eabda2cd067c9f",
12 "7da08f856b5956d40a72968f93396f6acff17193f013e8053f6fbb6c08c194d6",
13 ],
14},
అన్నీ చూపించు

మీరు మీ ఫైల్‌ను సేవ్ చేసిన తర్వాత, మీ హార్డ్‌హ్యాట్ డాప్ డెవలప్‌మెంట్ వాతావరణం ఇప్పుడు మీ స్థానిక ఇథిరియం టెస్టునెట్‌కు కనెక్ట్ చేయబడింది! మీ టెస్టునెట్ పనిచేస్తోందో లేదో మీరు రన్ చేయడం ద్వారా ధృవీకరించుకోవచ్చు:

1npx hardhat balances --network localnet

అవుట్‌పుట్ ఈ విధంగా ఉండాలి:

10x878705ba3f8Bc32FCf7F4CAa1A35E72AF65CF766 has balance 10000000000000000000000000
20x4E9A3d9D1cd2A2b2371b8b3F489aE72259886f1A has balance 10000000000000000000000000
30xdF8466f277964Bb7a0FFD819403302C34DCD530A has balance 10000000000000000000000000
40x5c613e39Fc0Ad91AfDA24587e6f52192d75FBA50 has balance 10000000000000000000000000
50x375ae6107f8cC4cF34842B71C6F746a362Ad8EAc has balance 10000000000000000000000000
60x1F6298457C5d76270325B724Da5d1953923a6B88 has balance 10000000000000000000000000

హార్డ్‌హ్యాట్ మీ స్థానిక టెస్టునెట్‌ను ఉపయోగిస్తోందని మరియు eth-network-package ద్వారా సృష్టించబడిన ప్రీ-ఫండెడ్ ఖాతాలను గుర్తిస్తోందని ఇది నిర్ధారిస్తుంది.

మీ డాప్‌ను స్థానికంగా డిప్లాయ్ చేసి పరీక్షించండి

డాప్ డెవలప్‌మెంట్ వాతావరణం స్థానిక ఇథిరియం టెస్టునెట్‌కు పూర్తిగా కనెక్ట్ చేయబడినందున, మీరు ఇప్పుడు స్థానిక టెస్టునెట్‌ను ఉపయోగించి మీ డాప్‌పై డెవలప్‌మెంట్ మరియు టెస్టింగ్ వర్క్‌ఫ్లోలను అమలు చేయవచ్చు.

స్థానిక ప్రోటోటైపింగ్ మరియు డెవలప్‌మెంట్ కోసం ChipToken.sol స్మార్ట్ కాంట్రాక్ట్‌ను కంపైల్ చేసి, డిప్లాయ్ చేయడానికి, రన్ చేయండి:

1npx hardhat compile
2npx hardhat run scripts/deploy.ts --network localnet

అవుట్‌పుట్ ఈ విధంగా ఉండాలి:

1చిప్‌టోకెన్ ఇక్కడ డిప్లాయ్ చేయబడింది: 0xAb2A01BC351770D09611Ac80f1DE076D56E0487d

మా బ్లాక్‌జాక్ డాప్‌లోని ప్రతి ప్లేయర్‌కు 1000 టోకెన్లు మింట్ చేయబడ్డాయని నిర్ధారించడానికి ఇప్పుడు మీ స్థానిక డాప్‌పై simple.js టెస్ట్‌ను రన్ చేసి ప్రయత్నించండి:

అవుట్‌పుట్ ఈ విధంగా ఉండాలి:

1npx hardhat test --network localnet

అవుట్‌పుట్ ఈ విధంగా ఉండాలి:

1చిప్‌టోకెన్
2 మింట్
3 ✔ ప్లేయర్ వన్ కోసం 1000 చిప్‌లను మింట్ చేయాలి
4
5 1 పాస్ అయ్యింది (654ms)

సమీక్ష

ఈ సమయంలో, మీరు ఇప్పుడు ఒక డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని సెటప్ చేశారు, దానిని కుర్టోసిస్ ద్వారా సృష్టించబడిన స్థానిక ఇథిరియం నెట్‌వర్క్‌కు కనెక్ట్ చేశారు, మరియు మీ డాప్‌పై ఒక సాధారణ టెస్ట్‌ను కంపైల్ చేసి, డిప్లాయ్ చేసి, రన్ చేశారు.

ఇప్పుడు మారుతున్న నెట్‌వర్క్ కాన్ఫిగరేషన్‌ల కింద మన డాప్‌లను పరీక్షించడానికి అంతర్లీన నెట్‌వర్క్‌ను ఎలా కాన్ఫిగర్ చేయవచ్చో అన్వేషిద్దాం.

స్థానిక ఇథిరియం టెస్టునెట్‌ను కాన్ఫిగర్ చేయడం

క్లయింట్ కాన్ఫిగరేషన్‌లు మరియు నోడ్ల సంఖ్యను మార్చడం

మీరు అభివృద్ధి చేయాలనుకుంటున్న లేదా పరీక్షించాలనుకుంటున్న దృశ్యం మరియు నిర్దిష్ట నెట్‌వర్క్ కాన్ఫిగరేషన్‌పై ఆధారపడి, మీ స్థానిక ఇథిరియం టెస్టునెట్‌ను విభిన్న EL మరియు CL క్లయింట్ జతలను, అలాగే మారుతున్న సంఖ్యలో నోడ్లను ఉపయోగించడానికి కాన్ఫిగర్ చేయవచ్చు. దీని అర్థం, ఒకసారి సెటప్ చేసిన తర్వాత, మీరు ఒక అనుకూలీకరించిన స్థానిక టెస్టునెట్‌ను స్పిన్ అప్ చేసి, అదే వర్క్‌ఫ్లోలను (డిప్లాయ్‌మెంట్, టెస్ట్‌లు, మొదలైనవి) అమలు చేయడానికి దాన్ని ఉపయోగించవచ్చు. అన్నీ ఊహించిన విధంగా పనిచేస్తాయని నిర్ధారించుకోవడానికి వివిధ నెట్‌వర్క్ కాన్ఫిగరేషన్‌ల కింద. మీరు మార్పు చేయగల ఇతర పారామీటర్ల గురించి మరింత తెలుసుకోవడానికి, ఈ లింక్‌ను సందర్శించండి.

ఒకసారి ప్రయత్నించి చూడండి! మీరు JSON ఫైల్ ద్వారా eth-network-packageకు వివిధ కాన్ఫిగరేషన్ ఎంపికలను పంపవచ్చు. ఈ నెట్‌వర్క్ పారామీటర్ల JSON ఫైల్ స్థానిక ఇథిరియం నెట్‌వర్క్‌ను సెటప్ చేయడానికి కుర్టోసిస్ ఉపయోగించే నిర్దిష్ట కాన్ఫిగరేషన్‌లను అందిస్తుంది.

డిఫాల్ట్ కాన్ఫిగరేషన్ ఫైల్‌ను తీసుకుని, విభిన్న EL/CL జతలతో రెండు నోడ్‌లను స్పిన్ అప్ చేయడానికి దాన్ని సవరించండి:

  • geth/lighthouseతో నోడ్ 1
  • geth/lodestarతో నోడ్ 2
  • geth/tekuతో నోడ్ 3

ఈ కాన్ఫిగరేషన్ మీ డాప్‌ను పరీక్షించడం కోసం ఇథిరియం నోడ్ ఇంప్లిమెంటేషన్‌ల యొక్క విభిన్న నెట్‌వర్క్‌ను సృష్టిస్తుంది. మీ కాన్ఫిగరేషన్ ఫైల్ ఇప్పుడు ఇలా కనిపించాలి:

1{
2 "participants":
3 [
4 {
5 "el_client_type": "geth",
6 "el_client_image": "",
7 "el_client_log_level": "",
8 "cl_client_type": "lighthouse",
9 "cl_client_image": "",
10 "cl_client_log_level": "",
11 "beacon_extra_params": [],
12 "el_extra_params": [],
13 "validator_extra_params": [],
14 "builder_network_params": null,
15 },
16 {
17 "el_client_type": "geth",
18 "el_client_image": "",
19 "el_client_log_level": "",
20 "cl_client_type": "lodestar",
21 "cl_client_image": "",
22 "cl_client_log_level": "",
23 "beacon_extra_params": [],
24 "el_extra_params": [],
25 "validator_extra_params": [],
26 "builder_network_params": null,
27 },
28 {
29 "el_client_type": "geth",
30 "el_client_image": "",
31 "el_client_log_level": "",
32 "cl_client_type": "teku",
33 "cl_client_image": "",
34 "cl_client_log_level": "",
35 "beacon_extra_params": [],
36 "el_extra_params": [],
37 "validator_extra_params": [],
38 "builder_network_params": null,
39 },
40 ],
41 "network_params":
42 {
43 "preregistered_validator_keys_mnemonic": "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete",
44 "num_validator_keys_per_node": 64,
45 "network_id": "3151908",
46 "deposit_contract_address": "0x4242424242424242424242424242424242424242",
47 "seconds_per_slot": 12,
48 "genesis_delay": 120,
49 "capella_fork_epoch": 5,
50 },
51}
అన్నీ చూపించు

ప్రతి participants స్ట్రక్ట్ నెట్‌వర్క్‌లోని ఒక నోడ్‌కు మ్యాప్ అవుతుంది, కాబట్టి 3 participants స్ట్రక్ట్‌లు మీ నెట్‌వర్క్‌లో 3 నోడ్‌లను స్పిన్ అప్ చేయమని కుర్టోసిస్‌కు చెబుతాయి. ప్రతి participants స్ట్రక్ట్ ఆ నిర్దిష్ట నోడ్ కోసం ఉపయోగించిన EL మరియు CL జతను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.

ప్రతి నోడ్ కోసం జెనెసిస్ ఫైల్‌లను సృష్టించడానికి ఉపయోగించే నెట్‌వర్క్ సెట్టింగ్‌లను, అలాగే నెట్‌వర్క్ యొక్క స్లాట్‌కు సెకన్లు వంటి ఇతర సెట్టింగ్‌లను network_params స్ట్రక్ట్ కాన్ఫిగర్ చేస్తుంది.

మీ సవరించిన పారామీటర్ల ఫైల్‌ను మీరు కోరుకున్న ఏ డైరెక్టరీలోనైనా సేవ్ చేయండి (క్రింది ఉదాహరణలో, ఇది డెస్క్‌టాప్‌లో సేవ్ చేయబడింది) ఆపై మీ కుర్టోసిస్ ప్యాకేజీని అమలు చేయడానికి దీన్ని ఉపయోగించండి:

1kurtosis clean -a && kurtosis run --enclave local-eth-testnet github.com/kurtosis-tech/eth-network-package "$(cat ~/eth-network-params.json)"

గమనిక: పాత టెస్టునెట్ మరియు దాని కంటెంట్‌లను నాశనం చేసి, కొత్తదాన్ని ప్రారంభించే ముందు kurtosis clean -a కమాండ్ ఇక్కడ కుర్టోసిస్‌కు సూచించడానికి ఉపయోగించబడుతుంది.

మళ్ళీ, కుర్టోసిస్ కొంత సమయం పనిచేసి, జరుగుతున్న వ్యక్తిగత దశలను ప్రింట్ చేస్తుంది. చివరికి, అవుట్‌పుట్ ఈ విధంగా ఉండాలి:

1Starlark code successfully run. No output was returned.
2INFO[2023-04-07T11:43:16-04:00] ==========================================================
3INFO[2023-04-07T11:43:16-04:00] || Created enclave: local-eth-testnet ||
4INFO[2023-04-07T11:43:16-04:00] ==========================================================
5Name: local-eth-testnet
6UUID: bef8c192008e
7Status: RUNNING
8Creation Time: Fri, 07 Apr 2023 11:41:58 EDT
9
10========================================= Files Artifacts =========================================
11UUID Name
12cc495a8e364a cl-genesis-data
137033fcdb5471 el-genesis-data
14a3aef43fc738 genesis-generation-config-cl
158e968005fc9d genesis-generation-config-el
163182cca9d3cd geth-prefunded-keys
178421166e234f prysm-password
18d9e6e8d44d99 validator-keystore-0
1923f5ba517394 validator-keystore-1
204d28dea40b5c validator-keystore-2
21
22========================================== User Services ==========================================
23UUID Name Ports Status
24485e6fde55ae cl-client-0-beacon http: 4000/tcp -> http://127.0.0.1:65010 RUNNING
25 metrics: 5054/tcp -> http://127.0.0.1:65011
26 tcp-discovery: 9000/tcp -> 127.0.0.1:65012
27 udp-discovery: 9000/udp -> 127.0.0.1:54455
2873739bd158b2 cl-client-0-validator http: 5042/tcp -> 127.0.0.1:65016 RUNNING
29 metrics: 5064/tcp -> http://127.0.0.1:65017
301b0a233cd011 cl-client-1-beacon http: 4000/tcp -> 127.0.0.1:65021 RUNNING
31 metrics: 8008/tcp -> 127.0.0.1:65023
32 tcp-discovery: 9000/tcp -> 127.0.0.1:65024
33 udp-discovery: 9000/udp -> 127.0.0.1:56031
34 validator-metrics: 5064/tcp -> 127.0.0.1:65022
35949b8220cd53 cl-client-1-validator http: 4000/tcp -> 127.0.0.1:65028 RUNNING
36 metrics: 8008/tcp -> 127.0.0.1:65030
37 tcp-discovery: 9000/tcp -> 127.0.0.1:65031
38 udp-discovery: 9000/udp -> 127.0.0.1:60784
39 validator-metrics: 5064/tcp -> 127.0.0.1:65029
40c34417bea5fa cl-client-2 http: 4000/tcp -> 127.0.0.1:65037 RUNNING
41 metrics: 8008/tcp -> 127.0.0.1:65035
42 tcp-discovery: 9000/tcp -> 127.0.0.1:65036
43 udp-discovery: 9000/udp -> 127.0.0.1:63581
44e19738e6329d el-client-0 engine-rpc: 8551/tcp -> 127.0.0.1:64986 RUNNING
45 rpc: 8545/tcp -> 127.0.0.1:64988
46 tcp-discovery: 30303/tcp -> 127.0.0.1:64987
47 udp-discovery: 30303/udp -> 127.0.0.1:55706
48 ws: 8546/tcp -> 127.0.0.1:64989
49e904687449d9 el-client-1 engine-rpc: 8551/tcp -> 127.0.0.1:64993 RUNNING
50 rpc: 8545/tcp -> 127.0.0.1:64995
51 tcp-discovery: 30303/tcp -> 127.0.0.1:64994
52 udp-discovery: 30303/udp -> 127.0.0.1:58096
53 ws: 8546/tcp -> 127.0.0.1:64996
54ad6f401126fa el-client-2 engine-rpc: 8551/tcp -> 127.0.0.1:65003 RUNNING
55 rpc: 8545/tcp -> 127.0.0.1:65001
56 tcp-discovery: 30303/tcp -> 127.0.0.1:65000
57 udp-discovery: 30303/udp -> 127.0.0.1:57269
58 ws: 8546/tcp -> 127.0.0.1:65002
5912d04a9dbb69 prelaunch-data-generator-1680882122181135513 <none> STOPPED
605b45f9c0504b prelaunch-data-generator-1680882122192182847 <none> STOPPED
613d4aaa75e218 prelaunch-data-generator-1680882122201668972 <none> STOPPED
అన్నీ చూపించు

అభినందనలు! మీరు మీ స్థానిక టెస్టునెట్‌ను 1కి బదులుగా 3 నోడ్‌లను కలిగి ఉండేలా విజయవంతంగా కాన్ఫిగర్ చేశారు. మీ డాప్‌పై (డిప్లాయ్ & టెస్ట్) మీరు ఇంతకు ముందు చేసిన అవే వర్క్‌ఫ్లోలను అమలు చేయడానికి, మీ కొత్త, 3-నోడ్ స్థానిక టెస్టునెట్‌లోని ఏదైనా el-client-<num> సేవ నుండి వచ్చిన rpc uri అవుట్‌పుట్ పోర్ట్‌తో మీ hardhat.config.ts కాన్ఫిగ్ ఫైల్‌లోని localnet స్ట్రక్ట్‌లో <$YOUR_PORT>ను భర్తీ చేయడం ద్వారా మేము ఇంతకు ముందు చేసిన అవే ఆపరేషన్‌లను చేయండి.

ముగింపు

అంతే! ఈ చిన్న గైడ్‌ను సంగ్రహంగా చెప్పాలంటే, మీరు:

  • కుర్టోసిస్ ఉపయోగించి డాకర్ ద్వారా స్థానిక ఇథిరియం టెస్టునెట్‌ను సృష్టించారు
  • మీ స్థానిక డాప్ డెవలప్‌మెంట్ వాతావరణాన్ని స్థానిక ఇథిరియం నెట్‌వర్క్‌కు కనెక్ట్ చేశారు
  • ఒక డాప్‌ను డిప్లాయ్ చేసి, స్థానిక ఇథిరియం నెట్‌వర్క్‌లో దానిపై ఒక సాధారణ టెస్ట్‌ను అమలు చేశారు
  • అంతర్లీన ఇథిరియం నెట్‌వర్క్‌ను 3 నోడ్‌లను కలిగి ఉండేలా కాన్ఫిగర్ చేశారు

మీకు ఏది బాగా జరిగింది, దేనిని మెరుగుపరచవచ్చు, లేదా మీ ఏవైనా ప్రశ్నలకు సమాధానం ఇవ్వడానికి మేము మీ నుండి వినడానికి ఇష్టపడతాము. GitHub (opens in a new tab) ద్వారా లేదా మాకు ఇమెయిల్ (opens email client) చేయడం ద్వారా మమ్మల్ని సంప్రదించడానికి సంకోచించకండి!

ఇతర ఉదాహరణలు మరియు గైడ్‌లు

మా క్విక్‌స్టార్ట్ (opens in a new tab) (ఇక్కడ మీరు పైన ఒక పోస్ట్‌గ్రెస్ డేటాబేస్ మరియు APIని నిర్మిస్తారు) మరియు మా awesome-kurtosis రిపోజిటరీ (opens in a new tab)లోని మా ఇతర ఉదాహరణలను చూడమని మేము మిమ్మల్ని ప్రోత్సహిస్తున్నాము, ఇక్కడ మీరు కొన్ని గొప్ప ఉదాహరణలను కనుగొంటారు, వీటిలో ప్యాకేజీలు కూడా ఉన్నాయి:

  • అదే స్థానిక ఇథిరియం టెస్టునెట్‌ను స్పిన్ అప్ చేయడం](https://github.com/kurtosis-tech/eth2-package (opens in a new tab)), కానీ లావాదేవీల స్పామర్ (లావాదేవీలను అనుకరించడానికి), ఒక ఫోర్క్ మానిటర్, మరియు కనెక్ట్ చేయబడిన గ్రాఫానా మరియు ప్రోమేతియస్ ఇన్‌స్టాన్స్ వంటి అదనపు సేవలు కనెక్ట్ చేయబడి ఉంటాయి
  • అదే స్థానిక ఇథిరియం నెట్‌వర్క్‌పై సబ్-నెట్‌వర్కింగ్ టెస్ట్ (opens in a new tab) నిర్వహించడం

పేజీ చివరి అప్‌డేట్: 23 సెప్టెంబర్, 2025

ఈ ట్యుటోరియల్ ఉపయోగపడిందా?