Geth搭建私链(最新)

article/2025/9/20 16:30:02

Geth搭建私链

puppeth 是 Geth 中一个非常有用的命令,它允许您使用一个交互式的命令行界面来创建、配置和管理您的私有链。但是在最新版本的Geth中已经删除了用于以动开发的库和puppeth工具,这也就给我们搭建私链增加了负担。

前提条件

1、Geth正确安装,并且配置了环境变量等
2、Go安装正确,并且环境变量等配置正确
3、有时候注意有些文件的执行普通cmd没有用,需要以管理员启动cmd。
大家可以使用命令:geth version查看自己的配置信息是否正确,一下是我的配置信息。

C:\Users\HAO>geth version
Geth
Version: 1.11.5-unstable
Architecture: amd64
Go Version: go1.20.1
Operating System: windows
GOPATH=D:\GoApiTool
GOROOT=E:\SoftWare\Go

1、创建geth.json

直接创建一个json文件,名字自己定,在json内写入:

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

chainId可以选择一个相对来说大一点的数字。

2、创建一个nodedata文件夹

在geth.json文件的同级目录下创建一个nodedata文件夹,用于存放keystore等文件。
nodedata文件

3、指定json生成keystore

使用命令:geth --datadir nodedata --networkid 776211 --rpc init ./geth.json生成keystore等文件,networkid自己设置,避免节点碰撞即可。
成功以后就会在指定的文件中生成相关文件,geth是用于存放数据的,keystore是用于存放私钥的
生成geth和keystore

4、创建账号

执行命令: geth --datadir “nodedata” account new生成账号,这时候需要输入密码。请一定要记住这个密码,不要弄错了,后面马上用的上。这时候就会在keystore里面生成一个UTC开头的文件,文件不大。
在这里插入图片描述

5、创建passwd文件

注意先打开文件扩展名可见,具体打开方式可见下图:
显示文件扩展名
在geth.json文件的同级目录下创建一个passwd文件,不需要任何后缀,并且对这个文件进行编辑,输入自己创建账号时设置的密码,千万别输入错误了。(这个文件名和文件格式不是强制的,可以自己定义,后面要用,请记住文件名称)
创建passwd文件

6、创建nodestart一键启动文件

在json文件中创建一个nodestart.bat文件,是一个太坊 Geth 客户端的启动命令,用于启动一个具有完整同步模式的私有区块链,并在 HTTP 和 WebSocket 协议上开启 API。里面的具体内容是:

geth  --ethash.cachedir "D:\BlockChain\Ethash" --ethash.dagdir  "D:\BlockChain\Ethash"  --allow-insecure-unlock  --unlock=0  --password  ./passwd  --networkid  776211  --datadir  "nodedata"  --http --http.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net" --http.corsdomain="*" --http.port=8545 --http.addr="0.0.0.0"  --ws --ws.addr "0.0.0.0" --ws.port=8546 --ws.origins "*" --ws.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net" --syncmode full console

参数说明:
1、--ethash.cachedir "D:\BlockChain\Ethash":指定 Ethash 缓存目录的路径。
2、--ethash.dagdir "D:\BlockChain\Ethash":指定 Ethash DAG 目录的路径。
3、--allow-insecure-unlock:允许不安全的账户解锁方式。
4、--unlock=0:解锁账户的索引,这里是解锁第一个账户。
5、--password ./passwd:指定解锁账户的密码文件路径,这里是使用了名为 passwd 的文件。
6、--networkid 776211:指定节点所在的网络 ID。
7、--datadir "nodedata":指定节点数据存储目录的路径。
8、--http:启用 HTTP-RPC 服务。
9、--http.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net":指定 HTTP-RPC 服务要开放的 API。
10、--http.corsdomain="*":允许所有的来源访问 HTTP-RPC 服务。
11、--http.port=8545:指定 HTTP-RPC 服务的端口号。
12、--http.addr="0.0.0.0":指定 HTTP-RPC 服务绑定的 IP 地址。
13、--ws:启用 WebSocket-RPC 服务。
14、--ws.addr "0.0.0.0":指定 WebSocket-RPC 服务绑定的 IP 地址。
15、--ws.port=8546:指定 WebSocket-RPC 服务的端口号。
16、--ws.origins "*":允许所有来源访问 WebSocket-RPC 服务。
17、--ws.api "admin,debug,web3,eth,txpool,personal,ethash,miner,net":指定 WebSocket-RPC 服务要开放的 API。
18、--syncmode full:指定节点同步模式为完整模式,即下载所有区块。
19、console:启动控制台模式,可以在控制台中输入 Geth 命令与节点进行交互。
上述参数大家也可以据自己的需求和环境来适当地修改这些参数和选项,确保节点的启动和运行是正确的和安全的。

注意:上述代码之间的间隔,一定给要小心,如果在下一步双击启动的时候,直接闪过就说明可能是存在应该有空格的位置没有空格情况。

到这就基本完成了,这时候双击nodestart.bat文件进行初始化,第一次启动可能需要稍微久一点,会在刚才指定的Ethash 缓存目录中加载缓存,好像文件还挺大的,有个几个G。

补充:关于ChatGPT

创世纪块json文件我们可以通过百度,谷歌等浏览器进行搜索,反正还是挺多的,我们也可以借助最近超火的ChatGPT,让它生成一个创世纪json文件。

问题回答说明: 请将 <address> 替换为您想要设置为预先分配的地址,可以有多个地址,每个地址的初始余额也可以不同。这里给出的创世纪 JSON 文件包含了一些基本的参数设置,您可以根据需要进行修改。另外,需要注意的是,如果您选择的网络 ID 与公共以太坊网络的网络 ID 相同,那么您在启动私有链时需要加上 --networkid <your_network_id> 参数来指定您的私有链网络 ID。


http://chatgpt.dhexx.cn/article/jjEGOs6n.shtml

相关文章

Geth安装

结合了网上各种文章&#xff0c;经过十多个小时的失败&#xff0c;期间还把虚拟机搞得开机不了&#xff0c;但终于成功的安装了geth。下面我会展示我遇到的问题和解决方案 目录 1.系统环境 2.安装基础工具 3.安装cmake 4.安装Golang 5.防火墙及网络时间同步 6.进入geth …

Geth控制台常用命令

1、Geth控制台命令 Geth Console是一个交互式的JavaScript 执行环境,里面内置了一些用来操作以太坊的JavaScript对象&#xff0c;我们可以直接调用这些对象来获取区块链上的相关信息。 这些对象主要包括: # 主要包含对区块链进行访问和交互相关的方法 eth# 主要包含查看p2p 网…

geth控制台控制

目录 geth控制台控制 启动控制台&#xff1a;输出结果直接显示 启动控制台&#xff1a;控制台输出结果写入 output.log 文件&#xff0c;但不能连接MetaMask 退出控制台 常用命令 开始挖矿 停止挖矿 转账 问题&#xff1a;出现报错 password or unlock 问题&#xff1…

geth的安装和使用

geth的安装和使用过程 windows下安装Geth配置和使用搭建私有网络 windows下安装Geth 1.下载地址&#xff1a; https://geth.ethereum.org/downloads/ 下载windows版 2.按指示安装 3.在cmd下进入安装路径&#xff0c;输入geth help查看是否安装成功 出现下面情况表示安装成功…

使用Geth搭建多节点私有链

使用Geth搭建多节点私有链 步骤 1.编辑初始化配置文件genesis.json {"config": {"chainId": 6668,"homesteadBlock": 0,"eip150Block": 0,"eip150Hash": "0x000000000000000000000000000000000000000000000000000000…

以太坊编程-Geth

前提&#xff1a;开发环境为Windows版本 一、下载安装 geth安装官网地址&#xff1a;https://geth.ethereum.org/downloads/ 安装时&#xff0c;根据提示一步一步安装即可 安装完成之后&#xff0c;需要进行配置环境变量 二、创世区块部署 新建.json文件&#xff1a;新建记事…

以太坊开发--geth的使用入门

geth的全称是go-ethereum,是一个以太坊客户端&#xff0c;用go语言编写&#xff0c;应该是目前最常用的客户端。当然以太坊客户端还有用C,Ruby,Python,Java等其他多种语言编写的&#xff0c;不同类型的客户端是为了满足不同的需求场景。今天我们主要来介绍geth&#xff08;发音…

Geth安装和使用

一、简介 Geth是Go Ethereum开源项目的简称&#xff0c;它是使用Go语言编写且实现了Ethereum协议的客户端软件&#xff0c;也是目前用户最多&#xff0c;使用最广泛的客户端。通过Geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能…

GETH的安装和使用(Windows)

目录 一、Geth介绍 二、Geth安装 1.下载安装 2.配置环境变量 三、Geth私有链搭建 1.创建创世块文件 2.初始化区块链 3.启动私有节点 四、账户交易 1.创建账户 2.挖矿操作 3.查看区块和奖励 ​ 4.转账交易 一、Geth介绍 Geth 又名Go Ethereum.是以太坊协议的三种实现…

最长上升子序列 详解

最长上升子序列 时间限制: 10 Sec 内存限制:128 MB 题目描述 给定一个序列&#xff0c;初始为空。现在我们将1到N的数字插入到序列中&#xff0c;每次将一个数字插入到一个特定的位置。我们想知道此时最长上升子序列长度是多少&#xff1f; 输入 第一行一个整数N&#xff0c;…

最长上升子序列(二分)

最长上升子序列 给定一个长度为 N 的数列&#xff0c;求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N。 第二行包含 N 个整数&#xff0c;表示完整序列。 输出格式 输出一个整数&#xff0c;表示最大长度。 数据范围 1≤N≤100000&#xff0c; …

C++最长上升子序列

最长上升子序列简介 题目描述 现有数列a1&#xff0c;a2&#xff0c;a3……aN。在其中找到严格递增序列ai1&#xff0c;ai2&#xff0c;ai3&#xff0c;……aiK&#xff08;1 < i1 < i2 < i3 < …… < iK < N&#xff09;&#xff0c;请找出序列a的最长上升…

LIS最长上升子序列

给定一个数组 &#xff0c;让你找出一个最长上升子序列的长度&#xff0c;例如[1,4,6,2,3,5] 答案为4&#xff1a;[1,2,3,5]。 我们用DP[i]表示以下标为i的元素结尾的子序列的最长上升子序列长度 代码如下&#xff1a; ll p[10010]; ll dp[10010]; int main() {ll n, ans 0…

最长上升子序列优化

引言 上次我们说了基础的最长上升子序列&#xff08;看这一篇前可以先看一下最长上升子序列&#xff09; 这次&#xff0c;我们再说一下如何优化&#xff0c;提高效率 我们先来看一道模板题 题目&#xff1a; 题目描述 输入格式 输出格式 输入样例 3 1 3 2 输出样例 1 …

最长上升子序列(LIS)算法

LIS定义 LIS&#xff08;Longest Increasing Subsequence&#xff09;最长上升子序列 一个数的序列bi&#xff0c;当b1 < b2 < … < bS的时候&#xff0c;我们称这个序列是上升的。 对于给定的一个序列(a1, a2, …, aN)&#xff0c;我们可以得到一些上升的子序列(a…

11.最长上升子序列(LIS)

视频讲解&#xff1a;最长上升子序列_哔哩哔哩_bilibili 解题思路&#xff1a; 1.最长上升子序列的含义是从给定的数中选取尽量多的数字形成单调递增的序列 2.可以把以每一个数字形成单调结尾的方案数看待成一个子问题&#xff0c;然后对后面的子问题提供最优解 3.设定状态…

C++动态规划之最长上升子序列

1 子序列与上升子序列 1.1 子序列 一个序列A{a1,a2,...an}中任意删除若干项&#xff0c;剩余的序列叫做A的一个子序列。例如序列A{1,3,5,4,2}&#xff0c;删除其中的第3项和第5项&#xff0c;得到序列B{1,3,4}&#xff0c;删除其中的第3项和第4项&#xff0c;得到序列C{1&#…

最长上升子序列(c++图文详解)

这题思路是这样&#xff0c;假设这个序列长度为n&#xff0c;存在数组a中&#xff0c;maxlen[i]表示以第i个数为终点的最长上升子序列的长度&#xff0c;它被初始化为1&#xff0c;因为一开始单个字符的最长上升子序列都是1&#xff08;它自己&#xff09;&#xff0c;我们先用…

最长上升子序列(动态规划)

子序列 所谓的子序列就是在原来序列中找出一部分组成的序列。 与子段不同&#xff0c;不需要连续的某一段&#xff0c;但是要保持原序列的先后顺序 最长上升子序列 在子序列的基础上&#xff0c;后一项大于前一项。 【题目描述】 【输入格式】 【输出格式】 【输入样例】 1…

最长上升子序列 (LIS) 详解+例题模板 (全)

欢迎访问https://blog.csdn.net/lxt_Lucia&#xff5e;&#xff5e; 宇宙第一小仙女\(^o^)/&#xff5e;萌量爆表求带飞≡Σ((( つ^o^)つ~ dalao们点个关注呗&#xff5e; --------------------------------我只是一条可爱哒分界线------------------------------- 1.摘要&…