以太坊有多种网络类型,包括主网、测试网和私有网络。不同的网络适用于不同的场景,了解各种网络的特点和使用方法对于以太坊开发至关重要。本文详细介绍各种,帮助开发者选择合适的网络进行开发和部署。
一、网络类型概述
一、1 主网(Mainnet)
- 以太坊的正式生产网络
- 使用真实的ETH代币
- 所有交易都是真实且不可逆的
- 网络ID:1
- 最稳定和安全的网络
- 需要真实的ETH支付Gas费用
- 交易一旦确认无法撤销
- 适合生产环境部署
二、2 测试网(Testnet)
- 用于开发和测试的网络
- 使用测试代币,无实际价值
- 可以免费获取测试币
- 模拟主网环境
- 免费使用,无需真实ETH
- 可以随意测试和实验
- 网络可能不稳定
- 定期重置状态
三、3 私有网络(Private Network)
- 本地或组织内部搭建的网络
- 完全独立的区块链
- 可以自定义参数
- 适合开发和演示
- 完全控制网络
- 快速出块和确认
- 无需支付Gas费用
- 适合本地开发
二、主网(Mainnet)
四、1 网络信息
五、2 连接到主网
1 2
| const Web3 = require('web3'); const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_PROJECT_ID');
|
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共识机制
- 快速同步
- 稳定的网络
1
| const web3 = new Web3('https://sepolia.infura.io/v3/YOUR_PROJECT_ID');
|
九、3 Holesky测试网
十、4 本地测试网
1 2 3 4 5 6 7 8
| module.exports = { networks: { hardhat: { chainId: 1337 } } };
|
四、私有网络
十一、1 创建私有网络
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
| geth --datadir ./node1 --networkid 12345 --port 30303 --rpcport 8545 --rpcaddr "0.0.0.0" --nodiscover --rpcapi "eth,net,web3,admin,personal" --bootnodes "enode://..." console
|
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 在代码中切换
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] } } };
|
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://sepolia.infura.io/v3/${process.env.INFURA_API_KEY}`), network_id: 11155111 } } };
|
- 打开MetaMask
- 点击网络选择器
- 选择”添加网络”
- 输入网络信息
七、网络监控
十八、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 如何获取测试币?
二十四、2 测试网数据会丢失吗?
- 测试网可能定期重置
- 重要数据应备份
- 生产应用必须使用主网
二十五、3 如何切换网络?
十、总结
选择合适的以太坊网络对于开发和部署至关重要:
- 开发:使用本地网络或测试网
- 测试:使用Sepolia测试网
- 生产:使用主网
- 主网使用真实ETH,务必谨慎
- 测试网免费但可能不稳定
- 私有网络完全控制,适合开发
- 根据需求选择合适的网络
通过正确理解和使用不同的网络类型,可以高效地进行以太坊开发,在保证安全的前提下降低成本和提高效率。
本文标题: 以太坊网络类型
发布时间: 2024年02月26日 00:00
最后更新: 2025年12月30日 08:54
原始链接: https://haoxiang.eu.org/8c314d9a/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!