多节点私链搭建教程(一)

本文详细介绍了在Windows系统下安装和配置Geth,以及如何搭建多节点私有区块链网络。步骤包括下载安装Geth,设置环境变量,使用puppeth创建创世区块,指定网络ID,创建并解锁账户,以及启动节点。通过这个教程,读者可以成功建立并运行自己的以太坊私链。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

向导

geth的安装和使用过程

  • windows下安装Geth
  • 配置和使用
    • 搭建私有网络

windows下安装Geth

1.下载地址:
https://geth.ethereum.org/downloads/
下载windows版

 2.安装geth时,只需将默认地址更改,并且勾中DEVELOPMENT TOOLS这个选项即可。

3.配置geth的环境变量:
3.1右键此电脑选中属性

3.2在相关设置中找到高级系统设置(如果没找到可以直接在windows设置中查找高级系统设置这个功能)

3.3打开高级系统设置后找到环境变量这个选项

 3.4在下面的系统变量中选中Path变量,点击编辑按钮

 3.5在编辑环境变量里面点击新建按钮,里面填写你的geth安装目录的路径,然后一直确定,应用。

3.6在其他目录下打卡cmd,并输入geth help查看是否成功

出现下面的情况就算成功,否则就是失败

 然后就可以开始搭建我们的多节点私链了

第一步:新建两个节点目录

并且在两个目录下都建立一个data文件夹

 第二步:在test1中打开cmd,输入puppeth,如果报错puppeth不是命令则是因为你安装geth时没有选中development  tools

 输入你的创世块名称,请不要用空格、连字符或大写字母

接下如下操作:

 

 在选完上面的1后,后面一直是默认,回车即可

一直到以下界面

 意思是是否指定你的chain/network ID,我们这边随便指定一个123456(随便指定,但是后面节点的私链必须与你之前的私链指定同一个id,要不然会找不到节点)

这步回车就行,成功后他会生成三个文件 

这时候ctrl+c 退出,去到你的test1目录下你就会发现多了三个文件

 下面三个是其他客户端,在这里对我们没用,我们可以把它删除了,只留下一个test.json文件

接下来接着打开cmd,输入下面命令:(123456是刚刚指定的id,./data是之前创建的data目录,用来存放账户和密钥,test.json是之前用puppeth创建的创世块。)

D:\多节点私链\test1>geth --datadir "./data" --networkid 123456 --rpc init ./test.json

出现下图即成功

 接着输入以下内容:

D:\多节点私链\test1>geth --datadir "./data" account new

创建用户,输入密码(自己记好,后面要用)

 

 用户创建完成,创建一个password文件,无后缀名,在password中写入你刚刚的账户密码。

如我一样

 同样新建一个后缀为bat的命令,以记事本编辑,命令为:

geth --allow-insecure-unlock --unlock=0 --password ./password --networkid 123456 --datadir "data" --http --http.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net" --http.corsdomain="*" --http.port=8545 --http.addr="0.0.0.0" --port 10101 --ipcpath \\.pipe\geth1.ipc --nodiscover console

 

这样即是一个节点成功搭建 ,同样第二个节点也一样搭建。

 

 

D:\多节点私链\test2>geth --datadir "./data" --networkid 123456 --rpc init ./test.json

 

 startnode.bat的命令如下:

geth --allow-insecure-unlock --unlock=0 --password ./password --networkid 123456 --datadir "data" --http --http.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net" --http.corsdomain="*" --http.port=8546 --http.addr="0.0.0.0" --port 10102 --ipcpath \\.pipe\geth2.ipc --nodiscover console

 两个cmd都打开:

 让它们找节点

### 使用Hyperledger Fabric搭建带有PBFT共识机制的有区块教程 #### 、环境准备 为了设置个基于PBFT (Practical Byzantine Fault Tolerance) 共识算法的Hyperledger Fabric网络,首先需要安装并配置好必要的开发工具和依赖项。这包括但不限于Docker、Docker Compose以及Go语言环境等基础组件。 对于Hyperledger Fabric本身而言,则需下载对应版本的二进制文件与镜像资源[^3]。 ```bash export VERSION=2.4.8 curl -sSL https://bit.ly/2ysbOFE | bash -s $VERSION docker pull hyperledger/fabric-peer:$VERSION docker pull hyperledger/fabric-orderer:$VERSION ... ``` #### 二、创建通道及加入节点 定义网络拓扑结构之后,在启动任何服务之前应该先建立联盟中的各个组织之间的通信渠道——即“通道”。通过`configtxgen`命令行工具来生成创世区块,并让不同成员机构下的peer节点参与到特定频道之中去。 值得注意的是,默认情况下Ordering Service采用Kafka作为消息队列实现最终致性;然而要启用PBFT的话则必须调整此部分配置以适应拜占庭容错需求。 #### 三、修改配置文件支持PBFT 编辑`orderer.yaml`文件内的Consensus Type字段为etcdraft(尽管官方文档中并没有直接提到pbft选项),因为当前Fabric社区推荐使用Raft替代原有的Solo/Kafka模式来进行强致性的排序服务部署。不过在某些特殊场景下也可以尝试自定义插件方式集成第三方提供的PBFT解决方案。 另外还需注意调整其他参数比如BatchTimeout/BatchSize等影响性能表现的关键属性值。 #### 四、编写智能合约逻辑 利用Chaincode SDK或者CLI接口完成业务功能编码工作,将其打包成tarball格式上传至指定路径供后续调用执行操作之用。这里建议开发者们遵循最佳实践指南确保代码质量可靠稳定。 ```go // Example.go package main import ( "fmt" "github.com/hyperledger/fabric-chaincode-go/shim" ) type SimpleChaincode struct{} func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) peer.Response { fmt.Println("Init ChainCode") return shim.Success(nil) } func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) peer.Response { function, args := stub.GetFunctionAndParameters() if function == "invoke" { // Perform the invoke operation } else if function == "query" { // Perform query operations here. } return shim.Error("Invalid invoke function name.") } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毂梁蔚竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值