以太坊Geth搭建私有链

私有链初始化:

  1. 新建文件夹,本文在C:\Users\15857\AppData\Roaming\Ethereum位置新建文件夹private-eth。并在该文件夹下新建json文件genesis.json,文件的内容为:
{
  "config": {
        "chainId": 666,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

2. 然后初始化私有链网络。第一次遇到问题:

以太坊Geth搭建私有链_第1张图片

第一次是因为之前运行了以太坊的公有链,默认数据存放文件夹已经有创世区块。第二次规定了新建的私有链的数据文件存放位置,创建成功,如下图:

以太坊Geth搭建私有链_第2张图片

3. 启动节点

命令为geth --datadir ./data/00 --networkid 666 console //这个666是私有链的id,要和genesis.json文件中的chainid一致,并且不能设置为1(以太坊主网id)。结果如下:

以太坊Geth搭建私有链_第3张图片

4. 私有链搭建完毕,然后使用personal.newAccount("123456")添加私有链中的账户 ,输入参数123456就是密码,账户地址保存在keystore目录下 。账户密码是以hash-128的密文形式存储的。

以太坊Geth搭建私有链_第4张图片

私有链挖矿:

1. 使用miner.start(x)开始挖矿,x是挖矿的内核数可以不填。

以太坊Geth搭建私有链_第5张图片

2. 然后使用miner.stop()停止挖矿。

以太坊Geth搭建私有链_第6张图片

3. 然后我们就可以通过eth.getBalance(eth.accounts[0]) 查看挖矿账户余额(单位是wei),默认的挖矿账户是当前账户列表中的第一个。可以通过web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')将wei转换成ether。

以太坊Geth搭建私有链_第7张图片

注意:我们可以使用miner.setEtherbase(eth.accounts[1]) 设置挖矿账户;通过eth.coinbase查看挖矿账户;通过miner.start();admin.sleepBlocks(1);miner.stop() 设置账号成功挖到一次矿后就停止。

4. 我们可以通过eth.blockNumber查询私有链中的区块数量,通过eth.getBlock(X)来获取区块内容。

以太坊Geth搭建私有链_第8张图片

 

私有链交易:

1. 再产生一个账户准备接受代币

2. 发送交易:在交易过程中,无论交易的代币是什么,都需要把这些代币转为 wei 存储在以太坊区块链中。所以我们首先要确定转账数量amount,之前挖矿的时间有点长了,现在账户0 有4655个币,挖出来931个区块。那就先转2000个币给账户1吧。

以太坊Geth搭建私有链_第9张图片

当然,其中的eth.account[0]和[1]可以用地址替代,amount也可以直接使用web3.toWei(2000,’ether’)。发生错误的原因是发起交易的账户必须解锁。

3. 解锁,发送交易:当然也可以使用personal.unlockAccount(地址,密码)的方式解锁。重新发送成功。

以太坊Geth搭建私有链_第10张图片

4. 不过,目前账户1是看不到账户0给他的转帐的,因为没有产生新的区块。于是,再让账户0产生一个新区块。

以太坊Geth搭建私有链_第11张图片

5. 再看一下两个账户的金额

以太坊Geth搭建私有链_第12张图片

6. 再看一下区块信息

以太坊Geth搭建私有链_第13张图片

7. 再看下交易信息

以太坊Geth搭建私有链_第14张图片

geth操作类型总结:

eth:包含一些跟操作区块链相关的方法

net:包含以下查看p2p网络状态的方法

admin:包含一些与管理节点相关的方法

miner:包含启动&停止挖矿的一些方法

personal:主要包含一些管理账户的方法

txpool:包含一些查看交易内存池的方法

web3:包含了以上对象,还包含一些单位换算的方法

参考:

  1. https://www.cnblogs.com/WPF0414/p/10046481.html
  2. https://blog.csdn.net/piqianming/article/details/79600848###
  3. http://www.mamicode.com/info-detail-2276514.html?__cf_chl_jschl_tk__=9c3ab1400d2a9ad5290b72533ccf28191cea9c75-1585464740-0-Ad9WZSHBRz_NLdgJtIKro3tgCdjzoebshv0UjtS_5q----AGw3d8VBwjMYhHfi3Bn6wdYmhD0VV7eeIlpCl-8UVX9jdzOLBZCFsfgnFyefPZrlHqfDG1Af2zqP74Q_IrvxbcRiUA3e9ZDfWsure6PMJSC6a3VGC4eLqUOSm_aVtbSpLMcxgtjzD3sLeRFDr7cMF9j12-PgUymzEtMcDhmSZfLsXort_fUEnC7p3PuHnXrNYnnR4LdhQ0A38r0QxttVpnMQGOiVDJ0-h1qVdK9d5dsDNhk0pw80vZhuS0GAw4-B9WamnAZdigmEi7VsTv3Q

 

你可能感兴趣的:(区块链技术)