Mware+Centos7 搭建Geth开发环境

标题


前言

在VMware上搭建开发环境,请保证VMware网络配置完成(可以上网、可以ping通物理机!!!!!!)配置过程可以参考这篇文章

使用MateMask连接环境

一、环境配置

1.基本工具下载

在后续过程中会使用到一下工具,所以事先下载

yum -y install wget
yum -y install git

如果出现cannot find a valid baseurl for repo:base/7/x86_64错误的话,是需要更换yum源。

可以参考文章yum换源
需要传送文件到虚拟机中的话可以参考这篇文章:如何在windows登录VMware Workstation Pro以及从windows向VMware Workstation Pro传输文件

2.搭建环境

安装GO

cd /usr/local
wget https://go.dev/dl/go1.20.3.linux-amd64.tar.gz
tar   -zxvf  go1.20.3.linux-amd64.tar.gz   -C /usr/local/

创建软链接

ln -s /usr/local/go/bin/go  /usr/bin/go

添加环境变量,使用vi命令在/etc/profile的最后添加以下内容

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/go
export PATH=$PATH:$GOPATH/BIN

更新环境变量

source /etc/profile

可以通过go version 来验证安装是否成功

安装GETH

下载geth源码

cd /usr/local/
git clone https://github.com/ethereum/go-ethereum.git

这里下载的是最新的代码,需要的可以使用git命令切换版本。(本文使用版本是1.14.6)
commit id 可以在geth的github中去查找

git checkout <commit_id>

编译源码

cd /usr/local/go-ethereum
make all

如果失败(卡在某一步不动了),尝试修改go的代理后再编译

go env -w GOPROXY=https://goproxy.cn

创建geth的软链接

ln -s /usr/local/go-ethereum/build/bin/geth /usr/bin/geth

可以使用geth version命令验证安装是否成功

二、搭建开发环境

1.相关说明

本文使用的是GETH 1.14.5版本,这一版本可以直接开启开发者模式。
虽然没有创建账号,但是在启动后仍会显示一个包含单个地址的数组。这是“开发者”帐户。开发者地址是本地网络创始时创建的以太币总量的接收者。如果先前已经创建创建了开发者账号,需要使用 --password 来指定密码的文件(具体使用后面有实例)。

也可以使用genesis.json文件自定义配置。在开发模式下使用自定义创世区块配置。要获取兼容配置,请运行geth --dev dumpgenesis。生成的创世区块具有权益证明,并且所有预合并硬分叉均在区块 0 处激活。预编译地址已获得资助,以防止它们根据 EIP158 从状态中删除。
具体细节可以看官方文档>>链接<<

2.启动

创建目录,相关文件都会存在这个文件里面

mkdir myChain
cd myChain

创建开发者账号(会要求输入密码)

geth --datadir db -dev account new 

在 /usr/local/myChain 目录下创建password.txt文件,内容为先前创建的开发者账号的密码
而后可以使用以下命令,以开发者模式启动

geth --datadir db --rpc.enabledeprecatedpersonal --nodiscover console 2>>eth_output.log --dev --dev.period 1 --password password.txt

解释一下参数

参数意义
–datadir数据目录,指定数据目录,否则在退出区块链之后状态会,先前数据将会消失
–rpc.enabledeprecatedpersonalpersonal命令已经弃用(但是我觉得好用)加这个参数可以继续使用这个命令
–nodiscover表示私有,不会被公网上发现
console启动命令行模式
2>>eth_output.log会把日志打印到eth_output.log文件中,可以用putty再开个界面用 taill -f eth_output.log 实时查看日志
–dev以开发者模式启动
–dev.period 1开启的模式,0代表有交易上来才产生新的块 其他数字也可:如1表示平均1秒产生一个新的块
–password密码

输入上述指令后会进入控制台,可以使用如下指令创建其他的测试账户

web3.personal.newAccount("<password>")

可以使用以下命令查看当前的账户

web3.eth.accounts

同时还可以将他作为数组使用,如查看账户余额时可以使用

web3.eth.getBalance(eth.accounts[0])

二、外部连接

1.启动方式

如果需要连接到的话需要再启动时添加一些参数,指令如下

geth --datadir db --networkid 1314  --rpc.enabledeprecatedpersonal --nodiscover console 2>>eth_output.log -dev --dev.period 1 --password password.txt --http.addr 192.168.106.3 --http.port 8545 --http.corsdomain "*" --http --http.api="db,eth,net,web3,persinal"

解释一下参数(之前解释过的不加赘述)

参数意义
–networkid 1314网络id,如果有genesis.json的话需要与genesis.json中的一致
–http.addr 192.168.106.3节点的地址(虚拟机的IP地址)
–http.port 8545RPC端口
–http.corsdomain “*”接收远程RPC连接的地址的范围,*表示任意地址
–http启动RPC服务
–http.api=“db,eth,net,web3,persinal”通过RPC可以调用的API

2.MateMask连接

在连接之前首先需要配置防火墙,我图方便直接关闭了,指令如下

sudo systemctl stop firewalld

在MateMask中通过 设置>>网络>>添加网络进入一下界面
在这里插入图片描述
其中网络名称与货币符号自定义,ID为先前的network,RPC URL是虚拟机的IP+启动时指定的RPC端口。

3.MateMask账号导入

首先把/usr/local/myChain/db/keystore 保存在windows上。
可以使用以下命令把db压缩打包

tar -czvf db.tar.gz db

在windows的cmd中使用scp拉取这个文件,成功之后再解压。

scp <centos的用户名>@<centos的ip>:/usr/local/mychain/db.tar.gz <windows中的路径>

在MateMask中按照如下步骤操作,之后导入keystore中的要导入的账户的对应的文件,输入创建账户时设置的密码就可以了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


参考文章

搭建(非常详细!!!)
运维系列:centos7 yum安装使用时提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法(亲测有效☆)
在 GitHub 上克隆历史版本的代码
geth常见报错:personal已经弃用
《solidity智能合约开发技术与实战》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值