一步一步学区块链(4)创建自己的私链

本篇文章主要结合之前文章提到的geth客户端,讲解如何构建自己的私链,以及在上面进行账户管理和转账交易。


1.创世块文件

区块链上第一个区块叫做创世块,创建我们私链的时候可通过创世块配置文件来声明和定义。把以下文件内容存储为genesis.json文件

{
   "coinbase": "0x0000000000000000000000000000000000000000",
   "config": {
      "homesteadBlock": 5
   },
   "difficulty": "0x20000",
   "extraData": "0x",
   "gasLimit": "0x2FEFD8",
   "mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578",
   "nonce": "0x0",
   "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
   "timestamp": "0x00",
   "alloc": {
      "dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6":{
         "balance":"100000000000000000000000000000"
      }
   }
}

2.创建私链

打开命令行,定位到保存私链的文件地址路径,初始化私链,打开私链

如需通过初始化文件配置账户的默认以太币数量,可先在控制台新增用户,并将账户地址替换到genesis.json的alloc中
dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6,然后重新执行 geth --datadir "privateChain" init genesis.json ,
另外一种方式就是新增账户后,执行挖矿  miner.start()  开始挖矿,miner.stop() 停止挖矿,期间挖的以太币会自动存储到
第一个账户中。

操作命令如图


私链创建成功


进入控制台


新建一个用户并查看他的余额


将新建用户的地址修改到genesis.json文件中,并重新geth --datadir "privateChain" init genesis.json ,进入控制台查看用户余额

3.账户管理

在命令行中我们可以再创建一个账户,用于后面的交易。


4.交易

通过命令行将一个账户的余额转到第二个账户,并查看是否到账。首先解锁各个用户的状态,然后定义一个变量接受账户地址
(不定义也可以,定义看起来更简洁)
注意交易会花费gas,所以看到账户一加上账户二的余额是没有之前的总额够的。另外由于交易必须启动挖矿才能同步到到区块中,
顾交易完成后需要启动挖矿。由于私有链环境,挖矿难度很低,启动挖矿后会增加账号一的以太币。


然后执行

miner.start()

过一会之后停止挖矿,查看交易是否完成

miner.stop()
最后查看账户二的余额



通过以上操作我们能基本了解以太坊区块链技术的工作原理,下会我们将基于此做智能合约的编写。

猜你喜欢

转载自blog.csdn.net/jwter87/article/details/53423634
今日推荐