以太坊有多种网络类型,包括主网、测试网和私有网络。不同的网络适用于不同的场景,了解各种网络的特点和使用方法对于以太坊开发至关重要。本文详细介绍各种,帮助开发者选择合适的网络进行开发和部署。
一、网络类型概述
1. 主网(Mainnet)
定义
- 以太坊的正式生产网络
- 使用真实的ETH代币
- 所有交易都是真实且不可逆的
- 网络ID:1
特点
- 最稳定和安全的网络
- 需要真实的ETH支付Gas费用
- 交易一旦确认无法撤销
- 适合生产环境部署
2. 测试网(Testnet)
定义
- 用于开发和测试的网络
- 使用测试代币,无实际价值
- 可以免费获取测试币
- 模拟主网环境
特点
- 免费使用,无需真实ETH
- 可以随意测试和实验
- 网络可能不稳定
- 定期重置状态
3. 私有网络(Private Network)
定义
- 本地或组织内部搭建的网络
- 完全独立的区块链
- 可以自定义参数
- 适合开发和演示
特点
- 完全控制网络
- 快速出块和确认
- 无需支付Gas费用
- 适合本地开发
二、主网(Mainnet)
1. 网络信息
区块浏览器
2. 连接到主网
使用Geth
使用Web3.js
1 2
| const Web3 = require('web3'); const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_PROJECT_ID');
|
使用ethers.js
1 2
| const { ethers } = require('ethers'); const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_PROJECT_ID');
|
3. 注意事项
安全要求
- 使用真实ETH,务必谨慎
- 仔细检查所有交易
- 使用硬件钱包存储大额资金
- 定期备份私钥
成本考虑
- 需要支付Gas费用
- 网络拥堵时费用较高
- 部署合约成本可能很高
三、测试网
1. Goerli测试网
网络信息
特点
2. Sepolia测试网
网络信息
- 网络ID:11155111
- 链ID:11155111
- 状态:活跃
特点
- 当前推荐的测试网
- 使用PoS共识机制
- 快速同步
- 稳定的网络
获取测试币
连接到Sepolia
1 2 3
| geth --sepolia
const web3 = new Web3('https://sepolia.infura.io/v3/YOUR_PROJECT_ID');
|
3. Holesky测试网
网络信息
特点
4. 本地测试网
使用Hardhat
1 2 3 4 5 6 7 8
| module.exports = { networks: { hardhat: { chainId: 1337 } } };
|
使用Ganache
四、私有网络
1. 创建私有网络
创世区块配置(genesis.json)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| { "config": { "chainId": 12345, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc": { "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb": { "balance": "1000000000000000000000" } }, "coinbase": "0x0000000000000000000000000000000000000000", "difficulty": "0x400", "extraData": "", "gasLimit": "0x8000000", "nonce": "0x0000000000000042", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "0x00" }
|
初始化网络
1
| geth --datadir ./private-net init genesis.json
|
启动节点
1
| geth --datadir ./private-net --networkid 12345 --nodiscover --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpcapi "eth,net,web3,personal,admin" console
|
2. 多节点私有网络
节点1
1
| geth --datadir ./node1 --networkid 12345 --port 30303 --rpcport 8545 --rpcaddr "0.0.0.0" --nodiscover --rpcapi "eth,net,web3,admin,personal" --bootnodes "enode://..." console
|
节点2
1
| geth --datadir ./node2 --networkid 12345 --port 30304 --rpcport 8546 --rpcaddr "0.0.0.0" --nodiscover --rpcapi "eth,net,web3,admin,personal" --bootnodes "enode://..." console
|
连接节点
1 2
| admin.addPeer("enode://...")
|
五、网络选择指南
1. 开发阶段
本地开发
- 使用Hardhat或Ganache
- 快速迭代
- 无需网络连接
功能测试
2. 部署阶段
测试部署
生产部署
3. 不同场景
学习开发
项目开发
企业应用
六、网络切换
1. 在代码中切换
Hardhat配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| module.exports = { networks: { localhost: { url: "http://127.0.0.1:8545" }, sepolia: { url: `https://sepolia.infura.io/v3/${process.env.INFURA_API_KEY}`, accounts: [process.env.PRIVATE_KEY] }, mainnet: { url: `https://mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`, accounts: [process.env.PRIVATE_KEY] } } };
|
Truffle配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" }, sepolia: { provider: () => new HDWalletProvider(process.env.MNEMONIC, `https: network_id: 11155111 } } };
|
添加网络
- 打开MetaMask
- 点击网络选择器
- 选择”添加网络”
- 输入网络信息
Sepolia网络信息
七、网络监控
1. 区块浏览器
主网
测试网
2. 网络状态
检查连接
1 2 3 4 5 6 7 8 9 10 11
| const networkId = await web3.eth.net.getId(); console.log('Network ID:', networkId);
const chainId = await web3.eth.getChainId(); console.log('Chain ID:', chainId);
const blockNumber = await web3.eth.getBlockNumber(); console.log('Block Number:', blockNumber);
|
监控工具
- Etherscan API
- The Graph
- Alchemy Monitor
- Infura Dashboard
八、最佳实践
1. 开发流程
- 在本地网络快速开发
- 在测试网充分测试
- 确认无误后部署主网
2. 安全建议
测试网
- 不要使用真实私钥
- 使用专门的测试账户
- 定期清理测试数据
主网
- 使用硬件钱包
- 多重签名保护
- 充分测试后再部署
- 准备应急方案
3. 成本优化
测试阶段
生产部署
- 选择Gas价格较低时部署
- 优化合约代码
- 使用Layer 2解决方案
九、常见问题
1. 如何获取测试币?
Sepolia测试币
2. 测试网数据会丢失吗?
答案:可能会
- 测试网可能定期重置
- 重要数据应备份
- 生产应用必须使用主网
3. 如何切换网络?
在代码中
十、总结
选择合适的以太坊网络对于开发和部署至关重要:
网络选择
- 开发:使用本地网络或测试网
- 测试:使用Sepolia测试网
- 生产:使用主网
关键要点
- 主网使用真实ETH,务必谨慎
- 测试网免费但可能不稳定
- 私有网络完全控制,适合开发
- 根据需求选择合适的网络
通过正确理解和使用不同的网络类型,可以高效地进行以太坊开发,在保证安全的前提下降低成本和提高效率。
本文标题: 以太坊网络类型
发布时间: 2024年02月26日 00:00
最后更新: 2026年09月16日 05:40
原始链接: https://haoxiang.eu.org/8c314d9a/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!