Interactive Use: The Console
attach geth sub-commands.
console subcommands starts the geth node and then opens the console. The
subcommand attaches to the console to an already-running geth instance.
geth console geth attach
Attach mode accepts an endpoint in case the geth node is running with a non default ipc endpoint or you would like to connect over the rpc interface.
geth attach /some/custom/path.ipc geth attach http://22.214.171.124:8545 geth attach ws://126.96.36.199:8546
Note that by default the geth node doesn’t start the HTTP and WebSocket servers and not
all functionality is provided over these interfaces for security reasons. These defaults
can be overridden with the
--wsapi arguments when the geth node is
started, or with admin.startRPC and
If you need log information, start with:
geth console --verbosity 5 2>> /tmp/eth.log
Otherwise mute your logs, so that it does not pollute your console:
geth console 2> /dev/null
option. This can be used to load often used functions, or to setup web3 contract objects.
geth console --preload "/my/scripts/folder/utils.js,/my/scripts/folder/contracts.js"
Non-interactive Use: Script Mode
attach subcommand accept the
geth attach --exec "eth.blockNumber"
This prints the current block number of a running geth instance.
Or execute a local script with more complex statements on a remote node over http:
geth attach http://geth.example.org:8545 --exec 'loadScript("/tmp/checkbalances.js")' geth attach http://geth.example.org:8545 --jspath "/tmp" --exec 'loadScript("checkbalances.js")'
--jspath <path/to/my/js/root> to set a library directory for your js scripts.
loadScript() with no absolute path will be understood relative to this
You can exit the console by typing
exit or simply with
go-ethereum uses the Otto JS VM which has some limitations:
"use strict"will parse, but does nothing.
- The regular expression engine (re2/regexp) is not fully compatible with the ECMA5 specification.
web3.js uses the
This library is auto-loaded into the console.
In addition to the full functionality of JS (as per ECMA5), the ethereum JSRE is augmented
with various timers. It implements
clearTimeout you may be used to using in browser windows. It also provides
admin.sleep(seconds) and a block based timer,
which sleeps till the number of new blocks added is equal to or greater than
“wait for n confirmations”.