以太坊账户操作语句

Posted blockchain_yhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊账户操作语句相关的知识,希望对你有一定的参考价值。

1 创建新账户
创建账户是执行账户密码

personal.newAccount('yhj123')

返回账户地址0x52b6ef247b1f674254975184f89852eeae4c42b6 40位

2 查看所有账户

eth.accounts

或者

personal.listAccounts

查看指定index位置账户

eth.accounts[0]

或者

personal.listAccounts[0]


3查看账户余额
以太坊私有链未正常关闭导致所有区块信息回滚至创世区块,重启配置文件后原有的操作为空 账户余额为0 区块号为0
解决方案:
在geth安装目录下:
清除所有区块数据

geth removedb

根据创世区块配置文件重新初始化创世区块

geth init genesis.json

之后启动配置文件,进入以太坊私有链,通过exitctrl + d正确关闭以太坊链网络
查看余额

eth.getBalance(eth.accounts[0])

或者通过账户名称查询余额

eth.getBalance('0x87e514b03637f76a9a1b7439eada17a83da62eab')

或者通过不同代币单位查询余额,

web3.fromWei(number, unit) unit 单位如下:

以ether为单位查询账户0的余额

balanse=web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')


配置矿工账户
查询当前挖矿矿工账号,默认为第一个账户为挖矿矿工账户

eth.coinbase

或者

web3.eth.coinbase


指定矿工账号

miner.setEtherbase(eth.accounts[1])


4挖矿
start(index) 的参数表示挖矿使用的线程数,一个线程约占用cpu 内存 1G .第一次启动挖矿会先生成挖矿所需的 DAG 文件,这个过程有点慢。等进度达到 100% 后,就会开始挖矿,此时屏幕会被挖矿信息刷屏

miner.start(5)


5停止挖矿
当前运行状态下输入stop命令 停止挖矿

miner.stop()

查询以太坊链上区块数目

eth.blockNumber


6交易操作
默认情况下,你在Geth中的账户是被锁住的,你不能用这些被锁住的账户发送交易,例如转账或调用合约方法。因此如果你需要使用Geth发送交易,就需要先解锁账户
解锁账户
personal.unlockAccount(address, passphrase, duration),密码和解锁时长都是可选的。如果密码为null,控制台将提示交互输密码。解密的密钥将保存在内存中直到解锁周期超时。默认的解锁周期为300秒。将解锁周期设置为0秒将解锁该密钥直到退出geth程序。
在geth控制台使用js语句解锁指定的账户,打算执行账户0向账户1转账,需要解锁账户0

personal.unlockAccount(eth.accounts[0],'yhj123',0)


此时,账户1的余额为0:

eth.getBalance(eth.accounts[1])


执行转账操作,从账户0向账户1转账4ether

eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(4,'ether')})

返回交易hash0x9fb8f1f77f5cdf36cee71f460e17f47affb4f943759479577703160b8cf1dac3

7查看交易池数据
(1)txpool的status属性可以用来查询交易池中当前等待打包入下一个区块的 交易数量等信息 待确认交易中hash为账户1的账户地址
(2)txpool的inspect属性可以列出交易池中当前等待打包进下一个区块的交易的概要信息。 该方法特别适合开发人员快速查看池中的交易以便发现潜在的问题。inspect属性的值是一个包含两个字段的对象:pending和queued。pending表示已提交但还未被处理的交易
(3)查看区块中当前待确认交易

8执行挖矿操作,矿工打包交易池中待确认交易

查看交易池信息

查看账户1的余额

eth.getBalance(eth.accounts[1])

balance=web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')


9 查看区块信息
(1)查看区块高度

eth.blockNumber

(2)根据区块交易hash查询交易

eth.getTransaction("0x9fb8f1f77f5cdf36cee71f460e17f47affb4f943759479577703160b8cf1dac3")


(3)根据区块交易hash查询交易收据

(4)查询最新区块

eth.getBlock('latest')

通过区块号以及区块hash查询

(5)根据区块号或区块hash查询区块数据

eth.getBlock(116)
eth.getBlock("0x43db4eed37884f921c1a432d9a50f7ca7973355ee4337c6d8de23b702d99a009")

以上是关于以太坊账户操作语句的主要内容,如果未能解决你的问题,请参考以下文章

[以太坊源代码分析] V. 从钱包到客户端

如何判断一个以太坊地址是合约还是普通账户?

以太坊--2.账户是什么---以太坊的指南针学习记录

以太坊钱包和账户有什么关系

从零开发区块链应用--以太坊余额查询

Metamask不能访问以太坊账户?隐私模式!