Sửa đổi geth->getf

Hoàn tất!
This commit is contained in:
huuhadz2k 2018-04-14 12:04:52 +07:00
parent c960f5627a
commit 1eaef29346
24 changed files with 147 additions and 147 deletions

View file

@ -6,7 +6,7 @@ For general questions please use the gitter channel or the Ethereum stack exchan
#### System information #### System information
Geth version: `geth version` Geth version: `getf version`
OS & Version: Windows/Linux/OSX OS & Version: Windows/Linux/OSX
Commit hash : (if `develop`) Commit hash : (if `develop`)

2
.gitignore vendored
View file

@ -25,7 +25,7 @@ build/_vendor/pkg
# used by the Makefile # used by the Makefile
/build/_workspace/ /build/_workspace/
/build/bin/ /build/bin/
/geth*.zip /getf*.zip
# travis # travis
profile.tmp profile.tmp

View file

@ -63,7 +63,7 @@ matrix:
- dput - dput
- fakeroot - fakeroot
script: script:
- go run build/ci.go debsrc -signer "Go Ethereum Linux Builder <geth-ci@ethereum.org>" -upload ppa:ethereum/ethereum - go run build/ci.go debsrc -signer "Go Ethereum Linux Builder <getf-ci@ethereum.org>" -upload ppa:ethereum/ethereum
# This builder does the Linux Azure uploads # This builder does the Linux Azure uploads
- os: linux - os: linux

View file

@ -4,19 +4,19 @@ FROM golang:1.10-alpine as builder
RUN apk add --no-cache make gcc musl-dev linux-headers RUN apk add --no-cache make gcc musl-dev linux-headers
ADD . /go-ethereum ADD . /go-ethereum
RUN cd /go-ethereum && make geth RUN cd /go-ethereum && make getf
# Pull Geth into a second stage deploy alpine container # Pull Geth into a second stage deploy alpine container
FROM alpine:latest FROM alpine:latest
RUN apk add --no-cache ca-certificates RUN apk add --no-cache ca-certificates
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/ COPY --from=builder /go-ethereum/build/bin/getf /usr/local/bin/
RUN addgroup -g 1000 geth && \ RUN addgroup -g 1000 getf && \
adduser -h /root -D -u 1000 -G geth geth && \ adduser -h /root -D -u 1000 -G getf getf && \
chown geth:geth /root chown getf:getf /root
USER geth USER getf
EXPOSE 8545 8546 30303 30303/udp 30304/udp EXPOSE 8545 8546 30303 30303/udp 30304/udp
ENTRYPOINT ["geth"] ENTRYPOINT ["getf"]

View file

@ -12,10 +12,10 @@ FROM alpine:latest
RUN apk add --no-cache ca-certificates RUN apk add --no-cache ca-certificates
COPY --from=builder /go-ethereum/build/bin/* /usr/local/bin/ COPY --from=builder /go-ethereum/build/bin/* /usr/local/bin/
RUN addgroup -g 1000 geth && \ RUN addgroup -g 1000 getf && \
adduser -h /root -D -u 1000 -G geth geth && \ adduser -h /root -D -u 1000 -G getf getf && \
chown geth:geth /root chown getf:getf /root
USER geth USER getf
EXPOSE 8545 8546 30303 30303/udp 30304/udp EXPOSE 8545 8546 30303 30303/udp 30304/udp

122
Makefile
View file

@ -2,19 +2,19 @@
# with Go source code. If you know what GOPATH is then you probably # with Go source code. If you know what GOPATH is then you probably
# don't need to bother with make. # don't need to bother with make.
.PHONY: geth android ios geth-cross swarm evm all test clean .PHONY: getf android ios getf-cross swarm evm all test clean
.PHONY: geth-linux geth-linux-386 geth-linux-amd64 geth-linux-mips64 geth-linux-mips64le .PHONY: getf-linux getf-linux-386 getf-linux-amd64 getf-linux-mips64 getf-linux-mips64le
.PHONY: geth-linux-arm geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-arm64 .PHONY: getf-linux-arm getf-linux-arm-5 getf-linux-arm-6 getf-linux-arm-7 getf-linux-arm64
.PHONY: geth-darwin geth-darwin-386 geth-darwin-amd64 .PHONY: getf-darwin getf-darwin-386 getf-darwin-amd64
.PHONY: geth-windows geth-windows-386 geth-windows-amd64 .PHONY: getf-windows getf-windows-386 getf-windows-amd64
GOBIN = $(shell pwd)/build/bin GOBIN = $(shell pwd)/build/bin
GO ?= latest GO ?= latest
geth: getf:
build/env.sh go run build/ci.go install ./cmd/geth build/env.sh go run build/ci.go install ./cmd/getf
@echo "Done building." @echo "Done building."
@echo "Run \"$(GOBIN)/geth\" to launch geth." @echo "Run \"$(GOBIN)/getf\" to launch getf."
swarm: swarm:
build/env.sh go run build/ci.go install ./cmd/swarm build/env.sh go run build/ci.go install ./cmd/swarm
@ -27,7 +27,7 @@ all:
android: android:
build/env.sh go run build/ci.go aar --local build/env.sh go run build/ci.go aar --local
@echo "Done building." @echo "Done building."
@echo "Import \"$(GOBIN)/geth.aar\" to use the library." @echo "Import \"$(GOBIN)/getf.aar\" to use the library."
ios: ios:
build/env.sh go run build/ci.go xcode --local build/env.sh go run build/ci.go xcode --local
@ -55,92 +55,92 @@ devtools:
# Cross Compilation Targets (xgo) # Cross Compilation Targets (xgo)
geth-cross: geth-linux geth-darwin geth-windows geth-android geth-ios getf-cross: getf-linux getf-darwin getf-windows getf-android getf-ios
@echo "Full cross compilation done:" @echo "Full cross compilation done:"
@ls -ld $(GOBIN)/geth-* @ls -ld $(GOBIN)/getf-*
geth-linux: geth-linux-386 geth-linux-amd64 geth-linux-arm geth-linux-mips64 geth-linux-mips64le getf-linux: getf-linux-386 getf-linux-amd64 getf-linux-arm getf-linux-mips64 getf-linux-mips64le
@echo "Linux cross compilation done:" @echo "Linux cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* @ls -ld $(GOBIN)/getf-linux-*
geth-linux-386: getf-linux-386:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/386 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/386 -v ./cmd/getf
@echo "Linux 386 cross compilation done:" @echo "Linux 386 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep 386 @ls -ld $(GOBIN)/getf-linux-* | grep 386
geth-linux-amd64: getf-linux-amd64:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/amd64 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/amd64 -v ./cmd/getf
@echo "Linux amd64 cross compilation done:" @echo "Linux amd64 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep amd64 @ls -ld $(GOBIN)/getf-linux-* | grep amd64
geth-linux-arm: geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-arm64 getf-linux-arm: getf-linux-arm-5 getf-linux-arm-6 getf-linux-arm-7 getf-linux-arm64
@echo "Linux ARM cross compilation done:" @echo "Linux ARM cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep arm @ls -ld $(GOBIN)/getf-linux-* | grep arm
geth-linux-arm-5: getf-linux-arm-5:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-5 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-5 -v ./cmd/getf
@echo "Linux ARMv5 cross compilation done:" @echo "Linux ARMv5 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep arm-5 @ls -ld $(GOBIN)/getf-linux-* | grep arm-5
geth-linux-arm-6: getf-linux-arm-6:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-6 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-6 -v ./cmd/getf
@echo "Linux ARMv6 cross compilation done:" @echo "Linux ARMv6 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep arm-6 @ls -ld $(GOBIN)/getf-linux-* | grep arm-6
geth-linux-arm-7: getf-linux-arm-7:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-7 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-7 -v ./cmd/getf
@echo "Linux ARMv7 cross compilation done:" @echo "Linux ARMv7 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep arm-7 @ls -ld $(GOBIN)/getf-linux-* | grep arm-7
geth-linux-arm64: getf-linux-arm64:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm64 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm64 -v ./cmd/getf
@echo "Linux ARM64 cross compilation done:" @echo "Linux ARM64 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep arm64 @ls -ld $(GOBIN)/getf-linux-* | grep arm64
geth-linux-mips: getf-linux-mips:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips --ldflags '-extldflags "-static"' -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips --ldflags '-extldflags "-static"' -v ./cmd/getf
@echo "Linux MIPS cross compilation done:" @echo "Linux MIPS cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep mips @ls -ld $(GOBIN)/getf-linux-* | grep mips
geth-linux-mipsle: getf-linux-mipsle:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mipsle --ldflags '-extldflags "-static"' -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mipsle --ldflags '-extldflags "-static"' -v ./cmd/getf
@echo "Linux MIPSle cross compilation done:" @echo "Linux MIPSle cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep mipsle @ls -ld $(GOBIN)/getf-linux-* | grep mipsle
geth-linux-mips64: getf-linux-mips64:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64 --ldflags '-extldflags "-static"' -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64 --ldflags '-extldflags "-static"' -v ./cmd/getf
@echo "Linux MIPS64 cross compilation done:" @echo "Linux MIPS64 cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep mips64 @ls -ld $(GOBIN)/getf-linux-* | grep mips64
geth-linux-mips64le: getf-linux-mips64le:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64le --ldflags '-extldflags "-static"' -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64le --ldflags '-extldflags "-static"' -v ./cmd/getf
@echo "Linux MIPS64le cross compilation done:" @echo "Linux MIPS64le cross compilation done:"
@ls -ld $(GOBIN)/geth-linux-* | grep mips64le @ls -ld $(GOBIN)/getf-linux-* | grep mips64le
geth-darwin: geth-darwin-386 geth-darwin-amd64 getf-darwin: getf-darwin-386 getf-darwin-amd64
@echo "Darwin cross compilation done:" @echo "Darwin cross compilation done:"
@ls -ld $(GOBIN)/geth-darwin-* @ls -ld $(GOBIN)/getf-darwin-*
geth-darwin-386: getf-darwin-386:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/386 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/386 -v ./cmd/getf
@echo "Darwin 386 cross compilation done:" @echo "Darwin 386 cross compilation done:"
@ls -ld $(GOBIN)/geth-darwin-* | grep 386 @ls -ld $(GOBIN)/getf-darwin-* | grep 386
geth-darwin-amd64: getf-darwin-amd64:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/amd64 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/amd64 -v ./cmd/getf
@echo "Darwin amd64 cross compilation done:" @echo "Darwin amd64 cross compilation done:"
@ls -ld $(GOBIN)/geth-darwin-* | grep amd64 @ls -ld $(GOBIN)/getf-darwin-* | grep amd64
geth-windows: geth-windows-386 geth-windows-amd64 getf-windows: getf-windows-386 getf-windows-amd64
@echo "Windows cross compilation done:" @echo "Windows cross compilation done:"
@ls -ld $(GOBIN)/geth-windows-* @ls -ld $(GOBIN)/getf-windows-*
geth-windows-386: getf-windows-386:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/386 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/386 -v ./cmd/getf
@echo "Windows 386 cross compilation done:" @echo "Windows 386 cross compilation done:"
@ls -ld $(GOBIN)/geth-windows-* | grep 386 @ls -ld $(GOBIN)/getf-windows-* | grep 386
geth-windows-amd64: getf-windows-amd64:
build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/amd64 -v ./cmd/geth build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/amd64 -v ./cmd/getf
@echo "Windows amd64 cross compilation done:" @echo "Windows amd64 cross compilation done:"
@ls -ld $(GOBIN)/geth-windows-* | grep amd64 @ls -ld $(GOBIN)/getf-windows-* | grep amd64

View file

@ -10,7 +10,7 @@ https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/6874
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/etherfact/go-etherfact?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/etherfact/go-etherfact?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
Automated builds are available for stable releases and the unstable master branch. Automated builds are available for stable releases and the unstable master branch.
Binary archives are published at https://geth.etherfact.org/downloads/. Binary archives are published at https://getf.etherfact.org/downloads/.
## Building the source ## Building the source
@ -18,11 +18,11 @@ For prerequisites and detailed build instructions please read the
[Installation Instructions](https://github.com/EtherFact-Project/go-etherfact/wiki/Building-etherfact) [Installation Instructions](https://github.com/EtherFact-Project/go-etherfact/wiki/Building-etherfact)
on the wiki. on the wiki.
Building geth requires both a Go (version 1.7 or later) and a C compiler. Building getf requires both a Go (version 1.7 or later) and a C compiler.
You can install them using your favourite package manager. You can install them using your favourite package manager.
Once the dependencies are installed, run Once the dependencies are installed, run
make geth make getf
or, to build the full suite of utilities: or, to build the full suite of utilities:
@ -34,7 +34,7 @@ The go-etherfact project comes with several wrappers/executables found in the `c
| Command | Description | | Command | Description |
|:----------:|-------------| |:----------:|-------------|
| **`geth`** | Our main EtherFact CLI client. It is the entry point into the EtherFact network (main-, test- or private net), capable of running as a full node (default) archive node (retaining all historical state) or a light node (retrieving data live). It can be used by other processes as a gateway into the etherfact network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. `geth --help` and the [CLI Wiki page](https://github.com/EtherFact-Project/go-etherfact/wiki/Command-Line-Options) for command line options. | | **`getf`** | Our main EtherFact CLI client. It is the entry point into the EtherFact network (main-, test- or private net), capable of running as a full node (default) archive node (retaining all historical state) or a light node (retrieving data live). It can be used by other processes as a gateway into the etherfact network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. `getf --help` and the [CLI Wiki page](https://github.com/EtherFact-Project/go-etherfact/wiki/Command-Line-Options) for command line options. |
| `abigen` | Source code generator to convert EtherFact contract definitions into easy to use, compile-time type-safe Go packages. It operates on plain [EtherFact contract ABIs](https://github.com/EtherFact-Project/wiki/wiki/etherfact-Contract-ABI) with expanded functionality if the contract bytecode is also available. However it also accepts Solidity source files, making development much more streamlined. Please see our [Native DApps](https://github.com/EtherFact-Project/go-etherfact/wiki/Native-DApps:-Go-bindings-to-etherfact-contracts) wiki page for details. | | `abigen` | Source code generator to convert EtherFact contract definitions into easy to use, compile-time type-safe Go packages. It operates on plain [EtherFact contract ABIs](https://github.com/EtherFact-Project/wiki/wiki/etherfact-Contract-ABI) with expanded functionality if the contract bytecode is also available. However it also accepts Solidity source files, making development much more streamlined. Please see our [Native DApps](https://github.com/EtherFact-Project/go-etherfact/wiki/Native-DApps:-Go-bindings-to-etherfact-contracts) wiki page for details. |
| `bootnode` | Stripped down version of our EtherFact client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It can be used as a lightweight bootstrap node to aid in finding peers in private networks. | | `bootnode` | Stripped down version of our EtherFact client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It can be used as a lightweight bootstrap node to aid in finding peers in private networks. |
| `evm` | Developer utility version of the EVM (EtherFact Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. `evm --code 60ff60ff --debug`). | | `evm` | Developer utility version of the EVM (EtherFact Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. `evm --code 60ff60ff --debug`). |
@ -43,7 +43,7 @@ The go-etherfact project comes with several wrappers/executables found in the `c
| `swarm` | swarm daemon and tools. This is the entrypoint for the swarm network. `swarm --help` for command line options and subcommands. See https://swarm-guide.readthedocs.io for swarm documentation. | | `swarm` | swarm daemon and tools. This is the entrypoint for the swarm network. `swarm --help` for command line options and subcommands. See https://swarm-guide.readthedocs.io for swarm documentation. |
| `puppeth` | a CLI wizard that aids in creating a new EtherFact network. | | `puppeth` | a CLI wizard that aids in creating a new EtherFact network. |
## Running geth ## Running getf
Going through all the possible command line flags is out of scope here (please consult our Going through all the possible command line flags is out of scope here (please consult our
[CLI Wiki page](https://github.com/EtherFact-Project/go-etherfact/wiki/Command-Line-Options)), but we've [CLI Wiki page](https://github.com/EtherFact-Project/go-etherfact/wiki/Command-Line-Options)), but we've
@ -58,19 +58,19 @@ the user doesn't care about years-old historical data, so we can fast-sync quick
state of the network. To do so: state of the network. To do so:
``` ```
$ geth console $ getf console
``` ```
This command will: This command will:
* Start geth in fast sync mode (default, can be changed with the `--syncmode` flag), causing it to * Start getf in fast sync mode (default, can be changed with the `--syncmode` flag), causing it to
download more data in exchange for avoiding processing the entire history of the EtherFact network, download more data in exchange for avoiding processing the entire history of the EtherFact network,
which is very CPU intensive. which is very CPU intensive.
* Start up Geth's built-in interactive [JavaScript console](https://github.com/EtherFact-Project/go-etherfact/wiki/JavaScript-Console), * Start up Geth's built-in interactive [JavaScript console](https://github.com/EtherFact-Project/go-etherfact/wiki/JavaScript-Console),
(via the trailing `console` subcommand) through which you can invoke all official [`web3` methods](https://github.com/EtherFact-Project/wiki/wiki/JavaScript-API) (via the trailing `console` subcommand) through which you can invoke all official [`web3` methods](https://github.com/EtherFact-Project/wiki/wiki/JavaScript-API)
as well as Geth's own [management APIs](https://github.com/EtherFact-Project/go-etherfact/wiki/Management-APIs). as well as Geth's own [management APIs](https://github.com/EtherFact-Project/go-etherfact/wiki/Management-APIs).
This too is optional and if you leave it out you can always attach to an already running Geth instance This too is optional and if you leave it out you can always attach to an already running Geth instance
with `geth attach`. with `getf attach`.
### Full node on the EtherFact test network ### Full node on the EtherFact test network
@ -80,7 +80,7 @@ entire system. In other words, instead of attaching to the main network, you wan
network with your node, which is fully equivalent to the main network, but with play-Ether only. network with your node, which is fully equivalent to the main network, but with play-Ether only.
``` ```
$ geth --testnet console $ getf --testnet console
``` ```
The `console` subcommand have the exact same meaning as above and they are equally useful on the The `console` subcommand have the exact same meaning as above and they are equally useful on the
@ -91,8 +91,8 @@ Specifying the `--testnet` flag however will reconfigure your Geth instance a bi
* Instead of using the default data directory (`~/.etherfact` on Linux for example), Geth will nest * Instead of using the default data directory (`~/.etherfact` on Linux for example), Geth will nest
itself one level deeper into a `testnet` subfolder (`~/.etherfact/testnet` on Linux). Note, on OSX itself one level deeper into a `testnet` subfolder (`~/.etherfact/testnet` on Linux). Note, on OSX
and Linux this also means that attaching to a running testnet node requires the use of a custom and Linux this also means that attaching to a running testnet node requires the use of a custom
endpoint since `geth attach` will try to attach to a production node endpoint by default. E.g. endpoint since `getf attach` will try to attach to a production node endpoint by default. E.g.
`geth attach <datadir>/testnet/geth.ipc`. Windows users are not affected by this. `getf attach <datadir>/testnet/getf.ipc`. Windows users are not affected by this.
* Instead of connecting the main EtherFact network, the client will connect to the test network, * Instead of connecting the main EtherFact network, the client will connect to the test network,
which uses different P2P bootnodes, different network IDs and genesis states. which uses different P2P bootnodes, different network IDs and genesis states.
@ -106,24 +106,24 @@ separate the two networks and will not make any accounts available between them.
The above test network is a cross client one based on the ethash proof-of-work consensus algorithm. As such, it has certain extra overhead and is more susceptible to reorganization attacks due to the network's low difficulty / security. Go etherfact also supports connecting to a proof-of-authority based test network called [*Rinkeby*](https://www.rinkeby.io) (operated by members of the community). This network is lighter, more secure, but is only supported by go-etherfact. The above test network is a cross client one based on the ethash proof-of-work consensus algorithm. As such, it has certain extra overhead and is more susceptible to reorganization attacks due to the network's low difficulty / security. Go etherfact also supports connecting to a proof-of-authority based test network called [*Rinkeby*](https://www.rinkeby.io) (operated by members of the community). This network is lighter, more secure, but is only supported by go-etherfact.
``` ```
$ geth --rinkeby console $ getf --rinkeby console
``` ```
### Configuration ### Configuration
As an alternative to passing the numerous flags to the `geth` binary, you can also pass a configuration file via: As an alternative to passing the numerous flags to the `getf` binary, you can also pass a configuration file via:
``` ```
$ geth --config /path/to/your_config.toml $ getf --config /path/to/your_config.toml
``` ```
To get an idea how the file should look like you can use the `dumpconfig` subcommand to export your existing configuration: To get an idea how the file should look like you can use the `dumpconfig` subcommand to export your existing configuration:
``` ```
$ geth --your-favourite-flags dumpconfig $ getf --your-favourite-flags dumpconfig
``` ```
*Note: This works only with geth v1.6.0 and above.* *Note: This works only with getf v1.6.0 and above.*
#### Docker quick start #### Docker quick start
@ -135,9 +135,9 @@ docker run -d --name etherfact-node -v /Users/alice/etherfact:/root \
etherfact/client-go etherfact/client-go
``` ```
This will start geth in fast-sync mode with a DB memory allowance of 1GB just as the above command does. It will also create a persistent volume in your home directory for saving your blockchain as well as map the default ports. There is also an `alpine` tag available for a slim version of the image. This will start getf in fast-sync mode with a DB memory allowance of 1GB just as the above command does. It will also create a persistent volume in your home directory for saving your blockchain as well as map the default ports. There is also an `alpine` tag available for a slim version of the image.
Do not forget `--rpcaddr 0.0.0.0`, if you want to access RPC from other containers and/or hosts. By default, `geth` binds to the local interface and RPC endpoints is not accessible from the outside. Do not forget `--rpcaddr 0.0.0.0`, if you want to access RPC from other containers and/or hosts. By default, `getf` binds to the local interface and RPC endpoints is not accessible from the outside.
### Programatically interfacing Geth nodes ### Programatically interfacing Geth nodes
@ -222,7 +222,7 @@ With the genesis state defined in the above JSON file, you'll need to initialize
with it prior to starting it up to ensure all blockchain parameters are correctly set: with it prior to starting it up to ensure all blockchain parameters are correctly set:
``` ```
$ geth init path/to/genesis.json $ getf init path/to/genesis.json
``` ```
#### Creating the rendezvous point #### Creating the rendezvous point
@ -251,7 +251,7 @@ via the `--bootnodes` flag. It will probably also be desirable to keep the data
private network separated, so do also specify a custom `--datadir` flag. private network separated, so do also specify a custom `--datadir` flag.
``` ```
$ geth --datadir=path/to/custom/data/folder --bootnodes=<bootnode-enode-url-from-above> $ getf --datadir=path/to/custom/data/folder --bootnodes=<bootnode-enode-url-from-above>
``` ```
*Note: Since your network will be completely cut off from the main and test networks, you'll also *Note: Since your network will be completely cut off from the main and test networks, you'll also
@ -270,7 +270,7 @@ resources (consider running on a single thread, no need for multiple ones either
instance for mining, run it with all your usual flags, extended by: instance for mining, run it with all your usual flags, extended by:
``` ```
$ geth <usual-flags> --mine --minerthreads=1 --etherbase=0x0000000000000000000000000000000000000000 $ getf <usual-flags> --mine --minerthreads=1 --etherbase=0x0000000000000000000000000000000000000000
``` ```
Which will start mining blocks and transactions on a single CPU thread, crediting all proceedings to Which will start mining blocks and transactions on a single CPU thread, crediting all proceedings to

View file

@ -41,4 +41,4 @@ Then go into the source package directory for your running distribution and buil
Built packages are placed in the dist/ directory. Built packages are placed in the dist/ directory.
$ cd .. $ cd ..
$ dpkg-deb -c geth-unstable_1.6.0+xenial_amd64.deb $ dpkg-deb -c getf-unstable_1.6.0+xenial_amd64.deb

View file

@ -11,8 +11,8 @@ Vcs-Browser: https://github.com/ethereum/go-ethereum
Package: {{.Name}} Package: {{.Name}}
Architecture: any Architecture: any
Depends: ${misc:Depends}, {{.ExeList}} Depends: ${misc:Depends}, {{.ExeList}}
Description: Meta-package to install geth and other tools Description: Meta-package to install getf and other tools
Meta-package to install geth and other tools Meta-package to install getf and other tools
{{range .Executables}} {{range .Executables}}
Package: {{$.ExeName .}} Package: {{$.ExeName .}}

View file

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.ethereum</groupId> <groupId>org.ethereum</groupId>
<artifactId>geth</artifactId> <artifactId>getf</artifactId>
<version>{{.Version}}</version> <version>{{.Version}}</version>
<packaging>aar</packaging> <packaging>aar</packaging>

View file

@ -6,11 +6,11 @@
# - BUILDVERSION, build id version # - BUILDVERSION, build id version
# #
# The created installer executes the following steps: # The created installer executes the following steps:
# 1. install geth for all users # 1. install getf for all users
# 2. install optional development tools such as abigen # 2. install optional development tools such as abigen
# 3. create an uninstaller # 3. create an uninstaller
# 4. configures the Windows firewall for geth # 4. configures the Windows firewall for getf
# 5. create geth, attach and uninstall start menu entries # 5. create getf, attach and uninstall start menu entries
# 6. configures the registry that allows Windows to manage the package through its platform tools # 6. configures the registry that allows Windows to manage the package through its platform tools
# 7. adds the environment system wide variable ETHEREUM_SOCKET # 7. adds the environment system wide variable ETHEREUM_SOCKET
# 8. adds the install directory to %PATH% # 8. adds the install directory to %PATH%
@ -55,7 +55,7 @@ ${EndIf}
!macroend !macroend
function .onInit function .onInit
# make vars are global for all users since geth is installed global # make vars are global for all users since getf is installed global
setShellVarContext all setShellVarContext all
!insertmacro VerifyUserIsAdmin !insertmacro VerifyUserIsAdmin

View file

@ -1,4 +1,4 @@
Name "geth ${MAJORVERSION}.${MINORVERSION}.${BUILDVERSION}" # VERSION variables set through command line arguments Name "getf ${MAJORVERSION}.${MINORVERSION}.${BUILDVERSION}" # VERSION variables set through command line arguments
InstallDir "$InstDir" InstallDir "$InstDir"
OutFile "${OUTPUTFILE}" # set through command line arguments OutFile "${OUTPUTFILE}" # set through command line arguments
@ -12,15 +12,15 @@ PageEx license
LicenseData {{.License}} LicenseData {{.License}}
PageExEnd PageExEnd
# Install geth binary # Install getf binary
Section "Geth" GETH_IDX Section "Geth" GETH_IDX
SetOutPath $INSTDIR SetOutPath $INSTDIR
file {{.Geth}} file {{.Geth}}
# Create start menu launcher # Create start menu launcher
createDirectory "$SMPROGRAMS\${APPNAME}" createDirectory "$SMPROGRAMS\${APPNAME}"
createShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\geth.exe" "--fast" "--cache=512" createShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\getf.exe" "--fast" "--cache=512"
createShortCut "$SMPROGRAMS\${APPNAME}\Attach.lnk" "$INSTDIR\geth.exe" "attach" "" "" createShortCut "$SMPROGRAMS\${APPNAME}\Attach.lnk" "$INSTDIR\getf.exe" "attach" "" ""
createShortCut "$SMPROGRAMS\${APPNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "" "" createShortCut "$SMPROGRAMS\${APPNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "" ""
# Firewall - remove rules (if exists) # Firewall - remove rules (if exists)
@ -29,13 +29,13 @@ Section "Geth" GETH_IDX
SimpleFC::AdvRemoveRule "Geth UDP discovery (UDP:30303)" SimpleFC::AdvRemoveRule "Geth UDP discovery (UDP:30303)"
# Firewall - add rules # Firewall - add rules
SimpleFC::AdvAddRule "Geth incoming peers (TCP:30303)" "" 6 1 1 2147483647 1 "$INSTDIR\geth.exe" "" "" "Ethereum" 30303 "" "" "" SimpleFC::AdvAddRule "Geth incoming peers (TCP:30303)" "" 6 1 1 2147483647 1 "$INSTDIR\getf.exe" "" "" "Ethereum" 30303 "" "" ""
SimpleFC::AdvAddRule "Geth outgoing peers (TCP:30303)" "" 6 2 1 2147483647 1 "$INSTDIR\geth.exe" "" "" "Ethereum" "" 30303 "" "" SimpleFC::AdvAddRule "Geth outgoing peers (TCP:30303)" "" 6 2 1 2147483647 1 "$INSTDIR\getf.exe" "" "" "Ethereum" "" 30303 "" ""
SimpleFC::AdvAddRule "Geth UDP discovery (UDP:30303)" "" 17 2 1 2147483647 1 "$INSTDIR\geth.exe" "" "" "Ethereum" "" 30303 "" "" SimpleFC::AdvAddRule "Geth UDP discovery (UDP:30303)" "" 17 2 1 2147483647 1 "$INSTDIR\getf.exe" "" "" "Ethereum" "" 30303 "" ""
# Set default IPC endpoint (https://github.com/ethereum/EIPs/issues/147) # Set default IPC endpoint (https://github.com/ethereum/EIPs/issues/147)
${EnvVarUpdate} $0 "ETHEREUM_SOCKET" "R" "HKLM" "\\.\pipe\geth.ipc" ${EnvVarUpdate} $0 "ETHEREUM_SOCKET" "R" "HKLM" "\\.\pipe\getf.ipc"
${EnvVarUpdate} $0 "ETHEREUM_SOCKET" "A" "HKLM" "\\.\pipe\geth.ipc" ${EnvVarUpdate} $0 "ETHEREUM_SOCKET" "A" "HKLM" "\\.\pipe\getf.ipc"
# Add instdir to PATH # Add instdir to PATH
Push "$INSTDIR" Push "$INSTDIR"

View file

@ -22,7 +22,7 @@ Section "Uninstall"
SimpleFC::AdvRemoveRule "Geth UDP discovery (UDP:30303)" SimpleFC::AdvRemoveRule "Geth UDP discovery (UDP:30303)"
# Remove IPC endpoint (https://github.com/ethereum/EIPs/issues/147) # Remove IPC endpoint (https://github.com/ethereum/EIPs/issues/147)
${un.EnvVarUpdate} $0 "ETHEREUM_SOCKET" "R" "HKLM" "\\.\pipe\geth.ipc" ${un.EnvVarUpdate} $0 "ETHEREUM_SOCKET" "R" "HKLM" "\\.\pipe\getf.ipc"
# Remove install directory from PATH # Remove install directory from PATH
Push "$INSTDIR" Push "$INSTDIR"

View file

@ -24,9 +24,9 @@ dependencies:
test: test:
override: override:
# Build Geth and move into a known folder # Build Geth and move into a known folder
- make geth - make getf
- cp ./build/bin/geth $HOME/geth - cp ./build/bin/getf $HOME/getf
# Run hive and move all generated logs into the public artifacts folder # Run hive and move all generated logs into the public artifacts folder
- (cd ~/.go_workspace/src/github.com/karalabe/hive && hive --docker-noshell --client=go-ethereum:local --override=$HOME/geth --test=. --sim=.) - (cd ~/.go_workspace/src/github.com/karalabe/hive && hive --docker-noshell --client=go-ethereum:local --override=$HOME/getf --test=. --sim=.)
- cp -r ~/.go_workspace/src/github.com/karalabe/hive/workspace/logs/* $CIRCLE_ARTIFACTS - cp -r ~/.go_workspace/src/github.com/karalabe/hive/workspace/logs/* $CIRCLE_ARTIFACTS

View file

@ -3,12 +3,12 @@ FROM alpine:3.7
RUN \ RUN \
apk add --update go git make gcc musl-dev linux-headers ca-certificates && \ apk add --update go git make gcc musl-dev linux-headers ca-certificates && \
git clone --depth 1 https://github.com/ethereum/go-ethereum && \ git clone --depth 1 https://github.com/ethereum/go-ethereum && \
(cd go-ethereum && make geth) && \ (cd go-ethereum && make getf) && \
cp go-ethereum/build/bin/geth /geth && \ cp go-ethereum/build/bin/getf /getf && \
apk del go git make gcc musl-dev linux-headers && \ apk del go git make gcc musl-dev linux-headers && \
rm -rf /go-ethereum && rm -rf /var/cache/apk/* rm -rf /go-ethereum && rm -rf /var/cache/apk/*
EXPOSE 8545 EXPOSE 8545
EXPOSE 30303 EXPOSE 30303
ENTRYPOINT ["/geth"] ENTRYPOINT ["/getf"]

View file

@ -6,12 +6,12 @@ RUN \
apt-get update && apt-get upgrade -q -y && \ apt-get update && apt-get upgrade -q -y && \
apt-get install -y --no-install-recommends golang-1.9 git make gcc libc-dev ca-certificates && \ apt-get install -y --no-install-recommends golang-1.9 git make gcc libc-dev ca-certificates && \
git clone --depth 1 https://github.com/ethereum/go-ethereum && \ git clone --depth 1 https://github.com/ethereum/go-ethereum && \
(cd go-ethereum && make geth) && \ (cd go-ethereum && make getf) && \
cp go-ethereum/build/bin/geth /geth && \ cp go-ethereum/build/bin/getf /getf && \
apt-get remove -y golang-1.9 git make gcc libc-dev && apt autoremove -y && apt-get clean && \ apt-get remove -y golang-1.9 git make gcc libc-dev && apt autoremove -y && apt-get clean && \
rm -rf /go-ethereum rm -rf /go-ethereum
EXPOSE 8545 EXPOSE 8545
EXPOSE 30303 EXPOSE 30303
ENTRYPOINT ["/geth"] ENTRYPOINT ["/getf"]

View file

@ -3,12 +3,12 @@ FROM alpine:3.7
RUN \ RUN \
apk add --update go git make gcc musl-dev linux-headers ca-certificates && \ apk add --update go git make gcc musl-dev linux-headers ca-certificates && \
git clone --depth 1 --branch release/1.8 https://github.com/ethereum/go-ethereum && \ git clone --depth 1 --branch release/1.8 https://github.com/ethereum/go-ethereum && \
(cd go-ethereum && make geth) && \ (cd go-ethereum && make getf) && \
cp go-ethereum/build/bin/geth /geth && \ cp go-ethereum/build/bin/getf /getf && \
apk del go git make gcc musl-dev linux-headers && \ apk del go git make gcc musl-dev linux-headers && \
rm -rf /go-ethereum && rm -rf /var/cache/apk/* rm -rf /go-ethereum && rm -rf /var/cache/apk/*
EXPOSE 8545 EXPOSE 8545
EXPOSE 30303 EXPOSE 30303
ENTRYPOINT ["/geth"] ENTRYPOINT ["/getf"]

View file

@ -6,12 +6,12 @@ RUN \
apt-get update && apt-get upgrade -q -y && \ apt-get update && apt-get upgrade -q -y && \
apt-get install -y --no-install-recommends golang-1.9 git make gcc libc-dev ca-certificates && \ apt-get install -y --no-install-recommends golang-1.9 git make gcc libc-dev ca-certificates && \
git clone --depth 1 --branch release/1.8 https://github.com/ethereum/go-ethereum && \ git clone --depth 1 --branch release/1.8 https://github.com/ethereum/go-ethereum && \
(cd go-ethereum && make geth) && \ (cd go-ethereum && make getf) && \
cp go-ethereum/build/bin/geth /geth && \ cp go-ethereum/build/bin/getf /getf && \
apt-get remove -y golang-1.9 git make gcc libc-dev && apt autoremove -y && apt-get clean && \ apt-get remove -y golang-1.9 git make gcc libc-dev && apt autoremove -y && apt-get clean && \
rm -rf /go-ethereum rm -rf /go-ethereum
EXPOSE 8545 EXPOSE 8545
EXPOSE 30303 EXPOSE 30303
ENTRYPOINT ["/geth"] ENTRYPOINT ["/getf"]

View file

@ -1,6 +1,6 @@
## Go Ethereum Dashboard ## Go Ethereum Dashboard
The dashboard is a data visualizer integrated into geth, intended to collect and visualize useful information of an Ethereum node. It consists of two parts: The dashboard is a data visualizer integrated into getf, intended to collect and visualize useful information of an Ethereum node. It consists of two parts:
* The client visualizes the collected data. * The client visualizes the collected data.
* The server collects the data, and updates the clients. * The server collects the data, and updates the clients.
@ -18,7 +18,7 @@ $ (cd dashboard/assets && yarn install && yarn flow)
Normally the dashboard assets are bundled into Geth via `go-bindata` to avoid external dependencies. Rebuilding Geth after each UI modification however is not feasible from a developer perspective. Instead, we can run `yarn dev` to watch for file system changes and refresh the browser automatically. Normally the dashboard assets are bundled into Geth via `go-bindata` to avoid external dependencies. Rebuilding Geth after each UI modification however is not feasible from a developer perspective. Instead, we can run `yarn dev` to watch for file system changes and refresh the browser automatically.
``` ```
$ geth --dashboard --vmodule=dashboard=5 $ getf --dashboard --vmodule=dashboard=5
$ (cd dashboard/assets && yarn dev) $ (cd dashboard/assets && yarn dev)
``` ```

View file

@ -4,7 +4,7 @@ default: build
build: build:
go build -o bin/swarm github.com/ethereum/go-ethereum/cmd/swarm go build -o bin/swarm github.com/ethereum/go-ethereum/cmd/swarm
go build -o bin/geth github.com/ethereum/go-ethereum/cmd/geth go build -o bin/getf github.com/ethereum/go-ethereum/cmd/getf
go build -o bin/bootnode github.com/ethereum/go-ethereum/cmd/bootnode go build -o bin/bootnode github.com/ethereum/go-ethereum/cmd/bootnode
cluster: build cluster: build

View file

@ -11,7 +11,7 @@ at a bash prompt inside the `swarm/dev` directory.
### Build binaries ### Build binaries
Run `make` to build the `swarm`, `geth` and `bootnode` binaries into the Run `make` to build the `swarm`, `getf` and `bootnode` binaries into the
`swarm/dev/bin` directory. `swarm/dev/bin` directory.
### Boot a cluster ### Boot a cluster

View file

@ -9,7 +9,7 @@ cat <<WELCOME
Welcome to the swarm development environment. Welcome to the swarm development environment.
- Run 'make' to build the swarm, geth and bootnode binaries - Run 'make' to build the swarm, getf and bootnode binaries
- Run 'make test' to run the swarm unit tests - Run 'make test' to run the swarm unit tests
- Run 'make cluster' to start a swarm cluster - Run 'make cluster' to start a swarm cluster
- Run 'exit' to exit the development environment - Run 'exit' to exit the development environment

View file

@ -3,7 +3,7 @@
# A script to boot a dev swarm cluster on a Linux host (typically in a Docker # A script to boot a dev swarm cluster on a Linux host (typically in a Docker
# container started with swarm/dev/run.sh). # container started with swarm/dev/run.sh).
# #
# The cluster contains a bootnode, a geth node and multiple swarm nodes, with # The cluster contains a bootnode, a getf node and multiple swarm nodes, with
# each node having its own data directory in a base directory passed with the # each node having its own data directory in a base directory passed with the
# --dir flag (default is swarm/dev/cluster). # --dir flag (default is swarm/dev/cluster).
# #
@ -12,7 +12,7 @@
# the 192.168.33.0/24 subnet: # the 192.168.33.0/24 subnet:
# #
# bootnode: 192.168.33.2 # bootnode: 192.168.33.2
# geth: 192.168.33.3 # getf: 192.168.33.3
# swarm: 192.168.33.10{1,2,...,n} # swarm: 192.168.33.10{1,2,...,n}
set -e set -e
@ -37,7 +37,7 @@ BOOTNODE_KEY="32078f313bea771848db70745225c52c00981589ad6b5b49163f0f5ee852617d"
BOOTNODE_PUBKEY="760c4460e5336ac9bbd87952a3c7ec4363fc0a97bd31c86430806e287b437fd1b01abc6e1db640cf3106b520344af1d58b00b57823db3e1407cbc433e1b6d04d" BOOTNODE_PUBKEY="760c4460e5336ac9bbd87952a3c7ec4363fc0a97bd31c86430806e287b437fd1b01abc6e1db640cf3106b520344af1d58b00b57823db3e1407cbc433e1b6d04d"
BOOTNODE_URL="enode://${BOOTNODE_PUBKEY}@${BOOTNODE_IP}:${BOOTNODE_PORT}" BOOTNODE_URL="enode://${BOOTNODE_PUBKEY}@${BOOTNODE_IP}:${BOOTNODE_PORT}"
# static geth configuration # static getf configuration
GETH_IP="192.168.33.3" GETH_IP="192.168.33.3"
GETH_RPC_PORT="8545" GETH_RPC_PORT="8545"
GETH_RPC_URL="http://${GETH_IP}:${GETH_RPC_PORT}" GETH_RPC_URL="http://${GETH_IP}:${GETH_RPC_PORT}"
@ -121,7 +121,7 @@ create_network() {
ip address add "${subnet}" dev "${BRIDGE_NAME}" ip address add "${subnet}" dev "${BRIDGE_NAME}"
} }
# start_bootnode starts a bootnode which is used to bootstrap the geth and # start_bootnode starts a bootnode which is used to bootstrap the getf and
# swarm nodes # swarm nodes
start_bootnode() { start_bootnode() {
local key_file="${base_dir}/bootnode.key" local key_file="${base_dir}/bootnode.key"
@ -136,25 +136,25 @@ start_bootnode() {
start_node "bootnode" "${BOOTNODE_IP}" "$(which bootnode)" ${args[@]} start_node "bootnode" "${BOOTNODE_IP}" "$(which bootnode)" ${args[@]}
} }
# start_geth_node starts a geth node with --datadir pointing at <base-dir>/geth # start_geth_node starts a getf node with --datadir pointing at <base-dir>/getf
# and a single, unlocked account with password "geth" # and a single, unlocked account with password "getf"
start_geth_node() { start_geth_node() {
local dir="${base_dir}/geth" local dir="${base_dir}/getf"
mkdir -p "${dir}" mkdir -p "${dir}"
local password="geth" local password="getf"
echo "${password}" > "${dir}/password" echo "${password}" > "${dir}/password"
# create an account if necessary # create an account if necessary
if [[ ! -e "${dir}/keystore" ]]; then if [[ ! -e "${dir}/keystore" ]]; then
info "creating geth account" info "creating getf account"
create_account "${dir}" "${password}" create_account "${dir}" "${password}"
fi fi
# get the account address # get the account address
local address="$(jq --raw-output '.address' ${dir}/keystore/*)" local address="$(jq --raw-output '.address' ${dir}/keystore/*)"
if [[ -z "${address}" ]]; then if [[ -z "${address}" ]]; then
fail "failed to get geth account address" fail "failed to get getf account address"
fi fi
local args=( local args=(
@ -169,7 +169,7 @@ start_geth_node() {
--verbosity "6" --verbosity "6"
) )
start_node "geth" "${GETH_IP}" "$(which geth)" ${args[@]} start_node "getf" "${GETH_IP}" "$(which getf)" ${args[@]}
} }
start_swarm_nodes() { start_swarm_nodes() {
@ -282,7 +282,7 @@ create_account() {
local dir=$1 local dir=$1
local password=$2 local password=$2
geth --datadir "${dir}" --password /dev/stdin account new <<< "${password}" getf --datadir "${dir}" --password /dev/stdin account new <<< "${password}"
} }
main "$@" main "$@"

View file

@ -29,7 +29,7 @@ main() {
local pid_dir="${base_dir}/pids" local pid_dir="${base_dir}/pids"
stop_swarm_nodes stop_swarm_nodes
stop_node "geth" stop_node "getf"
stop_node "bootnode" stop_node "bootnode"
delete_network delete_network
} }