2014-01-08 14:42:23 -08:00
Ethereum
========
2014-01-05 11:45:32 -08:00
2014-01-08 14:42:23 -08:00
[![Build Status ](https://travis-ci.org/ethereum/go-ethereum.png?branch=master )](https://travis-ci.org/ethereum/go-ethereum)
2014-04-07 12:58:36 -07:00
Ethereum Go Client © 2014 Jeffrey Wilcke.
2014-01-11 06:53:27 -08:00
2014-06-16 09:24:24 -07:00
Current state: Proof of Concept 5.0 RC13.
2014-01-11 06:53:27 -08:00
2014-04-07 12:58:36 -07:00
For the development package please see the [eth-go package ](https://github.com/ethereum/eth-go ).
2014-02-15 04:27:23 -08:00
2014-01-31 19:10:18 -08:00
Build
2014-01-08 14:42:23 -08:00
=======
2013-12-26 04:29:45 -08:00
2014-05-01 10:02:35 -07:00
To build Ethereal (GUI):
`go get github.com/ethereum/go-ethereum/ethereal`
To build the node (CLI):
`go get github.com/ethereum/go-ethereum/ethereum`
For further, detailed, build instruction please see the [Wiki ](https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum(Go ))
2014-04-07 12:58:36 -07:00
2014-03-30 13:03:29 -07:00
General command line options
2014-01-08 14:42:23 -08:00
====================
2013-12-26 04:29:45 -08:00
2014-01-16 02:00:56 -08:00
```
2014-05-20 13:13:39 -07:00
Shared between ethereum and ethereal
2014-05-30 07:56:56 -07:00
-id Set the custom identifier of the client (shows up on other clients)
-port Port on which the server will accept incomming connections
2014-05-20 13:13:39 -07:00
-upnp Enable UPnP
2014-05-30 07:56:56 -07:00
-maxpeer Desired amount of peers
-rpc Start JSON RPC
2014-05-20 13:13:39 -07:00
-dir Data directory used to store configs and databases
-import Import a private key
2014-05-30 07:56:56 -07:00
-genaddr Generates a new address and private key (destructive action)
2014-05-20 13:13:39 -07:00
-h This
2014-01-11 06:27:08 -08:00
2014-05-20 13:13:39 -07:00
Ethereum only
ethereum [options] [filename]
2014-05-21 05:04:11 -07:00
-js Start the JavaScript REPL
filename Load the given file and interpret as JavaScript
2014-05-30 07:14:46 -07:00
-m Start mining blocks
2014-02-08 13:16:11 -08:00
2014-05-20 13:13:39 -07:00
Etheral only
-asset_path absolute path to GUI assets directory
2014-02-08 13:16:11 -08:00
```
2014-01-11 06:27:08 -08:00
Contribution
============
2014-04-07 12:58:36 -07:00
If you would like to contribute to Ethereum Go, please fork, fix, commit and
send a pull request to the main repository. Commits which do not comply with the coding standards explained below
will be ignored. If you send a pull request, make sure that you
commit to the `develop` branch and that you do not merge to `master` .
Commits that are directly based off of the `master` branch instead of the `develop` branch will be ignored.
2014-02-15 02:49:29 -08:00
2014-04-07 12:58:36 -07:00
To make this process simpler try following the [git flow ](http://nvie.com/posts/a-successful-git-branching-model/ ) branching model, as it sets this process up and streamlines work flow.
2014-01-11 06:41:05 -08:00
Coding standards
================
2014-04-07 12:58:36 -07:00
Code should be formatted according to the [Go Formatting
2014-01-11 06:41:05 -08:00
Style](http://golang.org/doc/effective_go.html#formatting).
2014-04-07 12:58:36 -07:00
Unless struct fields are supposed to be directly accessible, provide
getters and hide the fields through Go's exporting facility.
2014-01-11 06:41:05 -08:00
2014-04-07 12:58:36 -07:00
Make comments in your code meaningful and only use them when necessary. Describe in detail what your code is trying to achieve. For example, this would be redundant and unnecessary commenting:
2014-01-11 06:41:05 -08:00
*wrong*
```go
// Check if the value at x is greater than y
if x > y {
// It's greater!
}
```
2014-01-11 06:53:27 -08:00
2014-04-07 12:58:36 -07:00
Everyone reading the source code should know what this code snippet was meant to achieve, and so those are **not** meaningful comments.
2014-01-16 02:00:56 -08:00
2014-04-07 12:58:36 -07:00
While this project is constantly tested and run, code tests should be written regardless. There is not time to evaluate every person's code specifically, so it is expected of you to write tests for the code so that it does not have to be tested manually. In fact, contributing by simply writing tests is perfectly fine!
2014-01-16 02:00:56 -08:00