Ubuntu22.04搭建以太坊私链

目录

一、在云服务器搭建自己的私链

1.安装go(下载版本至少1.9以上的go)

​编辑2.解压压缩文件

3.将解压后的文件夹,放到自己平常的安装包位置,并设置0777权限

4.配置环境变量

5.更改go的代理

6.创建go文件夹将go-ethereum源文件放入

7.克隆git

8.编译以太坊

9.增加geth目录到环境变量

10.这里的位置需要填写你的 go-ethereum 下载时存放的位置,路径改为自己的

11.环境载入

12.创世块genesis.json

13.在创世块文件目录下初始化创世块

14.启动私链

一、在云服务器搭建自己的私链

(15条消息) Ubuntu 中搭建以太坊区块链私有链(一)ubuntu搭建以太坊私链sanrenhe-zjut的博客-CSDN博客

1.安装go(下载版本至少1.9以上的go)

本地下载上传服务器

scp ./go1.14.4.linux-amd64.tar.gz cc@自己的服务器地址:/home/cc

2.解压压缩文件

tar -zxvf go1.16.2.linux-arm64.tar.gz

3.将解压后的文件夹,放到自己平常的安装包位置,并设置0777权限

sudo cp -rf go /usr/local
cd /usr/local
sudo chmod -R 0777 go

4.配置环境变量

创建工作目录,我选择创建在/home/cc目录下

mkdir GOPATH
sudo chmod -R 0777 GOPATH

使用sudo gedit ~/.bashrc命令修改环境变量,在弹出的记事本中添加以下内容。同时也在GOPATH目录下创建src和bin目录

export GOROOT=/usr/local/go #GOROOT是系统上安装Go软件包的位置。
export GOPATH=/home/cc/GOPATH #GOPATH是工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
source ~/.bashrc
go version # 检测有效性

5.更改go的代理

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

6.创建go文件夹将go-ethereum源文件放入

cd ~
mkdir go

7.克隆git

git clone https://gitee.com/gitee-chao/go-ethereum.git

8.编译以太坊

cd go-ethereum
make geth

9.增加geth目录到环境变量

vi /etc/profile

10.这里的位置需要填写你的 go-ethereum 下载时存放的位置,路径改为自己的

export PATH=$PATH:~/go/go-ethereum/build/bin

11.环境载入

source /etc/profile

12.创世块genesis.json

{
  "config": {
    "chainId": 3584,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "ethash": {}
  },
  "difficulty": "1",
  "gasLimit": "8000000",
  "alloc": {
        "0x42b080f8158F9481f0Ad2642FdD5164c7DB400De":{"balance":"10000000000000000000000"}
  }
}

chainID: 创建新的 EVM 链时,需要在 genesis 文件中指定 ChainId。这个 ChainId 最好不要和现有任何已经在公开运行的 EVM 链的 ChainId 相同,否则可以一个配置失误就误花掉一笔钱。下面是一个 genesis 文件配置示例。已经被占用的 ChainId 可以通过这个列表查看。

13.在创世块文件目录下初始化创世块

geth --datadir ./data init genesis.json

14.启动私链

geth --datadir ./data --port 30303 --networkid 3584 console --http --http.addr 172.26.6.43 --http.port 8545 console --allow-insecure-unlock

172.26.6.43:代表你自己云服务器的内网ip地址(云服务器上查看)

NetworkID 3584 : 以太坊中networkID在节点握手的时候会判断,主网,测试网使用不同的配置,从而达到网络隔离。

2>output.txt:使输出存在output.txt里面

启动成功界面:

关于chainID和networkID的关系:

  1. ChainId 是用来防止交易在不同的以太坊同构网络进行交易重放的。主要在交易签名和验证的时候使用;

  2. NetworkId 是用来标识区块链网络的。主要在节点之间握手并相互检验的时候使用;

  3. ChainId 需要在 genesis 文件中指定,NetworkId 需要在启动参数中指定;

  4. ChainId 和 NetworkId 的值不需要相同。但最好一致,以免我们记忆混乱。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值