| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
* cmd/evm: Allow stdin and files as sources of bytecode
* cmd/evm: Print and exit instead of panicing
* cmd/evm: fix compile and vet errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit includes several API changes:
- The behavior of eth_sign is changed. It now accepts an arbitrary
message, prepends the well-known string
\x19Ethereum Signed Message:\n<length of message>
hashes the result using keccak256 and calculates the signature of
the hash. This breaks backwards compatability!
- personal_sign(hash, address [, password]) is added. It has the same
semantics as eth_sign but also accepts a password. The private key
used to sign the hash is temporarily unlocked in the scope of the
request.
- personal_recover(message, signature) is added and returns the
address for the account that created a signature.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit converts the dependency management from Godeps to the vendor
folder, also switching the tool from godep to trash. Since the upstream tool
lacks a few features proposed via a few PRs, until those PRs are merged in
(if), use github.com/karalabe/trash.
You can update dependencies via trash --update.
All dependencies have been updated to their latest version.
Parts of the build system are reworked to drop old notions of Godeps and
invocation of the go vet command so that it doesn't run against the vendor
folder, as that will just blow up during vetting.
The conversion drops OpenCL (and hence GPU mining support) from ethash and our
codebase. The short reasoning is that there's noone to maintain and having
opencl libs in our deps messes up builds as go install ./... tries to build
them, failing with unsatisfied link errors for the C OpenCL deps.
golang.org/x/net/context is not vendored in. We expect it to be fetched by the
user (i.e. using go get). To keep ci.go builds reproducible the package is
"vendored" in build/_vendor.
|
|
|
|
|
| |
(#3209)
Fixes #3203
|
|\
| |
| | |
Update goleveldb, add debug.chaindbCompact
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
eth/downloader: fix a data race in a log output
|
|/ / |
|
|\ \
| |/
|/| |
cmd/geth, code, eth/downloader: tune import logs and mem stats
|
|/ |
|
|\
| |
| | |
cmd/geth, trie: report on trie cache unloads, also add debug log
|
|/ |
|
| |
|
|\
| |
| | |
cmd, core/state: allow configurable trie cache generations
|
| | |
|
|/ |
|
|\
| |
| | |
core/vm: fix GASPRICE string (resolves #2553)
|
| | |
|
|\ \
| | |
| | | |
trie: improve cache unloading mechanism
|
| | |
| | |
| | |
| | | |
This was caught by the new invariant check.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit 40cdcf1183 broke the optimisation which kept nodes resolved
during Get in the trie. The decoder assigned cache generation 0
unconditionally, causing resolved nodes to get flushed on Commit.
This commit fixes it and adds two tests.
|
| | |
| | |
| | |
| | |
| | | |
New checks whether the root node is present by loading it from the
database. Keep the node around instead of discarding it.
|
|\ \ \
| |_|/
|/| | |
cmd/geth, trie: track and report trie cache misses
|
|/ / |
|
| |
| |
| | |
The pending state was not copied while not mining, leading to a data race.
|
|\ \
| | |
| | | |
core: Add block processing time metric collection
|
| | | |
|
|\ \ \
| | | |
| | | | |
cmd/geth: compact and print database stats after an import
|
|/ / / |
|
|\ \ \
| |/ /
|/| | |
common, core, eth/downloader: adjust import log formatting
|
|/ / |
|
|\ \
| |/
|/| |
internal/ethapi, internal/web3ext: adds raw tx retrieval methods
|
| | |
|
|\ \
| | |
| | | |
trie: fix regression that linked all downloaded nodes together
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The trie sync code links subtries using pointers into node structs.
Since commit 40cdcf1183 nodes are no longer copied when unpacking from
an interface value, causing all nodes to get linked up as the sync
progresses. Fix it by breaking the pointer chain with an explicit copy.
|
|\ \ \
| |/ /
|/| | |
params: set reprice block number to 2463000
|
|/ / |
|
|\ \
| | |
| | | |
core, core/vm: added gas price variance table (EIP #150)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This implements 1b & 1c of EIP150 by adding a new GasTable which must be
returned from the RuleSet config method. This table is used to determine
the gas prices for the current epoch.
Please note that when the CreateBySuicide gas price is set it is assumed
that we're in the new epoch phase.
In addition this PR will serve as temporary basis while refactorisation
in being done in the EVM64 PR, which will substentially overhaul the gas
price code.
|
|\ \ \
| | | |
| | | | |
core: add global (soft) limits on the pending transactions
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* trie: store nodes as pointers
This avoids memory copies when unwrapping node interface values.
name old time/op new time/op delta
Get 388ns ± 8% 215ns ± 2% -44.56% (p=0.000 n=15+15)
GetDB 363ns ± 3% 202ns ± 2% -44.21% (p=0.000 n=15+15)
UpdateBE 1.57µs ± 2% 1.29µs ± 3% -17.80% (p=0.000 n=13+15)
UpdateLE 1.92µs ± 2% 1.61µs ± 2% -16.25% (p=0.000 n=14+14)
HashBE 2.16µs ± 6% 2.18µs ± 6% ~ (p=0.436 n=15+15)
HashLE 7.43µs ± 3% 7.21µs ± 3% -2.96% (p=0.000 n=15+13)
* trie: close temporary databases in GetDB benchmark
* trie: don't keep []byte from DB load around
Nodes decoded from a DB load kept hashes and values as sub-slices of
the DB value. This can be a problem because loading from leveldb often
returns []byte with a cap that's larger than necessary, increasing
memory usage.
* trie: unload old cached nodes
* trie, core/state: use cache unloading for account trie
* trie: use explicit private flags (fixes Go 1.5 reflection issue).
* trie: fixup cachegen overflow at request of nick
* core/state: rename journal size constant
|
|\ \ \ \
| |/ / /
|/| | | |
metrics, internal/debug: Add --pprofaddr flag, expose metrics via gexp
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
swarm: fix http API's last problems
|
| | | | |
| | | | |
| | | | |
| | | | | |
case when Read returns less than length of target slice
|
|\| | | |
| |/ / /
|/| | | |
swarm/storage: fixes for tree chunker in the context of a broken reader
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* brokenLimitedReader gives error after half size
* TestRandomBrokenData tests chunker with broken reader
* add blocking quitC (instead of errC) and use errC only for errors
* don't close chunkC in tester Split,
* use quitC to quit chunk storage loop
|
|\ \ \ \
| |/ / /
|/| | | |
core: fixed import reporter
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
core: print import stats more often
|
| | | | |
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
If geth is busy importing 2048 heavy blocks it can take a while before
it prints anything. This change ensures that a message gets printed
every 8s.
|
|\ \ \
| |/ /
|/| | |
core: lower transaction pool max queue limit
|
|/ / |
|
|\ \
| |/
|/| |
core/types: renamed receiptRoot to receiptsRoot
|
| | |
|
|\ \
| | |
| | | |
tests: update test files from github.com/ethereum/tests @ 45bc1d21d3c1
|
| | |
| | |
| | |
| | |
| | |
| | | |
Two new tests are skipped because they're buggy. Making some newer
random state tests work required implementing the 'compressed return
value encoding'.
|
|\ \ \
| | | |
| | | | |
core/state: implement reverts by journaling all changes
|
| | | |
| | | |
| | | |
| | | | |
There is no need to use the reflection-based decoder to decode []byte.
|
| | | |
| | | |
| | | |
| | | | |
The delete/remove naming has caused endless confusion in the past.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit replaces the deep-copy based state revert mechanism with a
linear complexity journal. This commit also hides several internal
StateDB methods to limit the number of ways in which calling code can
use the journal incorrectly.
As usual consultation and bug fixes to the initial implementation were
provided by @karalabe, @obscuren and @Arachnid. Thank you!
|
|\ \ \ \
| | | | |
| | | | | |
eth: monitor malicious header retrieval requests
|
| | |_|/
| |/| | |
|
|\ \ \ \
| |_|_|/
|/| | | |
internal/ethapi: bugfix gas price and limit swapped in eth_resend
|
| |/ / |
|
|\ \ \
| |/ /
|/| | |
rpc: set CORS Max-Age to reduce preflight OPTIONS requests
|
| |/ |
|
|\ \
| |/
|/| |
internal/build: fix git tag env variable for AppVeyor
|
|/ |
|
|\
| |
| | |
internal/build: use less edgy command to get the branch name
|
|/ |
|
|\
| |
| | |
core/state: track dirty state entries for each object
|
|/ |
|
|\
| |
| | |
build: improve debian packaging
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit tweaks the debian packaging tool:
* All build environment metadata can now be overriden on the command
line. This allows testing the CI build behaviour locally.
* -unstable packages now actually contain the binaries (oops)
* packages use Go 1.7 to build
* archiving is skipped for PR builds
|
|\ \
| | |
| | | |
crypto/sha3: update from golang.org/x/crypto/sha3 a 80b25ed4
|
|/ /
| |
| |
| | |
This pulls in the assembly implementation of keccakf1600 for amd64.
|
|\ \
| |/
|/| |
cmd, core, internal, light, tests: avoid hashing the code in the VM
|
|/ |
|
|\
| |
| | |
trie: fix delete bug for values contained in fullNode
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Delete crashed if a fullNode contained a valueNode directly. This bug is
very unlikely to occur with SecureTrie, but can happen with regular
tries. This commit also introduces a randomised test which triggers all
trie operations, which should prevent such bugs in the future.
Credit for finding this bug goes to Github user @rjl493456442.
|
| |
| |
| |
| |
| | |
Package crypto needs cgo, which is inconvenient for some build
configurations.
|
|\ \
| | |
| | | |
accounts: left pad keybytes-to-encrypt
|
| | | |
|
|\ \ \
| |_|/
|/| | |
cmd/utils, node: make datadir reusable for bzzd
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This change ensures that nodes started with different Name but same
DataDir values don't use the same nodekey and IPC socket.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Port mapper auto discovery used to run immediately after parsing the
--nat flag, giving it a slight performance boost. But this is becoming
inconvenient because we create node.Node for all geth operations
including account management and bare chain interaction. Delay
autodiscovery until the first use instead, which avoids any network
interaction until the node is actually started.
|
|\ \ \
| | | |
| | | | |
README: Changed http:// to https:// on some links
|
| | |/
| |/|
| | | |
Changed http:// to https:// on some links in README.md
|
| | | |
|
|\ \ \
| |/ /
|/| | |
core, trie: replace state caches with trie journal
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
cmd/utils: don't check for stderr redirect on windows
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
The redirect check did not work on Go 1.6 and below because Stat
returned an error for stdout and stderr. In Go 1.7 Stat works on stdout
but doesn't return anything meaningful, causing cmd/geth test failures
because the message is printed to stderr only. Fix it by printing to
stdout only.
|
|\ \
| | |
| | | |
build: limit test concurrency
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
TravisCI and AppVeyor run the tests in very slow VMs.
Some of our tests can't cope with that. Running less tests
in parallel should make them somewhat less flakey.
|
|\ \ \
| |/ /
|/| | |
accounts/abi: fix typo in the comment (dummy commit)
|
|/ / |
|
|\ \
| | |
| | | |
State caching
|
|/ /
| |
| |
| |
| | |
This change introduces a global, per-state cache that keeps account data
in the canon state. Thanks to @karalabe for lots of fixes.
|
|\ \
| | |
| | | |
core/state: short-circuit balance change if zero value
|
|/ / |
|
|\ \
| | |
| | | |
light: fix memory expansion bug (same as fix for core/state)
|
| | | |
|
|\ \ \
| |/ /
|/| | |
ethclient: bugfix retrieving logs
|
|/ / |
|
|\ \
| | |
| | | |
core/state, light: remove unused StateObject.initCode
|
|/ / |
|
|\ \
| |/
|/| |
core/state: Fix memory expansion bug by not copying clean objects
|
| | |
|
|\ \
| | |
| | | |
cmd, eth: drop the blockchain version from cli/eth configs
|
|/ / |
|
|\ \
| | |
| | | |
miner: set tx index logs
|
| | | |
|
|\ \ \
| | | |
| | | | |
rpc: format filter ID according to spec for quantities
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
core/types, ethclient: fix broken subscriptions
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
ethereum, ethclient: add SyncProgress API endpoint
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
cmd/evm, cmd/geth, cmd/utils: move version handling to cmd/utils
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
miner: Prevent attempts to close nil quit channel in agent (fixes #2948)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
#2948)
Also remove the now un-needed mutex locking in Start() and Stop()
|
|\ \ \ \
| | | | |
| | | | | |
Transaction pool optimizations
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
contracts/ens: Replace setOwner with setSubnodeOwner per EIP137
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
swarm: plan bee for content storage and distribution on web3
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change imports the Swarm protocol codebase. Compared to the 'swarm'
branch, a few mostly cosmetic changes had to be made:
* The various redundant log message prefixes are gone.
* All files now have LGPLv3 license headers.
* Minor code changes were needed to please go vet and make the tests
pass on Windows.
* Further changes were required to adapt to the go-ethereum develop
branch and its new Go APIs.
Some code has not (yet) been brought over:
* swarm/cmd/bzzhash: will reappear as cmd/bzzhash later
* swarm/cmd/bzzup.sh: will be reimplemented in cmd/bzzup
* swarm/cmd/makegenesis: will reappear somehow
* swarm/examples/album: will move to a separate repository
* swarm/examples/filemanager: ditto
* swarm/examples/files: will not be merged
* swarm/test/*: will not be merged
* swarm/services/swear: will reappear as contracts/swear when needed
|
|\ \ \ \
| |/ / /
|/| | | |
Small docker run example for main README
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
contracts/release: move package release to contracts/
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This change also deletes generator.go, moving the only interesting line
in it into release.go. The binding has been regenerated with abigen from
develop and solc v0.3.6.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
contracts/ens: regenerate binding with solc v0.3.6
|
| |/ / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
contracts/chequebook: fix possible reentrancy bug in chequebook contract
|
|/ / / / / |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Godeps: update golang.org/x/...
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
contracts/ens: Add ENS contract binding
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
contracts/chequebook: add chequebook contract wrapper
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The wrapper code is adapted from the swarm/services/chequebook package
with the following mostly cosmetic changes:
* The code now uses the new Go API interfaces to query balances. Some
minor functional changes were required to make this work.
* The package no longer depends on swarm/services/swap/swap. References
to swap.Promise are replaced by interface{}, the base type of Promise.
This is temporary.
* The contract wrapper has been regenerated with latest abigen
and solc v0.3.6.
* There is a new generator that creates the 'deployed code' variable.
* Documentation comments now follow the recommended godoc style.
* [CHEQUEBOOK] log prefixes are gone.
* LGPL license headers have been added to all files.
|
|/ / / / |
|
|\ \ \ \
| |_|/ /
|/| | | |
Stable Go API, part 1
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The need for these functions comes up in code that actually deploys and
uses contracts. As of this commit, they can be used with both
SimulatedBackend and ethclient.
SimulatedBackend gains some additional methods in the process and is now
safe for concurrent use.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In this commit, contract bindings and their backend start using the
Ethereum Go API interfaces offered by ethclient. This makes ethclient a
suitable replacement for the old remote backend and gets us one step
closer to the final stable Go API that is planned for go-ethereum 1.5.
The changes in detail:
* Pending state is optional for read only contract bindings.
BoundContract attempts to discover the Pending* methods via an
interface assertion. There are a couple of advantages to this:
ContractCaller is just two methods and can be implemented on top of
pretty much anything that provides Ethereum data. Since the backend
interfaces are now disjoint, ContractBackend can simply be declared as
a union of the reader and writer side.
* Caching of HasCode is removed. The caching could go wrong in case of
chain reorganisations and removing it simplifies the code a lot.
We'll figure out a performant way of providing ErrNoCode before the
1.5 release.
* BoundContract now ensures that the backend receives a non-nil context
with every call.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The remote backend is superseded by ethclient.
The nil backend's stated purpose was to enable testing of
accounts/abi/bind. None of its methods actually worked. A much simpler
way to get a crashing backend is to simply pass nil as the backend. With
a one-line change to the generator (removing two explicit interface
assertions), passing nil actually works.
Removing these backends means that less changes are required later.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ethclient implements the proposed Ethereum Go API. There are no tests at
the moment, a suite that excercises all implementations of the API will
be added later.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- returned headers didn't include mixHash
- returned transactions didn't include signature fields
- empty transaction input was returned as "", but should be "0x"
- returned receipts didn't include the bloom filter
- "root" in receipts was missing 0x prefix
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In this commit, core/types's types learn how to encode and decode
themselves as JSON. The encoding is very similar to what the RPC API
uses. The RPC API is missing some output fields (e.g. transaction
signature values) which will be added to the API in a later commit. Some
fields that the API generates are ignored by the decoder methods here.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
ValidateFields was introduced before the rlp decoder disallowed nil
values. Decoding RLP will never return nil values, there is no need
to check for them.
|
|\ \ \
| | | |
| | | | |
internal/ethapi: Fix bug in opCodeWrapper usage
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
internal/ethapi: Improve tracer error reporting and serialization
|
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
core/vm, eth: Add support for javascript trace functions
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
(#2924)
|
|\ \ \ \
| |/ / /
|/| | | |
cmd/utils: removed DAO oppose / support message
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
cmd/geth: added copyright and license information
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
As per GNU GPL requirement I've added the copyright and the license
information as a subcommand as well as a copyright notice when
displaying the help command.
|
|\ \ \
| | | |
| | | | |
core: Refactor tracing to make Tracer the main interface
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This CL makes several refactors:
- Define a Tracer interface, implementing the `CaptureState` method
- Add the VM environment as the first argument of
`Tracer.CaptureState`
- Rename existing functionality `StructLogger` an make it an
implementation of `Tracer`
- Delete `StructLogCollector` and make `StructLogger` collect the logs
directly
- Change all callers to use the new `StructLogger` where necessary and
extract logs from that.
- Deletes the apparently obsolete and likely nonfunctional 'TraceCall'
from the eth API.
Callers that only wish accumulated logs can use the `StructLogger`
implementation straightforwardly. Callers that wish to efficiently
capture VM traces and operate on them without excessive copying can now
implement the `Tracer` interface to receive VM state at each step and
do with it as they wish.
This CL also removes the accumulation of logs from the vm.Environment;
this was necessary as part of the refactor, but also simplifies it by
removing a responsibility that doesn't directly belong to the
Environment.
|
|\ \ \
| |/ /
|/| | |
eth/fetcher: fix a log message formatting issue
|
|/ / |
|
|\ \
| | |
| | | |
all: clean up tech debt left behind by the API split
|
| | |
| | |
| | |
| | |
| | | |
This ensures that package core doesn't depend on package accounts and
resolves an age-old TODO.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Support for legacy version 0.9.x is gone. The compiler version is no
longer cached. Compilation results (and the version) are read directly
from stdout using the --combined-json flag. As a workaround for
ethereum/solidity#651, source code is written to a temporary file before
compilation.
Integration of solc in package ethapi and cmd/abigen is now much simpler
because the compiler wrapper is no longer passed around as a pointer.
Fixes #2806, accidentally
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The account manager was previously created by packge cmd/utils as part
of flag processing and then passed down into eth.Ethereum through its
config struct. Since we are starting to create nodes which do not have
eth.Ethereum as a registered service, the code was rearranged to
register the account manager as its own service. Making it a service is
ugly though and it doesn't really fix the root cause: creating nodes
without eth.Ethereum requires duplicating lots of code.
This commit splits utils.MakeSystemNode into three functions, making
creation of other node/service configurations easier. It also moves the
account manager into Node so it can be used by those configurations
without requiring package eth.
|
|\ \ \
| | | |
| | | | |
rpc: refactor subscriptions and filters
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
TravisCI: add Go 1.7 targets, bump PPA to 1.7 too
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
core: ensure the canonical block is written before the canonical hash is set
|
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
eth/downloader: fewer headers and futures too in ancestor lookup
|
| | | | |
|
| |/ /
|/| |
| | | |
Fixes #2872
|
|\ \ \
| | | |
| | | | |
rpc: client bug fixes
|
| | | |
| | | |
| | | |
| | | |
| | | | |
It's inconsistent not to pass it and most callers will
work with contexts anyway.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I initially made the client block if the 100-element buffer was
exceeded. It turns out that this is inconvenient for simple uses of the
client which subscribe and perform calls on the same goroutine, e.g.
client, _ := rpc.Dial(...)
ch := make(chan int) // note: no buffer
sub, _ := client.EthSubscribe(ch, "something")
for event := range ch {
client.Call(...)
}
This innocent looking code will lock up if the server suddenly decides
to send 2000 notifications. In this case, the client's main loop won't
accept the call because it is trying to deliver a notification to ch.
The issue is kind of hard to explain in the docs and few people will
actually read them. Buffering is the simple option and works with close
to no overhead for subscribers that always listen.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
eth/downloader: abort sync if master drops (timeout prev)
|
| | |/ /
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
eth, eth/downloader: don't forward the DAO challenge header
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
eth, eth/downloader: better remote head tracking
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Makefile, build: move cross compilation into ci.go
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
core/vm: hide ecrecover error message
|
| | |_|/ /
| |/| | |
| | | | |
| | | | | |
Fixes #2825
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Godeps: update github.com/rjeczalik/notify to f627deca7a51
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Fixes #2829
|
|\ \ \ \ \
| | | | | |
| | | | | | |
node, p2p, internal: Add ability to remove peers via admin interface
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | | |
Fix README typo
|
|/ / / / /
| | | | |
| | | | |
| | | | | |
"fine graned" -> "fine-grained"
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
containers/docker: use shallow clone of single branch
|
| | | | | |
|
|/ / / / |
|
|\ \ \ \
| |_|/ /
|/| | | |
eth/downloader: fix the stall checks/drops during sync
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
rpc: add new client, use it everywhere
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The new client implementation supports concurrent requests,
subscriptions and replaces the various ad hoc RPC clients
throughout go-ethereum.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If a batch request contained an invalid method, the server would reply
with a non-batch error response. Fix this by tracking an error for each
batch element.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The server delayed closing of connections for 3s when stopping. This was
supposed to allow for slow handlers, but it didn't really work. When
geth quits, it will just exit immediately after quitting the server.
Removing the timer makes testing easier because all connections will be
closed after Stop returns.
|
|\ \ \ \
| |/ / /
|/| | | |
eth, eth/downloader, eth/fetcher: delete eth/61 sync code
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The eth/61 protocol was disabled in #2776, this commit removes its
message handlers and hash-chain sync logic.
|
|\ \ \ \
| | | | |
| | | | | |
eth/api: rename signAndSendTransaction to sendTransaction
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
containers/docker: update to alpine 3.4
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
eth: cancel DAO challenge on peer drop (annoying log)
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
Godeps: bump github.com/syndtr/goleveldb/... to ab8b5dcf104
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #2710 Filter race: concurrent map read and map write
|
| | | | |
| | | | |
| | | | |
| | | | | |
and locking bugs found in its wake.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
cmd/bootnode: Add support for outputting a node's ID on the command line
|
| | |_|_|/
| |/| | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
eth: fixed chaindb upgrade
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
cmd, core, eth, miner, params, tests: finalize the DAO fork
|
| | | | | |
|
| | | | | |
|