找回密码
 立即注册
搜索
热搜: GTokenTool
查看: 123|回复: 1

搭建本地私链,然后如何在局域网内共享服务?

[复制链接]

212

主题

211

回帖

1228

积分

管理员

积分
1228
发表于 2025-7-7 18:30:22 | 显示全部楼层 |阅读模式
使用ganache或者geth开启了本地服务,在自己的主机可以通过文件来访问网页,但是如何做到局域网内通过web共享服务?在此基础上,能否做到接入的设备都保存有本地私链的副本?万分感谢您的回答,感谢您对传播知识做出的杰出贡献。

212

主题

211

回帖

1228

积分

管理员

积分
1228
 楼主| 发表于 2025-7-7 18:32:50 | 显示全部楼层
第一部分:搭建本地私链1. 选择合适的区块链平台
  • 以太坊私链 (推荐初学者)
  • Hyperledger Fabric
  • Quorum
  • 其他支持私有网络的区块链平台

2. 以太坊私链搭建步骤安装必要软件text



# 安装Geth (Go Ethereum)sudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereum

创建创世区块配置文件 (genesis.json)json



{  "config": {    "chainId": 12345,    "homesteadBlock": 0,    "eip150Block": 0,    "eip155Block": 0,    "eip158Block": 0,    "byzantiumBlock": 0,    "constantinopleBlock": 0,    "petersburgBlock": 0,    "istanbulBlock": 0  },  "alloc": {},  "coinbase": "0x0000000000000000000000000000000000000000",  "difficulty": "0x20000",  "extraData": "",  "gasLimit": "0x2fefd8",  "nonce": "0x0000000000000042",  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",  "timestamp": "0x00"}

初始化私链text



geth --datadir ./privatechain init genesis.json

启动私链节点text



geth --datadir ./privatechain --networkid 12345 --nodiscover --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --allow-insecure-unlock console

第二部分:局域网内共享服务1. 配置节点允许局域网访问
  • 确保启动参数包含 --rpcaddr 0.0.0.0 (允许所有IP访问)
  • 检查防火墙设置,开放相应端口(如8545)

2. 局域网内其他设备连接方法一:直接RPC连接
其他设备可以使用web3.js或类似库连接到你的节点:
javascript



const Web3 = require('web3');const web3 = new Web3('http://[你的本地IP]:8545');

方法二:添加为对等节点
  • 在第一个节点控制台获取enode信息:
    text



    admin.nodeInfo.enode

  • 在第二个节点启动时添加:
    text



    geth --datadir ./privatechain2 --networkid 12345 --port 30304 --bootnodes "enode://第一个节点的enode信息@[第一个节点的IP]:30303"


3. 共享前端服务
如果你有DApp前端:
  • 将前端配置指向你的本地IP
  • 使用nginx/apache托管前端并代理区块链RPC请求

4. 安全注意事项
  • 考虑设置RPC认证 (--rpcvhosts 和 --rpccorsdomain)
  • 生产环境建议使用更严格的安全配置
  • 考虑使用VPN而不是完全开放的局域网访问

常见问题解决
  • 连接被拒绝:检查防火墙和Geth的RPC配置
  • 节点无法发现彼此:确保使用相同的networkid和正确的bootnodes
  • 同步问题:私有链可能需要手动挖矿生成区块


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telegram|手机版|小黑屋|GTokenTool

GMT+8, 2025-9-11 04:13 , Processed in 0.026454 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表