搭建以太坊私链
ubuntu 下搭建以太坊私链
1. 安装以太坊客户端
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
2. 初始化
编写创世纪文件
{
"nonce": "0x0000000000000042",
"config": {
"chainId": 1123,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0x80000000",
"difficulty": "0x10",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": { }
}
- nonce:一个64位随机数,用于挖矿。
- mixhash:与nonce配合用于挖矿,由上一个区块的一部分生成的hash。
- difficulty:设置当前区块的难度。哈希验证时,哈希值的前几位必须与difficulty相同。
- alloc: 用来预置账号以及账号的以太币数量。
- coinbase:矿工的账号。
- timestamp:设置创世块的时间戳。
- parentHash:上一个区块的hash值。
- extraData:附加信息,随便填。 1.6版本以后,信息必须为十六位字符串
- gasLimit:该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总。
编写启动脚本
geth --identity "newEth" --rpc --rpccorsdomain "*" --datadir "cdata2" --port 30304 --rpcapi "personal,db,eth,net,web3" --networkid 999 --rpcport 8081 console
-
identity :区块链的标示,用于标示目前网络的名字
-
init:指定创世块文件的位置,并创建初始块
-
datadir:设置当前区块链网络数据存放的位置
-
port:网络监听端口
-
rpc:启动rpc通信,可以进行智能合约的部署和调试
-
rpcapi:设置允许连接的rpc的客户端,一般为db,eth,net,web3
-
networkid:设置当前区块链的网络ID,用于区分不同的网络,是一个数字
-
console:启动命令行模式,可以在Geth中执行命令
由于两个节点设置在一个主机上,必须使用不同的端口
启动节点
用之前创建的创世纪文件 init.json对私链进行初始化
datadir为区块链的网络数据存放文件,这用cdata1
启动之前编写的启动脚本start.sh
geth --datadir "cdata1" init init.json
sh start.sh
注意启动第二个节点的时候,更改一下启动脚本里设置的端口,以防端口冲突
3.节点通信
1、首先要保证节点之间是可以互通互联的 2、需要有相同的创世纪文件 3、需要有相同的netwokid
评论
发表评论