1. 序言
在最近的项目开发中,遇到了搭建区块链的问题,这里以以太坊区块链为例,阐述一下区块链私有链的搭建教程。
2. 安装Go
- 到Go官网下载Go安包,下载地址https://golang.org/dl/
- 选取合适的下载版本,这里选
go1.16.2.linux-arm64.tar.gz
将文件上传至Ubuntu,并解压
tar -zxvf go1.16.2.linux-arm64.tar.gz
- 将解压后的文件夹,放到自己平常的安装包位置,并设置0777权限
sudo cp -rf go /usr/local
cd /usr/local
sudo chmod -R 0777 go
- 配置环境变量
创建工作目录,我选择创建在/home/hadoop目录下
mkdir GOPATH
sudo chmod -R 0777 GOPATH
使用sudo gedit ~/.bashrc
命令修改环境变量,在弹出的记事本中添加以下内容。同时也在GOPATH目录下创建src和bin目录
export GOROOT=/usr/local/go #GOROOT是系统上安装Go软件包的位置。
export GOPATH=/home/hadoop/GOPATH #GOPATH是工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
使环境变量生效并检测有效性
source ~/.bashrc
go version # 检测有效性
若控制台打印出go version go1.16.2 linux/amd64
即为安装成功。
3. 安装geth客户端
- 打开终端,依次执行以下命令
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum
安装完成后,在控制台输入geth -h
,若出现以下界面则为安装成功:
2. 创建创世块
一个区块链应该有个起始链,需要创建一个创世快文件genesis.json
,文件内容如下:
{
"config": {
"chainId": 666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"ethash": {}
},
"nonce": "0x0",
"timestamp": "0x5ddf8f3e",
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x47b760",
"difficulty": "0x00002",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": { },
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
具体字段含义大家可以去官网查找,这里就不一一赘述了。
3. 启动geth客户端
开启终端,输入命令
sudo geth --datadir data --networkid 20200321 --rpc --rpccorsdomain "*" --nodiscover --port 16333 --rpcport 8546 console --allow-insecure-unlock --rpcapi=eth,web3,admin,personal,net --rpcaddr "0.0.0.0"
其中--rpcport 8546
代表rpc端口,系统默认是8545
;rpcapi=eth,web3,admin,personal,net
代表作用域权限;--rpcaddr "0.0.0.0"
允许所有ip访问。
如图所示代表创建成功:
4. 创建账户并挖矿
在控制台的命令行界面输入以下命令,即可创建账户并进行挖矿
> personal.newAccount("123456") # 123456为账户密码
# 输出 0x****************************************** 账户名
> eth.coinbase # 查看账户
> miner.start(1) # 开始挖矿
> miner.stop() # 停止挖矿
> web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]),"ether") # 查询账户余额
上面就是关于以太坊区块链私有链的创建,后续的博客会陆续更新最新教程(本人也在学习)。在这里插入代码片