一、前言
1、区块链选型
本次选型我们采用以太坊技术构建我们的私有链。
2、技术路线
以太坊Etherrum私有链,是开源的有智能合约的公共区块链平台。
goethereum简称geth
二、安装
1、环境和版本
系统环境:Centos7.4.1708,4核-8G-500G
geth版本:geth-linux-amd64-1.10.13-7a0c19f8.tar.gz
2、安装指令
#创建软件下载目录
mkdir /u01/softs
#进入软件下载目录
cd /u01/softs
#下载安装包
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.13-7a0c19f8.tar.gz
#解压安装包
tar zxvf geth-linux-amd64-1.10.13-7a0c19f8.tar.gz
#创建快捷指令目录
mkdir -p /etc/profile.d/go-ethereum
#复制快捷指令
cp /u01/softs/geth-linux-amd64-1.10.13-7a0c19f8/geth /etc/profile.d/go-ethereum/
#给上可执行权限
chmod +x /etc/profile.d/go-ethereum/geth
#写入环境变量
echo ‘PATH=$PATH:/etc/profile.d/go-ethereum/’ >> /etc/profile
#初始化环境变量
source /etc/profile
#测试查看geth版本
geth version
3、设置创世块
#创建数据存储目录
mkdir -p /u01/geth/data
#创建创世块初始化配置
vi /u01/geth/genesis.json
{
“config”: {
“chainId”: 20211201011,
“homesteadBlock”: 0,
“eip150Block”: 0,
“eip155Block”: 0,
“eip158Block”: 0,
“byzantiumBlock”: 0,
“constantinopleBlock”: 0,
“petersburgBlock”: 0,
“ethash”: {}
},
“difficulty” : “1”,
“gasLimit” : “8000000”,
“alloc”: { }
}
#初始化创世块
geth –datadir /u01/geth/data init /u01/geth/genesis.json
4、时间同步
ntpdate cn.pool.ntp.org
echo ‘0 0 * * * root ntpdate cn.pool.ntp.org prefer’ >> /etc/crontab
service crond restart
5、挖矿
#进入控制台
geth –datadir /u01/geth/data –networkid 20211201011 console
#查看块高度
eth.blockNumber
#创建密码为123456的账号
personal.newAccoute(“123456”)
#查看账号余额
eth.getBalance(“此处输入账号”)
#设置Pow基础账号
miner.setEtherbase(“此处输入账号”)
#开启Pow进程
miner.start(4)
#停止Pow进程
miner.stop()
三、常用指令
#直接启动控制台
geth –datadir /u01/geth/data –networkid 20211201011 –http –http.corsdomain=\”\” –http.api web3,eth,debug,personal,net –http.addr ‘0.0.0.0’ –cache 1024 -vmdebug –nat extip:30.4.1.1 console
#制作启动配置文件
geth –datadir /u01/geth/data –networkid 20211201011 –http –http.corsdomain=\”\” –http.api web3,eth,debug,personal,net –http.addr “0.0.0.0” –cache 1024 -vmdebug dumpconfig > /u01/geth/config.toml
#后台执行
nohup geth –config /u01/geth/config.toml >> /u01/geth/geth.log 2>&1 &
#进入控制台
geth attach /u01/geth/data/geth.ipc
#工具要用http的链接不能用https的
链接要采用http://remix.ethereum.org/