Paikallisverkko ja haarauttaminen
Testiympäristöt.
Paikallisverkko ja haarauttaminen on ilmainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.
Hardhat Network
Hardhat sisältää kehitykseen suunnitellun sisäänrakennetun paikallisen Ethereum-verkon. Se toimii muistissa, louhii lohkot välittömästi ja tarjoaa rahoitettuja testitilejä.
- Oikeaa ETH:ta tai kaasumaksuja ei tarvita.
- Deterministiset tilit, joita voitte käyttää uudelleen.
- Yksityiskohtaiset virheilmoitukset ja pinojäljet.
Paikallisen solmun käynnistäminen
Suorittakaa erillinen JSON-RPC-palvelin, jotta lompakot ja käyttöliittymät voivat muodostaa siihen yhteyden:
npx hardhat nodeTämä tulostaa 20 rahoitettua tiliä yksityisavaimineen ja kuuntelee osoitteessa http://127.0.0.1:8545.
npx hardhat nodelocalhost-verkko
Käynnissä olevan solmun kohdistamista varten määrittäkää asetuksiin localhost-verkko:
module.exports = {
solidity: "0.8.24",
networks: {
localhost: { url: "http://127.0.0.1:8545" },
},
};Sen jälkeen voitte tehdä käyttöönoton komennolla npx hardhat run scripts/deploy.js --network localhost.
module.exports = {
solidity: "0.8.24",
networks: {
localhost: { url: "http://127.0.0.1:8545" },
},
};Prosessin sisäinen verkko ja erillinen verkko
Hardhat Networkia voi käyttää kahdella tavalla:
- Prosessin sisäinen — uusi verkko käynnistetään automaattisesti, kun suoritatte komennon
testtairunilman valitsinta--network. Tila hylätään tämän jälkeen. - Erillinen — käynnistetään komennolla
npx hardhat nodeja pidetään käynnissä ulkoisia yhteyksiä varten.
Mitä forkkaus tarkoittaa
Forkkaus luo annetun lohkon kohdalta paikallisen kopion oikeasta verkosta, kuten Ethereum mainnetistä. Saatte käyttöön koko ketjun tilan — käyttöönotetut sopimukset, saldot ja token-tiedot — mutta voitte kokeilla vapaasti.
Tämä sopii erinomaisesti live-protokollien, kuten Uniswapin tai Aaven, testaamiseen ilman oikeiden varojen käyttämistä.
Forkin määrittäminen
Ottakaa forkkaus käyttöön ohjaamalla Hardhat-verkko archive RPC -URL-osoitteeseen:
module.exports = {
networks: {
hardhat: {
forking: {
url: "https://mainnet.example-rpc.io/KEY",
},
},
},
};Tarvitsette yleensä archive-solmun tarjoajan, jotta koko aiempi tila on käytettävissä.
module.exports = {
networks: {
hardhat: {
forking: {
url: "https://mainnet.example-rpc.io/KEY",
},
},
},
};Lohkonumeron kiinnittäminen
Toistettavia testejä varten kiinnittäkää fork tiettyyn lohkoon:
forking: {
url: "https://mainnet.example-rpc.io/KEY",
blockNumber: 19000000,
}Kiinnittäminen pitää tilan vakaana ja antaa Hardhatille mahdollisuuden tallentaa vastaukset välimuistiin, joten testit suoritetaan nopeammin eivätkä tulokset muutu ketjun edetessä.
forking: {
url: "https://mainnet.example-rpc.io/KEY",
blockNumber: 19000000,
}Tilien toisena käyttäjänä esiintyminen
Forkissa voitte toimia millä tahansa osoitteella — myös sellaisella, jota ette omista — ja testata esimerkiksi valaan tokenien siirtämistä:
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: ["0xWhaleAddress"],
});
const whale = await hre.ethers.getSigner("0xWhaleAddress");await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: ["0xWhaleAddress"],
});
const whale = await hre.ethers.getSigner("0xWhaleAddress");Ajan ja lohkojen muokkaaminen
Paikallinen verkko tarjoaa erityisiä RPC-metodeja ajan ja lohkojen hallintaan. Niistä on hyötyä esimerkiksi vestingin tai huutokauppojen testaamisessa:
// Advance time by 1 day
await hre.network.provider.send("evm_increaseTime", [86400]);
// Mine a new block
await hre.network.provider.send("evm_mine");// Advance time by 1 day
await hre.network.provider.send("evm_increaseTime", [86400]);
// Mine a new block
await hre.network.provider.send("evm_mine");Tilan palauttaminen
Voitte palauttaa forkin testien välillä puhtaaseen tilannevedokseen:
await hre.network.provider.request({
method: "hardhat_reset",
params: [],
});Tämä palauttaa alkuperäisen forkatun tilan käynnistämättä prosessia uudelleen, joten testit pysyvät erillään toisistaan.
await hre.network.provider.request({
method: "hardhat_reset",
params: [],
});Tilannevedokset ja palautukset
Kokonaan palauttamisen lisäksi voitte ottaa kevyitä tilannevedoksia ja palata niihin. Näin test fixturet toimivat taustalla:
const id = await hre.network.provider.send("evm_snapshot");
// ... run some transactions ...
await hre.network.provider.send("evm_revert", [id]);Jokaiseen tilannevedoksen tunnisteeseen voi palata kerran.
const id = await hre.network.provider.send("evm_snapshot");
// ... run some transactions ...
await hre.network.provider.send("evm_revert", [id]);Pikatarkistus
Testatkaa, miten hyvin ymmärrätte paikalliset verkot ja forkkaamisen.
Kertaus
Opitte suorittamaan paikallisia verkkoja ja forkkaamaan niitä.
npx hardhat nodekäynnistää erillisen JSON-RPC-solmun rahoitettuine tileineen.- Prosessin sisäistä verkkoa käytetään automaattisesti testeissä, ja se hylätään testien jälkeen.
- Forkkaus kopioi live-mainnetin tilan paikallisesti turvallista kokeilua varten.
- Kiinnittäkää
blockNumbertoistettavuutta ja välimuistia varten. - Erityisillä RPC-metodeilla voi esiintyä toisena käyttäjänä, siirtää aikaa eteenpäin, louhia lohkoja ja palauttaa tilan.
Opi Web3:n ja DApp-sovellusten kehityksen perusteet tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 105
Usein kysytyt kysymykset
Onko oppitunti ”Paikallisverkko ja haarauttaminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Paikallisverkko ja haarauttaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Paikallisverkko ja haarauttaminen”?
Testiympäristöt. Harjoittelet Web3:n ja DApp-sovellusten kehityksen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Web3:n ja DApp-sovellusten kehityksen perusteet-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Paikallisverkko ja haarauttaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunnilla?
Kyllä. Jokainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Hardhatin määritys
- Sopimusten kääntäminen
- Skriptit ja tehtävät
- Paikallisverkko ja haarauttaminen