| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
cmd/puppeth: format dashboard html, update syncmode flags
|
|/ |
|
|
|
|
|
|
| |
* consensus, core, ethstats: use engine specific block beneficiary
* core, eth, les, miner: use explicit beneficiary during mining
|
|
|
|
|
|
| |
* consensus/clique, internal/web3ext: support hash based API queries
* consensus/clique: make RPC return types public
|
|\
| |
| | |
internal/ethapi: Add support for fetching information about the current call in JS traces
|
| |
| |
| |
| | |
in JS traces
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Moved fuse related code in a new package, swarm/fuse
- Added write support
- Create new files
- Delete existing files
- Append to files (with limitations)
- More test coverage
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
This PR is a prototype implementation of plugable consensus engines and the
Clique PoA protocol ethereum/EIPs#225
|
| | |
|
|\ \
| | |
| | | |
eth: announce block after sync cycle (star topology)
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* whisper: GetMessages fixed; size restriction updated
* whisper: made PoW and MaxMsgSize customizable
* whisper: test added
* whisper: sym key management changed
* whisper: identity management refactored
* whisper: API refactoring (Post and Filter)
* whisper: big refactoring complete
* whisper: spelling fix
* whisper: variable topic size allowed for a filter
* whisper: final update
* whisper: formatting
* whisper: file exchange introduced in wnode
* whisper: bugfix
* whisper: API updated + new tests
* whisper: statistics updated
* whisper: wnode server updated
* whisper: allowed filtering for variable topic size
* whisper: tests added
* whisper: resolving merge conflicts
* whisper: refactoring (documenting mostly)
* whsiper: tests fixed
* whisper: down cased error messages
* whisper: documenting the API functions
* whisper: logging fixed
* whisper: fixed wnode parameters
* whisper: logs fixed (typos)
|
|\ \
| | |
| | | |
travis, appveyor: update to Go 1.8.1
|
|/ / |
|
|\ \
| |/
|/| |
consensus/ethash, eth: don't mine if 0 threads are set
|
|/ |
|
|\
| |
| | |
all: clean up various error handling in core and the miner
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
This PR deprecates the file related RPC calls in favour of an improved HTTP API.
The main aim is to expose a simple to use API which can be consumed by thin
clients (e.g. curl and HTML forms) without the need for complex logic (e.g.
manipulating prefix trie manifests).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* cmd, les, eth, eth/gasprice: using new gas price oracle
* eth/gasprice: renamed source file
* eth/gasprice: added security checks for gpo params
* eth/gasprice: fixed naming issues
* eth/gasprice: max limit, maxEmpty
|
| |
| |
| |
| |
| |
| | |
- intended to be a swarm alternative to termbin.com
- added --stdin flag to swarm executable. if set, swarm will
read data from stdin and postRaw it.
|
|/
|
|
|
|
|
|
| |
This commit adds a build step to travis to auto-delete unstable archives older than
14 days (our regular release schedule) from Azure via ci.go purge.
The commit also pulls in the latest Azure storage code, also switching over from
the old import path (github.com/Azure/azure-sdk-for-go) to the new split one
(github.com/Azure/azure-storage-go).
|
|
|
|
|
|
|
|
|
|
| |
* Makefile: fix devtools target
* core: regenerate genesis marshaling with fjl/gencodec@cbfa5be5a8a8
* core/types: regenerate marshaling methods with fjl/gencodec@cbfa5be5a8a8
* core/types: add "hash" to JSON headers
|
| |
|
|
|
|
|
|
| |
* debug: Converted uint64-blocknumber into rpc.Blocknumber
* api/debug: Fix pending block issues in DumpBlock
|
|
|
|
|
|
| |
In `touch` operation, only `touched` filed has been changed. Therefore
in the related undo function, only `touched` field should be reverted.
In addition, whether remove this obj from dirty map should depend on
prevDirty flag.
|
|
|
|
|
|
|
|
| |
This adds a swarm ls command which lists files and directories stored in a
manifest. Rather than listing all files, it uses "directory prefixes" in case there are a
lot of files in a manifest but you just want to traverse it.
This also includes some refactoring to the tests and the introduction of a
swarm/api/client package to make things easier to test.
|
|
|
|
|
| |
This commit adds pluggable consensus engines to go-ethereum. In short, it
introduces a generic consensus interface, and refactors the entire codebase to
use this interface.
|
|\
| |
| | |
ethstats: sanity check ethstats history queries
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* swarm/api: fix build/tests on unsupported platforms
Skip FUSE tests if FUSE is unavailable and change build constraints so
the 'lesser' platforms aren't mentioned explicitly. The test are
compiled on all platforms to prevent regressions in _fallback.go
Also gofmt -w -s because why not.
* internal/web3ext: fix swarmfs wrappers
Remove inputFormatter specifications so users get an error
when passing the wrong number of arguments.
* swarm/api: improve FUSE-related logging and APIs
The API now returns JSON objects instead of strings.
Log messages for invalid arguments are removed.
|
|\
| |
| | |
ethstats: work around weird URL scheme parsing issues
|
|/ |
|
|
|
| |
Fixes #3792 by stripping debug symbols.
|
| |
|
|\
| |
| | |
core, core/types: use non-pointer receiver for Marshal* methods
|
| |
| |
| |
| |
| | |
Regenerated with fjl/gencodec@1a75a2161009
Also add ,omitempty to optional GenesisAccount fields.
|
|\ \
| |/
|/| |
accounts/usbwallet: fix Ledger hidapi/libusb protocol violation
|
| | |
|
| | |
|
|\ \
| | |
| | | |
core/types: ensure all EIP155 signer fields are set by deriveSigner
|
|/ /
| |
| |
| | |
Fixes #3819
|
| | |
|
|\ \
| | |
| | | |
build: unify vendor skipping, always run go vet
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This ensures 'make test' finds all errors that remote CI would find.
Go 1.7 vet reports a false positive in package log, add a workaround.
|
| |/
| |
| |
| |
| | |
This fixes a recent bug where 'make geth' built everything instead of
just geth.
|
| | |
|
|\ \
| |/
|/| |
core: refactor genesis handling
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit solves several issues concerning the genesis block:
* Genesis/ChainConfig loading was handled by cmd/geth code. This left
library users in the cold. They could specify a JSON-encoded
string and overwrite the config, but didn't get any of the additional
checks performed by geth.
* Decoding and writing of genesis JSON was conflated in
WriteGenesisBlock. This made it a lot harder to embed the genesis
block into the forthcoming config file loader. This commit changes
things so there is a single Genesis type that represents genesis
blocks. All uses of Write*Genesis* are changed to use the new type
instead.
* If the chain config supplied by the user was incompatible with the
current chain (i.e. the chain had already advanced beyond a scheduled
fork), it got overwritten. This is not an issue in practice because
previous forks have always had the highest total difficulty. It might
matter in the future though. The new code reverts the local chain to
the point of the fork when upgrading configuration.
The change to genesis block data removes compression library
dependencies from package core.
|
| |
| |
| |
| |
| |
| | |
All uses of ChainConfig.ChainId eventually end up in NewEIP155Signer.
This fixes the case where users forget to set the ChainId in their
config.
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
pow: fix Search with ethash test mode
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The cache/dataset methods crashed with a nil pointer error if
cachesinmem/dagsinmem were zero. Fix it by skipping the eviction logic
if there are no caches/datasets.
Search always used the regular dataset size regardless of test mode. Fix
it by removing the redundant size parameter of hashimotoFull.
Fixes #3784
|
|\ \
| | |
| | | |
all: import "context" instead of "golang.org/x/net/context"
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no need to depend on the old context package now that the
minimum Go version is 1.7. The move to "context" eliminates our weird
vendoring setup. Some vendored code still uses golang.org/x/net/context
and it is now vendored in the normal way.
This change triggered new vet checks around context.WithTimeout which
didn't fire with golang.org/x/net/context.
|
| |
| |
| |
| |
| | |
* les: implement request distributor, fix blocking issues
* core: moved header validation before chain mutex lock
|
|\ \
| | |
| | | |
build: require Go >= 1.7
|
| | |
| | |
| | |
| | | |
We don't use the opencl build tag anymore.
|
|/ /
| |
| |
| |
| |
| |
| | |
We have decided to bump the requirement to Go 1.7 because it enables
subtests and allows dropping backwards-compatibility code. This is in
line with Go's support policy. Go 1.6 and earlier no longer receive
security updates.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
core/types: use gencodec for JSON marshaling code
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
travis: switch to cocoapods 1.2.0 stable
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
ethstats: try both ws:// and wss:// if none specified
|
| | | | |
|
| | | | |
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
Fixes #3762. Details about parameter:
https://github.com/rs/cors/blob/a62a804a8a009876ca59105f7899938a1349f4b3/cors.go#L50-L54
|
|/ / |
|
|\ \
| | |
| | | |
light: added new CHT
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* main,import: Add --nocompaction flag + multiple import files
* geth/import: documentation
* import: Added more info to err message
* fix :P
|
|\ \
| |/
|/| |
mobile: Fix typo ( Ethereun -> Ethereum )
|
|/ |
|
|\
| |
| | |
all: update light logs (and a few others) to the new model
|
| | |
|
|\ \
| | |
| | | |
core: reorg logs crashed, add a check for corner cases
|
| |/ |
|
|\ \
| |/
|/| |
build: fix xgo argument order when building from make
|
|/ |
|
| |
|
|\
| |
| | |
build: bundle the bootnode too into alltools
|
| | |
|
|\ \
| |/
|/| |
travis: support building mips32 and mips64 too
|
| | |
|
|\ \
| | |
| | | |
common/hexutil: implement TextMarshaler, TextUnmarshaler
|
| | |
| | |
| | |
| | | |
Restricting encoding is silly.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit makes the wrapper types more generally applicable.
encoding.TextMarshaler is supported by most codec implementations (e.g.
for yaml).
The tests now ensure that package json actually recognizes the custom
marshaler implementation irrespective of how it is implemented.
The Uint type has new tests, too. These are tricky because uint size
depends on the CPU word size. Turns out that there was one incorrect
case where decoding returned ErrUint64Range instead of ErrUintRange.
|
| | |
| | |
| | |
| | |
| | | |
All other functions return errors from package hexutil, ensure that
Decode does too.
|
| | |
| | |
| | |
| | | |
This follows the change to common/math big integer parsing in PR #3699.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* accounts, cmd, eth, ethdb: port logs over to new system
* ethdb: drop concept of cache distribution between dbs
* eth: fix some log nitpicks to make them nicer
|
|\ \ \
| |/ /
|/| | |
core/evm, core/vm: improved evm trace output
|
| | |
| | |
| | |
| | |
| | |
| | | |
Added the ability to directly compile and run ethereum assembly using
the evm utility: `evm run <file>`. This is equivalant to `evm compile
<file> | evm run`.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
* Improved the standard evm tracer output and renamed it to WriteTrace
which now takes an io.Writer to write the logs to.
* Added WriteLogs which writes logs to the given writer in a readable
format.
* evm utility now also prints logs generated during the execution.
|
|/ |
|
|
|
|
|
| |
The evm compile command implements a simple assembly language that compiles to
EVM bytecode.
|
| |
|
|\
| |
| | |
errs: kill it with fire
|
|/ |
|
|\
| |
| | |
Logger updates
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* common/math: optimize PaddedBigBytes, use it more
name old time/op new time/op delta
PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19)
name old alloc/op new alloc/op delta
PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20)
* all: unify big.Int zero checks
Various checks were in use. This commit replaces them all with Int.Sign,
which is cheaper and less code.
eg templates:
func before(x *big.Int) bool { return x.BitLen() == 0 }
func after(x *big.Int) bool { return x.Sign() == 0 }
func before(x *big.Int) bool { return x.BitLen() > 0 }
func after(x *big.Int) bool { return x.Sign() != 0 }
func before(x *big.Int) int { return x.Cmp(common.Big0) }
func after(x *big.Int) int { return x.Sign() }
* common/math, crypto/secp256k1: make ReadBits public in package math
|
|\
| |
| | |
core, eth: drop database block splitting upgrader
|
|/ |
|
|
|
|
|
|
| |
* Updated the list of go bootnodes: replaced BR with a new one, added US-WEST and AU.
* Updated bootnodes, minor go formatting change.
|
|\
| |
| | |
p2p, p2p/discover, p2p/nat: rework logging using context keys
|
| | |
|
| | |
|
|\ \
| |/
|/| |
common, eth/downloader, log: support terminal log formatting
|
|/ |
|
|\
| |
| | |
internal/ethapi: return logsBloom for pending block
|
| | |
|
|\ \
| |/
|/| |
log: fix annoyances
|
| |
| |
| |
| | |
Also tweak behaviour so colors are only enabled when stderr is a terminal.
|
| | |
|
|/ |
|
|\
| |
| | |
eth/downloader: port over old logs from glog to log15
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
vendor: update HID library for glibc < v2.17 build
|
| |/ |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* common: remove CurrencyToString
Move denomination values to params instead.
* common: delete dead code
* common: move big integer operations to common/math
This commit consolidates all big integer operations into common/math and
adds tests and documentation.
There should be no change in semantics for BigPow, BigMin, BigMax, S256,
U256, Exp and their behaviour is now locked in by tests.
The BigD, BytesToBig and Bytes2Big functions don't provide additional
value, all uses are replaced by new(big.Int).SetBytes().
BigToBytes is now called PaddedBigBytes, its minimum output size
parameter is now specified as the number of bytes instead of bits. The
single use of this function is in the EVM's MSTORE instruction.
Big and String2Big are replaced by ParseBig, which is slightly stricter.
It previously accepted leading zeros for hexadecimal inputs but treated
decimal inputs as octal if a leading zero digit was present.
ParseUint64 is used in places where String2Big was used to decode a
uint64.
The new functions MustParseBig and MustParseUint64 are now used in many
places where parsing errors were previously ignored.
* common: delete unused big integer variables
* accounts/abi: replace uses of BytesToBig with use of encoding/binary
* common: remove BytesToBig
* common: remove Bytes2Big
* common: remove BigTrue
* cmd/utils: add BigFlag and use it for error-checked integer flags
While here, remove environment variable processing for DirectoryFlag
because we don't use it.
* core: add missing error checks in genesis block parser
* common: remove String2Big
* cmd/evm: use utils.BigFlag
* common/math: check for 256 bit overflow in ParseBig
This is supposed to prevent silent overflow/truncation of values in the
genesis block JSON. Without this check, a genesis block that set a
balance larger than 256 bits would lead to weird behaviour in the VM.
* cmd/utils: fixup import
|
|\
| |
| | |
Drop legacy commands
|
| |
| |
| |
| |
| |
| |
| | |
This command was meant as a hackish way to upgrade our chain database way back
when nobody cared for live updates and the size of the database along with its
import times was small. With the current database weighing hundreds of GBs and
processing times of many days, this command is just ludicrous.
|
| |
| |
| |
| |
| |
| | |
All the state and block tests are ran as part of our CU builds internally, as
well as have been added to hive black-box tests. As such, there is no reason for
maintaining an extra standalone tool.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only ethereum/rpc-tests used this command, which hasn't been maintained for over
a year now, a lot of tests failing. What's left of it was moved underneath hive,
which can run the entire test against a black-box geth without special commands.
Also a new RPC test suite is being added which is also based on black box tests,
not needing special commands any more.
|
| | |
|
|/ |
|
|\
| |
| | |
Contextual logger
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* whisper: wnode updated for tests with geth
* whisper: updated processing of incoming messages
* whisper: symmetric encryption updated
* whisper: filter id type changed to enhance security
* whisper: allow filter without topic for asymmetric encryption
* whisper: POW updated
* whisper: logging updated
* whisper: spellchecker update
* whisper: error handling changed
* whisper: JSON field names fixed
|
|
|
|
|
| |
This PR implements a differenceIterator, which allows iterating over trie nodes
that exist in one trie but not in another. This is a prerequisite for most GC
strategies, in order to find obsolete nodes.
|
|
|
|
| |
Removed exported statedb object accessors, reducing the chance for nasty
bugs to creep in. It's also ugly and unnecessary to have these methods.
|
|\
| |
| | |
travis: only run go vet and misspell on latest Go
|
|/ |
|
|\
| |
| | |
travis, appveyor: update builders to Go 1.8
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* cmd/geth: added 'geth bug' command
Added bug command to geth, which will open a browser window
with an issue template and some additional system information.
* cmd/geth: update bug with better infos
* cmd/geth: added browser fallback
* cmd/geth: govet yo momma
|
|/ |
|
|\
| |
| | |
accounts/usbwallet: swap karalabe/gousb to karalabe/hid
|
| | |
|
| | |
|
| |
| |
| |
| | |
of Get (#3655)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* vendor: add github.com/btcsuite/btcd/btcec
* crypto: add btcec fallback for sign/recover without cgo
This commit adds a non-cgo fallback implementation of secp256k1
operations.
* crypto, core/vm: remove wrappers for sha256, ripemd160
|
| | |
|
|\ \
| |/
|/| |
swarm/api/http: fix go vet issue on Go 1.8
|
|/ |
|
|\
| |
| | |
vendor: update dependencies with github.com/kardianos/govendor
|
|/ |
|
| |
|
|\
| |
| | |
params: core, core/vm, miner: 64bit gas instructions
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reworked the EVM gas instructions to use 64bit integers rather than
arbitrary size big ints. All gas operations, be it additions,
multiplications or divisions, are checked and guarded against 64 bit
integer overflows.
In additon, most of the protocol paramaters in the params package have
been converted to uint64 and are now constants rather than variables.
* common/math: added overflow check ops
* core: vmenv, env renamed to evm
* eth, internal/ethapi, les: unmetered eth_call and cancel methods
* core/vm: implemented big.Int pool for evm instructions
* core/vm: unexported intPool methods & verification methods
* core/vm: added memoryGasCost overflow check and test
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* whisper: mailserver test introduced, refactoring
* whisper: validation test updated
* whisper: max number of peers fixed
* whisper: verification bug fixed
* whisper: esthetic fix
* whisper: interface changed to simplify the transition to v5
* whisper: preparation for version switch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* core,eth,internal: Added `debug_getBadBlocks()` method
When bad blocks are discovered, these are stored within geth.
An RPC-endpoint makes them availablewithin the `debug`
namespace. This feature makes it easier to discover network forks.
```
* core, api: go format + docs
* core/blockchain: Documentation, fix minor nitpick
* core: fix failing blockchain test
|
| |
|
|\
| |
| | |
params: 1.5.9 stable
|
| | |
|
|\ \
| | |
| | | |
Dockerfile: support building USB on Alpine, ignore temp files
|
| |/ |
|
|\ \
| |/
|/| |
cmd/swarm: handle SIGTERM unix signal for clean exit
|
|/ |
|
|\
| |
| | |
Revert "params: core, core/vm, miner: 64bit gas instructions (#3514)"
|
|/
|
|
| |
This reverts commit 8b57c494908637a5c0e74f8f7a13b3218e026757.
|
|\
| |
| | |
accounts: initial support for Ledger hardware wallets
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Handle a data race where a Ledger drops between list and open
- Prolong Ledger tx confirmation window to 30 days from 1 minute
- Simplify Ledger chainid-signature calculation and validation
- Simplify Ledger USB APDU request chunking algorithm
- Silence keystore account cache notifications for manual actions
- Only enable self derivations if wallet open succeeds
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* swarm/network: integrity on incoming known chunks
* swarm/network: fix integrity check for incoming chunks
* swarm/storage: imrpoved integrity checking on chunks
* dbstore panics on corrupt chunk entry an prompts user to run cleandb
* memstore adds logging for garbage collection
* dbstore refactor item delete. correct partial deletes in Get
* cmd/swarm: added cleandb subcommand
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
travis: split Android off OSX, use native image
|
|/ |
|
|\
| |
| | |
cmd/abigen: parse contract name as abi identifier
|
| | |
|
| |
| |
| | |
closes #3650
|
|\ \
| | |
| | | |
event: use sync.Once for init for faster/cleaner locking
|
| | | |
|
|/ /
| |
| | |
Signed-off-by: DiSiqueira <dieg0@live.com>
|
|\ \
| | |
| | | |
core/genesis: add support for setting nonce in 'alloc'
|
| | |
| | |
| | |
| | | |
This is to be able to set `pre`-state when performing blockchain tests through Hive, we need to be able to set the nonce.
|
|\ \ \
| | | |
| | | | |
event: add new Subscription type and related utilities
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
event: address Feed review issues
event: clarify role of NewSubscription function
event: more Feed review fixes
* take sendLock after dropping f.mu
* add constant for number of special cases
event: fix subscribing/unsubscribing while Send is blocked
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This change makes client subscriptions compatible with the new
Subscription semantics introduced in the previous commit.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit introduces a new Subscription type, which is synonymous with
ethereum.Subscription. It also adds a couple of utilities that make
working with Subscriptions easier. The mot complex utility is Feed, a
synchronisation device that implements broadcast subscriptions. Feed is
slightly faster than TypeMux and will replace uses of TypeMux across the
go-ethereum codebase in the future.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The Subscription type is gone, all uses are replaced by
*TypeMuxSubscription. This change is prep-work for the
introduction of the new Subscription type in a later commit.
gorename -from '"github.com/ethereum/go-ethereum/event"::Event' -to TypeMuxEvent
gorename -from '"github.com/ethereum/go-ethereum/event"::muxsub' -to TypeMuxSubscription
gofmt -w -r 'Subscription -> *TypeMuxSubscription' ./event/*.go
find . -name '*.go' -and -not -regex '\./vendor/.*' \| xargs gofmt -w -r 'event.Subscription -> *event.TypeMuxSubscription'
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reworked the EVM gas instructions to use 64bit integers rather than
arbitrary size big ints. All gas operations, be it additions,
multiplications or divisions, are checked and guarded against 64 bit
integer overflows.
In additon, most of the protocol paramaters in the params package have
been converted to uint64 and are now constants rather than variables.
* common/math: added overflow check ops
* core: vmenv, env renamed to evm
* eth, internal/ethapi, les: unmetered eth_call and cancel methods
* core/vm: implemented big.Int pool for evm instructions
* core/vm: unexported intPool methods & verification methods
* core/vm: added memoryGasCost overflow check and test
|
| |
| |
| |
| | |
We must take a write lock here because `GetNonce` calls
`StateDB.GetStateObject`, which mutates the DB's live set.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
les: fix private net issues, enable adding peers manually again
|
| | | |
|
| | | |
|
| | | |
|