geth搭建私链小结

2018-09-21  本文已影响0人  kindol

写入创世区块

geth --datadir data0 init genesis.json

genesis.json作为区块链的头部,genesis.json部分内容举例如下

{
  "config": {
        "chainId": 10, 
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

字段解释:

head.png

--datadir data0表示存储私有链节点的文件夹,拷贝genesis.json到/home/kindol/eth 文件夹下,方便命令行操作

在运行以上语句之后,会有在data文件夹下产生两个新的文件夹,geth和keystore两个文件夹,其中geth/chaindata目录中存放的是区块数据keystore存放的是账户数据

启动私有链节点

geth --datadir data0 --networkid 1108 console

接着会进入一个交互式Javascript执行环境,这些对象主要包括:

geth console的使用

挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户,使用

要想使挖矿奖励进入其他账户,通过miner.setEtherbase()将其他账户设置成coinbase即可:

默认情况下,getBalance()返回值是wei,wei是以太币的最小单位,要查看有多少个以太币,可以使用如下换算:

发起交易

从user0转移5个以太币到user1中

user0 = eth.accounts[0]
"..."
amount = web3.fromWei(5, 'ether')
"..."
personal.unlockAccount(user0)
"..."
eth.sendTransaction({from:user0, to:user1, value:amount})
> txpool.status
{
  pending: 1,       //已经提交但还未被处理的交易
  queued: 0
}

要使交易被处理,必须要挖矿。这里我们启动挖矿,然后等待挖到一个区块之后就停止挖矿:

miner.start(1); admin.sleepBlocks(1);miner.stop();

结果如下:

> txpool.status
{
  pending: 0,
  queued: 0
}

再次查看user1,发现已经获得了5个比特币

web3.fromWei(eth.getBalance(user1), 'ether')
5

查看交易和区块

创建私有链集群

先启动一个节点,注意私有链的节点networkid必须一致

geth --datadir data0 --networkid 1111 console

再打开一个终端,初始化第二个节点:

geth --datadir data1 --networkid 1111 init genesis.json
geth --datair data1 --networkid 1111 --port 30304 --bootnodes "填入从另一个节点获得的encode url"

注意当中的url的ip需要设置@[::]当中的内容为对应机子的ip

推荐阅读:

https://blog.csdn.net/jomozz/article/details/79528741
https://blog.csdn.net/w88193363/article/details/79402074

注:区块链学习新人,若有不正确的地方,望指出

上一篇下一篇

猜你喜欢

热点阅读