创建一个私有链实现挖矿转账功能

第一步、准备工作

先创建一个privatechain的文件夹,进入privatechain文件夹创建一个genesis.json文件(用来存放创世区块的信息)和一个data0文件夹(主要是用来存放区块链数据)以太坊官方文档中对创世区块有明确的定义的,直接将下面的代码复制进genesis.json中就好。

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

第二步、初始化、写入创世区块

$ cd privatechain
$ geth --datadir data0 init genesis.json

上述命令主要是init,讲创世区块信息写入私有链中,保存在data0文件夹里面,这时可以发现data0里面多了gethkeystore文件

第三步、启动私有链节点

输入geth --datadir "./data0" --nodiscover console 2>>geth.log --dev.period 1
在之前的版本中是不需要加--dev.period 1命令就可以自动挖矿,在后面的版本中period值默认为0,只有发送交易才会自动挖矿,所以这里我们改下默认值让它在没有交易发生时也可以挖矿。可以参考https://blog.csdn.net/wo541075754/article/details/79260040
进入命令行模式,其中参数
–datadir 代表文件夹地址(data0),
–nodiscover 代表该链条不希望被其他节点发现,
console >> geth.log 代表将控制台输出到文件geth.log中去
当然从命令行模式退出,也很简单,只要打入exit, 即可退出

...
Welcome to the Geth JavaScript console!

出现上述代码即成功进入控制台

探索Javascript Console

进入以太坊Javascript Console后,就可以使用里面的内置对象做一些操作,这些内置对象提供的功能很丰富,比如查看区块和交易、创建账户、挖矿、发送交易、部署智能合约等。接下来介绍几个常用功能,下面的操作中,前面带>的表示在Javascript Console中执行的命令。

一、创建账户

前面只是搭建了私有链,并没有自己的账户,可以在js console中输入eth.accounts来验证:

> eth.accounts
[]
> personal.newAccount()
Passphrase: 
Repeat passphrase: 
"0x0416f04c403099184689990674f5b4259dc46bd8"

二、查看账户余额

eth对象提供了查看账户余额的方法:

> eth.getBalance(eth.accounts[0])
0

三、启动&停止挖矿

通过miner.start()来启动挖矿:

>eth.blockNumber
>miner.start()
null
>>eth.blockNumber
>miner.stop()

这里miner.start()返回值为null不代表没有挖矿,我们可以通过eth.blockNumber来查看前后的区块数量才判断是否挖了矿(tip:挖矿速度与电脑性能相关,如果没有挖矿成功可以试着多等一小会儿再试试)(可以用下面的命令使他挖到一个区块就退出挖矿miner.start(1);admin.sleepBlocks(1);miner.stop();

本文参考了https://www.jianshu.com/p/235c24aee284
https://blog.csdn.net/hpp24/article/details/79401298

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。