Geth (Go Ethereum), the latest versions are available here: https://github.com/ethereum/go-ethereum/releases
Grab the flavor for your operating system of choice.
Fancy launch scripts and a genesis file. Both provided in the geth-toolkit
folder (geth not included).
Download this repo to grab it all in one fell swoop: https://github.com/bitcoin-santa-cruz/ethereum-101/archive/master.zip
That's it for now.1
The first step can be a daunting one when it's still unfamiliar.
Add geth
to your path.
Searching add to path <your operating system>
with the appropriate substitution and minus the braces and quotes should bring up some decent instructions to learn from.
Next is setting up a private blockchain to test with.
Go into the provided geth-toolkit
and launch the appropriate setupChain script:
setupChain.sh
for Linux and Mac OS XsetupChain.ps1
for Windows 8/10 (for older Windows versions renamesetupChain.ps1
to .setupChain.bat
)
If geth
spits out a couple messages, exits, and you now have a freshly created testchain
folder, then everything probably did what it was supposed to.
Follow that up by running the correct version (extension) of the runChain
command.
For a more detailed look at what's going on, check out Creating a Private Chain/Testnet which describes the various command-line options in more depth than running geth -h
. Things have changed slightly since it was written, notably with how geth
handles the genesis file.
Now for some drills on doing basic actions using geth
(keep in mind that geth
is geared towards development unlike Mist which targets civilian use):
- Once geth is running and has its console ready for your input, enter
eth.accounts
. Unless you got fancy, this should come back with[]
showing there are none yet. - Enter
personal.newAccount()
to make one. Probably leave the password blank since this private blockchain doesn't put anything valuable at risk and accounts on it are throwaways.
If you entereth.accounts
again, you should see your newly created account displayed. - To get some money to play with, enter
miner.start()
and wait a little while for the rewards to start rolling in. Except right now it probably just gives an error since it doesn't know where to put those rewards. If your machine cries for mercy, thenminer.stop()
will provide it. Just remember that more mining is necessary anytime you make a new transaction in order to confirm it. - Set your default account by entering
eth.defaultAccount = eth.accounts[0]
.
Now try to start mining again.
There's a large amount of data that has to be generated to get things rolling, so be prepared to wait a few minutes or more before a stream of messages starts crawling up your screen. - Since entering in commands amidst that mess would be an unpleasant task, use the extraConsole script to get a fresh one minus the noise.
- Make another account.
- Set the default account again.
- Enter
personal.unlockAccount(eth.defaultAccount)
to unlock it. - Enter
eth.sendTransaction({to: eth.accounts[1], value: 42})
to send money from your default account to your new one.
Entereth.getBalance(eth.accounts[1])
to see that the transfer succeeded.
If you want to keep poking around the geth
console, check out Management API Reference for a full list of commands.
1 Solc (Solidity Compiler) is also nice to have, but browser-solidity has your needs covered up until build automation. At that point you'll want to check out webthree-umbrella since right now it's the best place to get an included binary for solc
.