0%

Go调用geth JSON RPC接口

在Go中调用以太坊的格式如下

1
2
3
client, _ := rpc.Dial("http://localhost:8545")
var result bool
client.Call(&result ,"net_listening")

有以下常用接口

net

1、net_version
当前连接网络的ID

1
2
var networkid string
client.Call(&networkid,"net_version")

2、net_listening
客户端是否处于监听状态

1
2
var is_listing bool
client.Call(&is_listing,"net_listening")

eth

1、eth_accounts
返回账户地址数组

1
2
var accounts []string
client.Call(&accounts,"eth_accounts")

2、eth_getBalance
需要传入账户地址,返回余额,单位是wei
“latest” 表示你要查询的是当前链上最新的账户余额

1
2
var balance string
client.Call(&balance,"eth_getBalance","0x558c90c05d8c4b55a87de03bd601fd76faf50f9b","latest")

3、eth_coinbase
获取挖矿账户地址

1
2
var proto_version string
client.Call(&proto_version , "eth_protocolVersion")

4、eth_mining
返回客户端是否在挖矿

1
2
var is_mining bool
client.Call(&is_mining,"eth_mining")

5、eth_getTransactionCount
返回指定地址发生的交易数量

1
2
var transactionCount string
client.Call(&transactionCount,"eth_getBalance","0x72w12d05d8c4b55a87de03bd601fd76faf50f9b","latest")

6、eth_blockNumber
获取当前块编号

1
2
var blockNum string
client.Call(&blockNum ,"eth_blockNumber")

personal

1、personal_listAccounts
获取该节点下的所有账户

1
2
var accounts []string
client.Call(&accounts,"personal_listAccounts")

2.personal_newAccount
创建用户,需要将密码作为参数传入

1
2
var newAccount string
client.Call(&newAccount, "personal_newAccount", "12345678")

3.personal_lockAccount
锁定指定账户,需要将地址作为参数传入

1
2
var is_lock bool
client.Call(&is_lock, "personal_lockAccount", "账户地址")

4.personal_unlockAccount
解锁指定账户,有些操作必须解锁账户才可以操作

1
2
var is_unlock bool
client.Call(&is_unlock, "personal_lockAccount", "账户地址","账户密码")

db

1.db_putString
在本地数据库中存入字符串

1
2
var is_ok bool
client.Call(&is_ok, "db_putString", "db_name","key",""value")

2.db_getString
从本地数据库读取字符串

1
2
var val string
client.Call(&val, "db_getString", "db_name","key")
赏个鸡腿🍗