以太坊私链的搭建可以直接通过下载程序进行安装,也可以通过编译源码安装,本文介绍通过编译源码进行安装。
编译源码
1.准备环境
我们下载的是go语言的源码,首先需要正确的安装go语言环境,如何正确安装go语言环境,大家可以去网上找教程。
2.下载源码
可以通过go命令行来下载
go get github.com/ethereum/go-ethereum
也可以通过git工具或直接去官方git https://github.com/ethereum/go-ethereum 载源码,源码一般放在go的源码文件下。
3.编译源码
//进入源码文件夹
cd /你的路径/go-ethereum
make geth 或者 make all
提示:在安装编译中可能会报“exec: "gcc": executable file not found in %PATH%”
错误,是因为没有GCC环境导致的,搜索报错信息就能找到解决的办法。
GCC下载
编译成功如下图所示:
4.配置环境变量
从编译成功的截图我们可以看到,如果要启动geth需要到相应的路径下执行命令,所以我们需要配置环境变量
vi ~/.bash_profile
# 打开配置文件,把以下内容添加到文件中
export GETH="$GOPATH/src/github.com/ethereum/go-ethereum/build"
export PATH="$PATH:$GETH/bin"
检查是否安装成功
geth --help
输出如下内容,则表示安装成功了。
搭建私链
1.创建私链数据存放目录
//原则上可以在任何地方创建文件夹,但尽量不要在需要管理员权限的路径下创建文件夹,避免不必要的麻烦
mkdir /文件路径/ethprivatechain
//data用于存放账户和区块数据
mkdir /文件路径/ethprivatechain/data
2.进入刚刚创建的文件夹,使用命令启动私链
> geth --datadir data --nodiscover console
geth默认端口为8545和30303,mac下可以使用如下命令查看
lsof -i :30303
3.创建两个账户
方便后期测试转账,所以创建两个账户
> personal.newAccount("111111")
//出现的一串字符,为创建的账户地址
"0x16dd83d69d8908109da5ce386a924a2b0fdbe80e"
> personal.newAccount("123456")
"0xaa33b3a596af305e9618777b921570dd1a25215f"
4.查询余额
> eth.getBalance(eth.accounts[0])
//查询结果
0
5.退出geth控制台
> exit
//输出信息
INFO [09-04|15:13:19.802] IPC endpoint closed endpoint=/Users/cyril/Desktop/ethprivatechain/data/geth.ipc
INFO [09-04|15:13:19.803] Blockchain manager stopped
INFO [09-04|15:13:19.803] Stopping Ethereum protocol
INFO [09-04|15:13:19.803] Ethereum protocol stopped
INFO [09-04|15:13:19.803] Transaction pool stopped
INFO [09-04|15:13:19.806] Database closed database=/Users/cyril/Desktop/ethprivatechain/data/geth/chaindata
创建创世区块
1.在ethprivatechain下新建genesis.json
{
"alloc": {
"0x16dd83d69d8908109da5ce386a924a2b0fdbe80e": {
"balance": "100000000000000000000000000"
}
},
"config":{
"