以太坊开发(2):在以太坊私有链上的基本操作

在上一讲如何使用geth搭建以太坊私有链完成了私有链的搭建,下面介绍在私有链上的基本操作。

创建账户

启动私有链后在命令行输入:

## 123456为密码
personal.newAccount("123456")

执行完之后可以查看到生成的账户地址为0xe6e4e20c95abc11dca8b3e9c292a34725bf89930

查询账户余额:

## 返回余额为0
> eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
0
> 

如何进行挖矿

刚刚创建的私有链账户都是没有余额的,需要通过挖矿才会产生eth,下面介绍如何在私有链上挖矿。

在geth环境下执行:

## 返回null标示成功
> miner.start()
null

这时候查看日志geth.log可以看到以太坊私有链有个启动的百分比,到100就正式启动了:

以太坊开发(2):在以太坊私有链上的基本操作_第1张图片

挖矿开始:

以太坊开发(2):在以太坊私有链上的基本操作_第2张图片
  • 如果第一次挖矿遇到一直卡在Commit new mining work,有可能是因为创世块初始化失败,检查初始化genesis.json的指令输出Fatal: Failed to write genesis block: genesis has no chain configuration,原因是genesis.json没有配置config属性。
  • 还有一种挖矿失败可能是因为之前存在的链,把~/.ethash删除即可。

这时候有个疑问,挖矿挖到的eth到哪了,其实默认到了eth.account[0],就是第一个账户上:

## 第一次创建的那个账户就是默认挖矿所得的账户
> eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
115000000000000000000

## 这里单位是gwei,如果需要转换为eth为单位
> balance = eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
115000000000000000000
> web3.fromWei(balance,"ether")
115

如何修改挖矿所得的账户:

miner.setEtherbase(需要设置的eth地址)

进行转账操作

命令如下:

## 其中amount为gwei单位
eth.sendTransaction({from: acc0, to: acc1, value: amount})

下面开始进行转账:

以太坊开发(2):在以太坊私有链上的基本操作_第3张图片

这时候出现报错,原因是转账的账户没有解锁,需要输入密码解锁转账的账户才能完成转账操作:

> personal.unlockAccount("0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b")
Unlock account 0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b
Passphrase: 
true
> eth.sendTransaction({from: "0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b", to: "0xe6e4e20c95abc11dca8b3e9c292a34725bf89930", value: web3.toWei(3)})
"0x6909c8d196933f648ecafa08e683a4627a6719650a5d102a56d8f3d7d099cc52"

## 转账提交之后输出这次交易的hash
  • 注意需要保持你的私有链在挖矿中,待区块打包成功后这笔转账就到账了。

你可能感兴趣的:(以太坊开发(2):在以太坊私有链上的基本操作)