geth
以太坊智能合约斥地中最经常独霸的言语用太呼唤行对象。
Geth是区块由以太坊基金会供给的官方客户端软件 ,用Go编程言语编写的链进。Geth供给了一个交互式呼唤独霸台,修调经由过程呼唤独霸台中包含了以太坊的言语用太各类下场(API)
。全名go-ethereum。区块
官网(很慢):https://geth.ethereum.org/downloads/
国际镜像:https://ethfans.org/wikis/Ethereum-Geth-Mirror


下载上往此后,链进会在拆卸目次生成geth.exe

将这个文件放在gopath的修调bin目次中,

放在这里就好了
geth version

假定你拆卸了 ,言语用太可是区块没有展示这个的话 ,多是链进因为你的琐细气候里面没有go的路途,把go的修调bin目次路途放在琐细变量的path就好了~
geth -help搜检辅佐

命 令
:geth [选项] 呼唤 [呼唤选项] [参数…]
呼唤参数引见
:超具体
如 :geth --datadir “路途” account new


搜检账户 :geth account list
搜检账户的信息

成立账户:geth account new
然后输进两次暗码

更新指定账户:geth account update "用户地址"
输进账户暗码及确认暗码


默许是会把用户的账户信息存放在这个目次
导进账户:geth account import 你的私钥文件路途(导出私钥存放到xx.txt)
指定保管路途的成立用户:geth --datadir account new
启动并进进交互式javascript气候

默许邻接的是ipc
geth attach http://IP:8545,默许不开启
geth attach ws://IP:8546 ,言语用太默许不开启
进进独霸台:geth console 可以指定--datadir "路途"
介入独霸台:exit 或 ctrl+d
经常独霸api:
掉落踪掉落踪区块号:eth.blockNumber

可否在监听端口 net.listening

最早挖矿:miner.start()

不要直接删除datadir目次,独霸removedb
geth --datadir "路途" removedb
这会删除路途/geth/chaindata ,其他对象都不会动 ,不会删除用户。
geth account -hgeth account help new 搜检子呼唤
1 . Error: authentication needed: password or unlock undefined :
这类报错解锁下账户便可
账户解锁:personal.unlockAccount(“账户地址”)
2 . Returned error: exceeds block gas limit:
展示这类偏向就看块号的gaslimit ,放置时改成不时
掉落踪掉落踪块号:eth.blockNumber
屈就块号掉落踪掉落踪具体信息 :eth.getBlock(0)
geth --datadir "fanone" --identity "fanone" --rpc --rpcport 8545 --rpcapi "db,eth,net,web3,personal" --rpccorsdomain "*" console

–identity “fanone” :节点身份标识
–rpc :开启 RPC 接口
–rpcport :RPC 端口 ,默许go是8545
–rpcapi “db,eth,net,web3”:供给给别人独霸的 RPC API,默许为web3接口
–rpccorsdomain :设置能邻接到你的节点的 URL,用来完成RPC任 务。* 指任何URL都能邻接到,默许只能本身邻接
–datadir :区块数据文件夹 ,假定不指定的话 ,就是上面的阿谁在C盘的地址。
为了C盘着想 ,所以仍是建议多么 ,新建一个文件夹放在其他盘



就会在这里举办存放了
–networkid:net_version的id
–port:用来监听其他节点的端口
–nodiscover:你的节点不会被其别人创作创造 ,除非他们手动添加你

是邻接这个url
下载包:"github.com/ethereum/go-ethereum/rpc"
示例代码:
client, _ := rpc.Dial("http://localhost:8545")var result boolclient.Call(&result ,"net_listening") // 寄看这里必须独霸指针,不然会报空指针特别很是启动此后

在go中调用

net_version
往后邻接群集的ID
net_version : 往后邻接群集的ID
var networkid stringclient.Call(&networkid,"net_version")
networkid : "1":Mainnet "2": Morden Testnet "3": Ropsten Testnet "4": Rinkeby Testnet "42": Kovan Testnet
在启动rpc处事接口的时辰可以指定: --networkid
net_listening
客户端可否处于监听外形
var is_listing boolclient.Call(&is_listing,"net_listening")
net_peerCount
所邻接对端节点旳数量
var count stringclient.Call(&count,"net_peerCount")//"0x0" 展示0个//"0x2" 展示2个
1 .eth_accounts:账户地址数组
var accounts []stringclient.Call(&accounts,"eth_accounts")
2 .eth_getBalance:掉落踪掉落踪指定地址账户的余额,单位 :wei
var balance stringclient.Call(&balance,"eth_getBalance","0x558c90c05d8c4b55a87de03bd601fd76faf50f9b","latest")
参数:
账户地址
整数块编号
,或字符串"latest", “earliest” 或 “pending”
3 .eth_gasPrice:前去往后的gas价值 ,单位 :wei 。
var gas_price stringclient.Call(&gas_price,"eth_gasPrice")
4.eth_coinbase:
掉落踪掉落踪挖矿账户地址
var coinbase stringclient.Call(&coinbase, "eth_coinbase")
5.eth_protocolVersion :
前去往后以太坊和谈的版本。
var proto_version stringclient.Call(&proto_version , "eth_protocolVersion")
6.eth_mining :
客户端可否在挖矿中
var is_mining boolclient.Call(&is_mining,"eth_mining")
7.eth_hashrate:
前去节点挖矿时每秒可算出的哈希数量。
var hashrate stringclient.Call(&hashrate,"eth_hashrate")
8.eth_getTransactionCount:
前去指定地址产生发火的生意数量
var transactionCount stringclient.Call(&transactionCount,"eth_getBalance","0x72w12d05d8c4b55a87de03bd601fd76faf50f9b","latest")//参数// 账户地址// 整数块编号,或字符串"latest", "earliest" 或 "pending"
9.eth_blockNumber:掉落踪掉落踪节点往后块编号
var blockNum stringclient.Call(&blockNum ,"eth_blockNumber")
1 .personal_listAccounts:
掉落踪掉落踪该节点下的全数账户
,和eth_accounts终局一样
var accounts []stringclient.Call(&accounts,"personal_listAccounts")
2.personal_newAccount
:
成立用户
var newAccount stringclient.Call(&newAccount, "personal_newAccount", "12345678")参数: 暗码
3.personal_lockAccount :
锁定指定账户
var is_lock boolclient.Call(&is_lock, "personal_lockAccount", "账户地址")//参数 :// 账户地址
4.personal_unlockAccount :
解锁指定账户,有些独霸必须解锁账户才可以独霸
var is_unlock boolclient.Call(&is_unlock, "personal_lockAccount", "账户地址","账户暗码")参数: 账户地址 账户暗码
1.db_putString :
在外埠数据库中存进字符串
var is_ok boolclient.Call(&is_ok, "db_putString", "db_name","key",""value")参数 : 数据库称号 key名 要存进的字符串值
2.db_getString:
从外埠数据库读取字符串。
var val stringclient.Call(&val, "db_getString", "db_name","key")//参数: // 数据库称号 // key名
以上就是Go言措辞语区块链进修调用以太坊的具体内容,更多关于go言语区块链调用以太坊的材料请存眷完竣下载此外相干文章 !
文章推荐: