5.3 KiB
Ethereum Go
Ethereum Go Client © 2014 Jeffrey Wilcke.
| Linux | OSX | Windows | Tests
----------|---------|-----|---------|------ develop | | | N/A | master | | | N/A |
![Stories in Progress](https://badge.waffle.io/ethereum/go-ethereum.svg?label=in%20progress&title=In Progress)
Build
Mist (GUI):
go get github.com/ethereum/go-ethereum/cmd/mist
Ethereum (CLI):
go get github.com/ethereum/go-ethereum/cmd/ethereum
As of POC-8, go-ethereum uses Godep to manage dependencies. Assuming you have your environment all set up, switch to the go-ethereum repository root folder, and build/install the executable you need:
Mist (GUI):
godep go build -v ./cmd/mist
Ethereum (CLI):
godep go build -v ./cmd/ethereum
Instead of build
, you can use install
which will also install the resulting binary.
For prerequisites and detailed build instructions please see the Wiki
If you intend to develop on go-ethereum, check the Developers' Guide
Automated (dev) builds
Executables
Go Ethereum comes with several wrappers/executables found in
the cmd
directory:
mist
Official Ethereum Browser (ethereum GUI client)ethereum
Ethereum CLI (ethereum command line interface client)bootnode
runs a bootstrap node for the Discovery Protocolethtest
test tool which runs with the tests suite:cat file | ethtest
.evm
is a generic Ethereum Virtual Machine:evm -code 60ff60ff -gas 10000 -price 0 -dump
. See-h
for a detailed description.disasm
disassembles EVM code:echo "6001" | disasm
rlpdump
converts a rlp stream tointerface{}
.
Command line options
Both mist
and ethereum
can be configured via command line options, environment variables and config files.
To get the options available:
ethereum -help
For further details on options, see the wiki
Contribution
If you'd like to contribute to go-ethereum please fork, fix, commit and
send a pull request. Commits who do not comply with the coding standards
are ignored (use gofmt!). If you send pull requests make absolute sure that you
commit on the develop
branch and that you do not merge to master.
Commits that are directly based on master are simply ignored.
For dependency management, we use godep. After installing with go get github.com/tools/godep
, run godep restore
to ensure that changes to other repositories do not break the build. To update a dependency version (for example, to include a new upstream fix), run go get -u <foo/bar>
then godep update <foo/...>
. To track a new dependency, add it to the project as normal than run godep save ./...
. Changes to the Godeps folder: should be manually verified then commited.
To make life easier try git flow it sets this all up and streamlines your work flow.