Yerel Ağ ve Çatallama
Test ortamları
Yerel Ağ ve Çatallama, CoddyKit'te ücretsiz bir Web3 & DApp Development Fundamentals dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Web3 & DApp Development Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Web3 & DApp Development Fundamentals kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
The Hardhat Network
Hardhat ships with a built-in local Ethereum network designed for development. It runs in-memory, mines blocks instantly, and gives you funded test accounts.
- No real ETH or gas costs.
- Deterministic accounts you can reuse.
- Rich error messages and stack traces.
Starting a Local Node
Run a standalone JSON-RPC server so wallets and front-ends can connect:
npx hardhat nodeThis prints 20 funded accounts with their private keys and listens on http://127.0.0.1:8545.
npx hardhat nodeThe localhost Network
To target the running node, define a localhost network in your config:
module.exports = {
solidity: "0.8.24",
networks: {
localhost: { url: "http://127.0.0.1:8545" },
},
};Then deploy with npx hardhat run scripts/deploy.js --network localhost.
module.exports = {
solidity: "0.8.24",
networks: {
localhost: { url: "http://127.0.0.1:8545" },
},
};In-Process vs Standalone
There are two ways to use the Hardhat Network:
- In-process — a fresh network spun up automatically when you run
testorrunwithout--network. State is discarded after. - Standalone — started with
npx hardhat nodeand kept alive for external connections.
What Is Forking
Forking creates a local copy of a real network (like Ethereum mainnet) at a given block. You get all the on-chain state — deployed contracts, balances, token data — but can experiment freely.
This is perfect for testing against live protocols such as Uniswap or Aave without spending real funds.
Configuring a Fork
Enable forking by pointing the Hardhat network at an archive RPC URL:
module.exports = {
networks: {
hardhat: {
forking: {
url: "https://mainnet.example-rpc.io/KEY",
},
},
},
};You typically need an archive node provider for full historical state.
module.exports = {
networks: {
hardhat: {
forking: {
url: "https://mainnet.example-rpc.io/KEY",
},
},
},
};Pinning a Block Number
For reproducible tests, pin the fork to a specific block:
forking: {
url: "https://mainnet.example-rpc.io/KEY",
blockNumber: 19000000,
}Pinning keeps state stable and lets Hardhat cache responses, so tests run faster and never drift as the chain advances.
forking: {
url: "https://mainnet.example-rpc.io/KEY",
blockNumber: 19000000,
}Impersonating Accounts
On a fork you can act as any address — even one you do not own — to test flows like a whale moving tokens:
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");Time and Block Manipulation
The local network exposes special RPC methods to control time and blocks, useful for testing vesting or auctions:
// 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");Resetting State
You can reset the fork back to a clean snapshot between tests:
await hre.network.provider.request({
method: "hardhat_reset",
params: [],
});This restores the original forked state without restarting the process, keeping test runs isolated.
await hre.network.provider.request({
method: "hardhat_reset",
params: [],
});Snapshots and Reverts
Beyond a full reset, you can take lightweight snapshots and revert to them, which is how test fixtures work under the hood:
const id = await hre.network.provider.send("evm_snapshot");
// ... run some transactions ...
await hre.network.provider.send("evm_revert", [id]);Each snapshot id can be reverted to once.
const id = await hre.network.provider.send("evm_snapshot");
// ... run some transactions ...
await hre.network.provider.send("evm_revert", [id]);Quick Check
Test your understanding of local networks and forking.
Recap
You learned to run and fork local networks.
npx hardhat nodestarts a standalone JSON-RPC node with funded accounts.- The in-process network is used automatically for tests and discarded after.
- Forking copies live mainnet state locally for safe experimentation.
- Pin
blockNumberfor reproducibility and caching. - Special RPC methods impersonate accounts, advance time, mine blocks, and reset state.
Yapay zeka eğitmeniyle Web3 & DApp Development Fundamentals öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 29
- Dersler
- 105
Sıkça Sorulan Sorular
“Yerel Ağ ve Çatallama” dersi ücretsiz mi?
Evet — “Yerel Ağ ve Çatallama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Web3 & DApp Development Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Web3 & DApp Development Fundamentals kursu toplamda 4 dersten oluşur.
“Yerel Ağ ve Çatallama” dersinde ne öğreneceğim?
Test ortamları Web3 & DApp Development Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Web3 & DApp Development Fundamentals öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Web3 & DApp Development Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Yerel Ağ ve Çatallama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Web3 & DApp Development Fundamentals dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Web3 & DApp Development Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Hardhat Kurulumu
- Sözleşmeleri Derleme
- Betikler ve Görevler
- Yerel Ağ ve Çatallama