平台:ubuntu
首先先准备源码(从github上clone)
git clone --recursive https://github.com/ethereum/aleth.git
(若没有安装git则首先安装git,这里建议挂梯子,要不然速度会奇慢无比,一定要加—recursive,不然就只clone了个文件目录)
下载完以后,进入文件夹,
cd aleth
安装相关编译环境
sudo apt install cmake
sudo apt-get install libboost-all-dev libleveldb-dev libcurl4-openssl-dev libmicrohttpd-dev libminiupnpc-dev libgmp-dev
安装完成后开始搭建
sudo mkdir build
cd build
cmake ..
(别看掉那两个点,这一步需要花费点时间)
make
(这一步也需要点时间,半个小时左右)
make -j <number>
(number随便输入一个数字)
接下来安装控制台
方法一: 通过npm安装
sudo apt install npm
这里需要注意的是npm默认的node 版本过低,需要升级Node,
sudo npm install -g n
sudo n stable 7.10.0
node -v
若版本为7.10.0则升级成功。若升级不成功则尝试其他方法升级,或者挂个梯子再试一下。
安装ethconsole
sudo npm install -g ethereum-console
这里可能出现一个奇怪的bug,系统显示permission denied,这里有两种方法解决,
首先sudo chmod -R 755 “文件夹目录”
若失败则在安装命令那句后面加上一句 --perm-unsafe=true
检查安装是否成功,输入ethconsole
只要不出现command not found就行。
如果不管你挂不挂梯子,死活不能安装,这里还有方法二可以试一下。
方法二:用cnpm 安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g Ethereum-console
开始搭建私有链
cd aleth
新建一个json文件,取名为config,json
{
"sealEngine": "Ethash",
"params": {
"accountStartNonce": "0x00",
"homesteadForkBlock": "0x00",
"daoHardforkBlock": "0x00",
"EIP150ForkBlock": "0x00",
"EIP158ForkBlock": "0x00",
"byzantiumForkBlock": "0x00",
"networkID": "0x10",
"chainID": "0x10",
"maximumExtraDataSize": "0x20",
"tieBreakingGas": false,
"minGasLimit": "0x1388",
"maxGasLimit": "7fffffffffffffff",
"gasLimitBoundDivisor": "0x0400",
"minimumDifficulty": "0x00200000",
"difficultyBoundDivisor": "0x0800",
"durationLimit": "0x0d",
"blockReward": "0x4563918244F40000"},
"genesis": {
"nonce": "0x0000000000000042",
"difficulty": "0x400",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"author": "0x0000000000000000000000000000000000000000",
"timestamp": "0x5b5ae8f2",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
"gasLimit": "0x1388"
},
"accounts": {
"3282791d6fd713f1e94f4bfd565eaa78b3a0599d": {
"balance": "1337000000000000000000"
}
}
}
config.chainId // 区块链的ID,在 geth 命令中的 –networkid 参数需要与 chainId 的值一致
config.homesteadBlock // Homestead 硬分叉区块高度,不需要关注
config.eip155Block // EIP 155 硬分叉高度,不需要关注
config.eip158Block // EIP 158 硬分叉高度,不需要关注
coinbase // 矿工账号,第一个区块挖出后将给这个矿工账号发送奖励的以太币
difficulty // 难度值,越大越难
extraData // 附加信息随便填
gasLimit // gas 的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大
nonce // 一个 64 位随机数
mixhash // 与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hash
parentHash // 上一个区块的 hash 值
alloc // 预设账号以及账号的以太币数量,私有链挖矿比较容易可以不配置
输入
./aleth –-private “test” --config config.json -d data1 -v 4
--private 表明你要建一个私有链
--config 为你的配置文件
-d 为你的链要存放的地址
-v 为你的log等级,这个是方便你监测链运行情况的
接下来输入
cd data1
ethconsole data1
连接上你的链
至此,新建私有链的全部操作完成。至于后续步骤,请查阅以太坊控制台的操作。