一、geth控制台操作(一)
1、启动geth
2、Geth控制台命令
Geth Console是一个交互式的 JavaScript 执行环境,里面内置了一些用来操作以太坊的 JavaScript 对象,我们可以直接调用这些对象来获取区块链上的相关信息。这些对象主要包括:
eth:主要包含对区块链进行访问和交互相关的方法;
net:主要包含查看p2p网络状态的方法;
admin:主要包含与管理节点相关的方法;
miner:主要包含挖矿相关的一些方法;
personal:包含账户管理的方法;
txpool:包含查看交易内存池的方法;
web3:包含以上所有对象,还包含一些通用方法。
常用命令有:
personal.newAccount():创建账户;
personal.unlockAccount():解锁账户;
eth.accounts:列出系统中的账户;
eth.getBalance():查看账户余额,返回值的单位是 Wei;
eth.blockNumber:列出当前区块高度;
eth.getTransaction():获取交易信息;
eth.getBlock():获取区块信息;
miner.start():开始挖矿;
miner.stop():停止挖矿;
web3.fromWei():Wei 换算成以太币;
web3.toWei():以太币换算成 Wei;
txpool.status:交易池中的状态;
3、简单命令
(1)查看账户状态
(2)查看账户信息
将单位wei转化成ether
web3.fromWei(eth.getBalance("地址"),'ether')
(3)查看区块高度
(4)创建账户
(5)查看账户信息
(6)转账
//解锁
personal.unlockAccount(eth.accounts[0])
//发送交易
eth.sendTransaction({from:eth.accounts[0], to:"地址", value:100000})
(7)启动挖矿
二、geth控制台操作(二)
1、如果出现挖不出矿的现象,可以直接使用下列口令
注意:需要设置环境变量
https://blog.csdn.net/qianshanxue11/article/details/78609130?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2、简单指令
//查看账户情况
> eth.accounts
["0x47fb1c31b3d1a2814b1f37ecb0655ba51fc34c93", "0xd3c7913bc772ed60f6feb89de9f0ece4b12d75b3"]
//查看两个账户的余额
> eth.getBalance(eth.accounts[0])
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77
> eth.getBalance(eth.accounts[1])
0
//转账
> eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(40, 'ether')})
"0xcd658960aa4515daa96be7cbf89552224eaae062766303f382ead3b80683026b"
//重新查看两个账户余额
查看交易信息
三、JSON-RPC
- 以太坊客户端提供了 API 和一组远程调用(RPC)命令,这些命令被编码为 JSON。这被称为 JSON-RPC API。本质上,JSON-RPC API 就是一个接口,允许我们编写的程序使用以太坊客户端作为网关,访问以太坊网络和链上数据。
- 通常,RPC 接口作为一个 HTTP 服务,端口设定为 8545。出于安全原因,默认情况下,它仅限于接受来自 localhost 的连接。
- 要访问JSON-RPC API,我们可以使用编程语言编写的专用库,例如JavaScript的 web3.js。
- 或者也可以手动构建HTTP请求并发送/接收JSON编码的请求,如:
$ curl -X POST -H “Content-Type: application/json” --data ‘{“jsonrpc”:“2.0”,“method”:“web3_clientVersion”,“params”:[],“id”:1}’ http://localhost:8545
四、总结
这部分主要讲了geth控制台的使用,其中比较好的一点是知道了geth中–dev的使用,解决了由于网络等原因引起挖矿失败的问题。