您的位置:首页 > 其它

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

2016-12-01 17:00 316 查看
本篇文章主要结合之前文章提到的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()

最后查看账户二的余额



通过以上操作我们能基本了解以太坊区块链技术的工作原理,下会我们将基于此做智能合约的编写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息