-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Go-Ethereum is a Go language implementation of Ethereum Classic, supporting the original blockchain and its philosophy of immutability, censorship-resistance, and resilient distributed applications.
🔭 For general information related to Ethereum Classic including:
- whitepaper
- yellow paper
- protocol and interface specs
- affiliated APIs
- DAPP development guides
... please see our Ethereum Project Main Wiki.
The main Ethereum Classic client is called Geth (the old english third person singular conjugation of "to go". Quite appropriate given geth is written in Go. Geth is a multipurpose command line tool that runs a full Ethereum Classic node implemented in Go. It offers three interfaces:
- the command line subcommands and options,
- a JSON-RPC server, and
- an interactive Javascript console.
Supported Platforms are Linux, Mac, and Windows. In order to install Geth, please vist our Releases Page. Please consider reviewing our Disclaimer Notice before use.
The Ethereum Classic Core Protocol licensed under the GNU Lesser General Public License 3.0. All frontend client software (under cmd) is licensed under the GNU General Public License.
By installing and running geth, you can take part in the Ethereum Classic live network and
- mine real ether
- transfer funds between addresses
- create contracts and send transactions
- explore block history
- and much, much more
This is an open source project made by and for a passionate and welcoming community. The ETCDEV team is lead by @splix, and Go-Ethereum's lead developer is @whilei (who goes by @ia on Slack). Get yourself an invitation to Slack, read the Contributing Guidelines, and find or make an issue.
Building and testing geth requires both Go >=1.8 and a C compiler.
Clone and set up:
mkdir -p $GOPATH/src/github.com/ethereumproject
cd $GOPATH/src/github.com/ethereumproject
git clone https://github.com/ethereumproject/go-ethereum.git
git remote rename origin upstream
git remote add origin https://github.com/YOU/go-ethereum.git
# install dependencies recursively
go install github.com/ethereumproject/go-ethereum/cmd/...
# build binary 'geth' and place in $GOPATH/bin (you can run this from anywhere)
go build github.com/ethereumproject/go-ethereum/cmd/geth
# check it out!
geth --helpSee the Testing Wiki page for information on unit, integration, and external tests.
Geth outputs stderr to the console. Output from the console can be logged or redirected:
geth 2>>geth.log
Using standard tools, the log can be monitored in a separate window:
tail -f geth.log
Additionally, you may can use --log-dir=PATH to specify a directly in which geth will write it's logs to a timestamped file.
- If you're integrating another application or service with geth:
- Interested in working with some associated packages?
I sent a transaction, but it's forever 'pending'. I see no errors, but geth doesn't seem to be processing the transaction.
Check your transaction's
noncevalue. If a transaction with a nonce is submitted with a "too high" nonce value, geth will hold the transaction in memory and wait until it receives a transaction with a correct nonce to insert before yours. Nodes can receive transactions asynchronously, so there is no way to check if a nonce is (or will be) missing completely.
What is the difference between chain id, chain identity, and network id?
chain idis used by the chain configuration for signing replay-protected (see EIP155) transactions. It is configured in the "Diehard" upgrade fork.chain identityis a local value, and is not a part of the p2p or blockchain protocols, per se. With default values "mainnet" and "morden", it can be used as an argument to specify a custom chain. When doing so, the configuration file JSON key "identity" must match the containing subdirectory (/datadir/customnet/chain.json) to ensure your configurations are in proper order.network idis used in the p2p protocol to identify valid peers on a given network. Mainnet network id is 1, Morden is 2, and your private net can be any positive integer (although best not 1 or 2, to avoid trying unuseful peers).
Security issues are best sent to splix@etcdevteam.org, isaac.ardis@gmail.com, or shared in PM with devs on one of the Slack channels.
Non-sensitive bug reports are welcome on Github. Please always state the version (on master) or commit of your build (if on develop), give as much detail as possible about the situation and the anomaly that occurred. Provide logs or stacktrace if you can.
Ethereum is joint work of ETCDEV and the community.
Name or blame = list of contributors:
❤️ Stay Classy