Jeffrey Wilcke
7399b138a8
Merge pull request #1923 from karalabe/cleanup-receipt-data-access
...
core, eth, miner, xeth: clean up tx/receipt db accessors
2015-11-19 15:28:15 +01:00
Jeffrey Wilcke
65bb07fb4e
Merge pull request #1980 from fjl/downloader-deliver-hang
...
eth/downloader: don't hang for spurious deliveries
2015-11-19 15:19:21 +01:00
Péter Szilágyi
e86e0ecdc8
core, eth, miner, xeth: clean up tx/receipt db accessors
2015-11-19 16:03:32 +02:00
Felix Lange
dd09af27af
eth/downloader: run tests in parallel
2015-11-19 14:18:35 +01:00
Felix Lange
b7b62d4b3c
eth/downloader: also drain stateCh, receiptCh in eth/61 mode
...
State and receipt deliveries from a previous eth/62+ sync can hang if
the downloader has moved on to syncing with eth/61. Fix this by also
draining the eth/63 channels while waiting for eth/61 data.
A nicer solution would be to take care of the channels in a central
place, but that would involve a major rewrite.
2015-11-19 14:18:35 +01:00
Felix Lange
db52a6a0ff
eth: remove workaround for asynchronous processing in the downloader
2015-11-19 14:18:34 +01:00
Felix Lange
900da3d800
eth/downloader: don't hang for spurious deliveries
...
Unexpected deliveries could block indefinitely if they arrived at the
right time. The fix is to ensure that the cancellation channel is
always closed when the sync ends, unblocking any deliveries. Also remove
the atomic check for whether a sync is currently running because it
doesn't help and can be misleading.
Cancelling always seems to break the tests though. The downloader
spawned d.process whenever new data arrived, making it somewhat hard to
track when block processing was actually done. Fix this by running
d.process in a dedicated goroutine that is tied to the lifecycle of the
sync. d.process gets notified of new work by the queue instead of being
invoked all the time. This removes a ton of weird workaround code,
including a hairy use of atomic CAS.
2015-11-19 14:18:34 +01:00
Jeffrey Wilcke
a1d9ef48c5
core, eth, rpc: split out block validator and state processor
...
This removes the burden on a single object to take care of all
validation and state processing. Now instead the validation is done by
the `core.BlockValidator` (`types.Validator`) that takes care of both
header and uncle validation through the `ValidateBlock` method and state
validation through the `ValidateState` method. The state processing is
done by a new object `core.StateProcessor` (`types.Processor`) and
accepts a new state as input and uses that to process the given block's
transactions (and uncles for rewords) to calculate the state root for
the next block (P_n + 1).
2015-11-18 14:24:42 +01:00
Jeffrey Wilcke
2334ee97d0
Merge pull request #1963 from karalabe/fix-database-regression
...
eth: fix error casting regression during database open
2015-11-05 20:27:11 +01:00
Péter Szilágyi
5d89bbdda1
eth: fix error casting regression during database open
2015-11-05 16:59:16 +02:00
Jeffrey Wilcke
e3f36d9728
Merge pull request #1960 from karalabe/fix-peer-ignore-list
...
eth/downloader: fix dysfunctional ignore list hidden by generic set
2015-11-04 14:43:58 +01:00
Péter Szilágyi
b658a73ed5
eth/downloader: fix dysfunctional ignore list hidden by generic set
2015-11-04 13:11:52 +02:00
Jeffrey Wilcke
e165c2d23c
Merge pull request #1934 from karalabe/polish-protocol-infos
...
eth, p2p, rpc/api: polish protocol info gathering
2015-11-04 11:59:31 +01:00
Jeffrey Wilcke
016ad3e962
Merge pull request #1952 from obscuren/testnet-peers
...
eth: added new testnet peers
2015-10-30 11:00:31 +01:00
Jeffrey Wilcke
98b036ddb6
Merge pull request #1949 from karalabe/update-command-usage
...
cmd/geth, cmd/utils, eth: group CLI flags by purpose
2015-10-30 10:59:36 +01:00
Péter Szilágyi
3c6e285d3b
cmd/geth, cmd/utils, eth: group CLI flags by purpose
2015-10-30 11:33:12 +02:00
Jeffrey Wilcke
1bc789553a
eth: added new testnet peers
2015-10-30 10:01:19 +01:00
Jeffrey Wilcke
fc46cf337a
Merge pull request #1946 from fjl/xeth-oom
...
Fix for xeth OOM issue
2015-10-29 17:42:55 +01:00
Felix Lange
fbdb44dcc1
cmd/utils, rpc/comms: stop XEth when IPC connection ends
...
There are a bunch of changes required to make this work:
- in miner: allow unregistering agents, fix RemoteAgent.Stop
- in eth/filters: make FilterSystem.Stop not crash
- in rpc/comms: move listen loop to platform-independent code
Fixes #1930 . I ran the shell loop there for a few minutes and didn't see
any changes in the memory profile.
2015-10-29 17:26:26 +01:00
Péter Szilágyi
2019ed71b4
eth: don't block sync goroutines that short circuit
2015-10-28 16:41:01 +02:00
Péter Szilágyi
e46ab3bdcd
eth, p2p, rpc/api: polish protocol info gathering
2015-10-28 12:44:15 +02:00
Jeffrey Wilcke
05f74077fb
Merge pull request #1919 from ethersphere/getnatspec
...
rpc api: eth_getNatSpec
2015-10-28 10:49:53 +01:00
Jeffrey Wilcke
2e4fdce743
Merge pull request #1932 from fjl/gpo-defootgunize
...
eth, xeth: fix GasPriceOracle goroutine leak
2015-10-28 10:32:35 +01:00
Felix Lange
ae1b5b3ff2
eth, xeth: fix GasPriceOracle goroutine leak
...
XEth.gpo was being initialized as needed. WithState copies the XEth
struct including the gpo field. If gpo was nil at the time of the copy
and Call or Transact were invoked on it, an additional GPO listenLoop
would be spawned.
Move the lazy initialization to GasPriceOracle instead so the same GPO
instance is shared among all created XEths.
Fixes #1317
Might help with #1930
2015-10-27 18:43:47 +01:00
zelig
4d005a2c1d
rpc api: eth_getNatSpec
...
* xeth, rpc: implement eth_getNatSpec for tx confirmations
* rename silly docserver -> httpclient
* eth/backend: httpclient now accessible via eth.Ethereum init-d via config.DocRoot
* cmd: introduce separate CLI flag for DocRoot (defaults to homedir)
* common/path: delete unused assetpath func, separate HomeDir func
2015-10-26 22:24:09 +01:00
Felix Lange
3cf74336c9
eth: time out status message exchange after 5s
2015-10-22 22:22:04 +02:00
zelig
8b81ad1fc4
console:
...
* lines with leading space are ommitted from history
* exit processed even with whitespace around
* all whitespace lines (not only empty ones) are ignored
add 7 missing commands to admin api autocomplete
registrar: methods now return proper error if reg addresses are not set. fixes #1457
rpc/console: fix personal.newAccount() regression. Now all comms accept interactive password
registrar: add registrar tests for errors
crypto: catch AES decryption error on presale wallet import + fix error msg format. fixes #1580
CLI: improve error message when starting a second instance of geth. fixes #1564
cli/accounts: unlock multiple accounts. fixes #1785
* make unlocking multiple accounts work with inline <() fd
* passwdfile now correctly read only once
* improve logs
* fix CLI help text for unlocking
fix regression with docRoot / admin API
* docRoot/jspath passed to rpc/api ParseApis, which passes onto adminApi
* docRoot field for JS console in order to pass when RPC is (re)started
* improve flag desc for jspath
common/docserver: catch http errors from response
fix rpc/api tests
common/natspec: fix end to end test (skipped because takes 8s)
registrar: fix major regression:
* deploy registrars on frontier
* register HashsReg and UrlHint in GlobalRegistrar.
* set all 3 contract addresses in code
* zero out addresses first in tests
2015-10-22 00:22:39 +02:00
Péter Szilágyi
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
2015-10-21 16:49:55 +03:00
Péter Szilágyi
aa0538db0b
eth: clean out light node notions from eth
2015-10-19 10:03:10 +03:00
Péter Szilágyi
a9d8dfc8e7
core, eth: roll back uncertain headers in failed fast syncs
2015-10-19 10:03:10 +03:00
Péter Szilágyi
b97e34a8e4
eth/downloader: concurrent receipt and state processing
2015-10-19 10:03:10 +03:00
Péter Szilágyi
ab27bee25a
core, eth, trie: direct state trie synchronization
2015-10-19 10:03:09 +03:00
Péter Szilágyi
832b37c822
core, eth: receipt chain reconstruction
2015-10-19 10:03:09 +03:00
Péter Szilágyi
42c8afd440
core: differentiate receipt concensus and storage decoding
2015-10-19 10:03:09 +03:00
Péter Szilágyi
f186b39018
eth/downloader: add fast and light sync strategies
2015-10-19 10:03:09 +03:00
Péter Szilágyi
c33cc382b3
core: support inserting pure header chains
2015-10-19 10:03:09 +03:00
Péter Szilágyi
92f9a3e5fa
cmd, eth: support switching client modes of operation
2015-10-19 10:03:09 +03:00
Jeffrey Wilcke
10ed107ba2
Merge pull request #1899 from obscuren/mipmap-bloom
...
core, eth/filters, miner, xeth: Optimised log filtering
2015-10-16 12:35:24 -07:00
Jeffrey Wilcke
6dc14788a2
core, eth/filters, miner, xeth: Optimised log filtering
...
Log filtering is now using a MIPmap like approach where addresses of
logs are added to a mapped bloom bin. The current levels for the MIP are
in ranges of 1.000.000, 500.000, 100.000, 50.000, 1.000. Logs are
therefor filtered in batches of 1.000.
2015-10-16 21:28:59 +02:00
Jeffrey Wilcke
d5327ddc5f
Merge pull request #1869 from Gustav-Simonsson/gpu_miner
...
all: Add GPU mining, disabled by default
2015-10-16 06:25:33 -07:00
Gustav Simonsson
1b1f293082
core/state, core, miner: handle missing root error from state.New
2015-10-16 02:22:06 +02:00
Jeffrey Wilcke
30f057aaf9
eth/filters: added benchmark
2015-10-15 19:45:44 +02:00
Péter Szilágyi
402fd6e8c6
core, eth, event, miner, xeth: fix event post / subscription race
2015-10-12 16:22:03 +03:00
Jeffrey Wilcke
1de796f101
cmd, core, eth: added official testnet
2015-10-08 22:01:39 +02:00
Gustav Simonsson
ec6a548ee3
all: Add GPU mining, disabled by default
2015-10-07 13:19:30 +02:00
Jeffrey Wilcke
5b34fa538e
Merge pull request #1756 from obscuren/core-refactor
...
core, core/vm: refactor
2015-10-05 07:14:01 -07:00
Jeffrey Wilcke
7c7692933c
cmd/geth, cmd/utils, core, rpc: renamed to blockchain
...
* Renamed ChainManager to BlockChain
* Checkpointing is no longer required and never really properly worked
when the state was corrupted.
2015-10-04 01:13:56 +02:00
Jeffrey Wilcke
361082ec4b
cmd/evm, core/vm, test: refactored VM and core
...
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* core/vm: byte code VM moved to jump table instead of switch
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* Byte code VM now shares the same code as the JITVM
* Renamed Context to Contract
* Changed initialiser of state transition & unexported methods
* Removed the Execution object and refactor `Call`, `CallCode` &
`Create` in to their own functions instead of being methods.
* Removed the hard dep on the state for the VM. The VM now
depends on a Database interface returned by the environment. In the
process the core now depends less on the statedb by usage of the env
* Moved `Log` from package `core/state` to package `core/vm`.
2015-10-04 01:13:54 +02:00
Jeffrey Wilcke
f7a71996fb
core, event/filter, xeth: refactored filter system
...
Moved the filtering system from `event` to `eth/filters` package and
removed the `core.Filter` object. The `filters.Filter` object now
requires a `common.Database` rather than a `eth.Backend` and invokes the
`core.GetBlockByX` directly rather than thru a "manager".
2015-10-02 22:47:43 +02:00
Péter Szilágyi
47f62a67aa
eth/downloader: match capabilities when querying idle peers
2015-10-02 13:20:41 +03:00
Péter Szilágyi
f459a3f0ae
eth/downloader: always send termination wakes, clean leftover
2015-09-23 12:39:17 +03:00
Jeffrey Wilcke
eaa4473dbd
core, core/types: readd transactions after chain re-org
...
Added a `Difference` method to `types.Transactions` which sets the
receiver to the difference of a to b (NOTE: not a **and** b).
Transaction pool subscribes to RemovedTransactionEvent adding back to
those potential missing from the chain.
When a chain re-org occurs remove any transactions that were removed
from the canonical chain during the re-org as well as the receipts that
were generated in the process.
Closes #1746
2015-09-21 20:33:28 +02:00
Jeffrey Wilcke
58fbcaa750
Merge pull request #1810 from karalabe/pure-header-verifications-2
...
core, eth, miner: use pure header validation
2015-09-16 14:21:12 -07:00
Jeffrey Wilcke
985b5f29ed
Merge pull request #1801 from fjl/ethdb
...
all: move common.Database to ethdb and add NewBatch
2015-09-16 07:50:14 -07:00
Péter Szilágyi
821619e1c3
core, eth, miner: use pure header validation
2015-09-16 10:46:28 +03:00
Péter Szilágyi
99b62f36b6
eth/downloader: header-chain order and ancestry check
2015-09-15 14:45:53 +03:00
Péter Szilágyi
0a7d059b6a
eth, rpc: standardize the chain sync progress counters
2015-09-15 14:45:53 +03:00
Felix Lange
b252589960
ethdb: remove Flush
2015-09-14 23:36:30 +02:00
Felix Lange
8c4dab77ba
all: move common.Database to package ethdb
2015-09-14 23:36:30 +02:00
Péter Szilágyi
cdc2662c40
core: split out TD from database and all internals
2015-09-11 17:42:25 +03:00
Péter Szilágyi
2b339cbbd8
core, eth: split the db blocks into headers and bodies
2015-09-11 17:42:25 +03:00
Jeffrey Wilcke
f04b3a6f29
cmd/geth, cmd/utils, eth: added dev mode flag
...
Dev mode enabled some debugging flags such as:
* VM debugging mode
* Simpler proof of work
* Whisper enabled by default
* Datadir to a tmp datadir
* Maxpeers set to 0
* Gas price of 0
* Random listen port
2015-09-09 08:53:05 +02:00
Péter Szilágyi
1f1d73ab74
eth/downloader: fix race causing occasional test failure
2015-09-01 16:11:14 +03:00
Felix Lange
6ec13e7e2b
Merge pull request #1701 from karalabe/eth62-sync-rebase
...
eth: implement eth/62 synchronization logic
2015-08-27 00:03:59 +02:00
Péter Szilágyi
17f65cd1e5
eth: update metrics collection to handle eth/62 algos
2015-08-25 17:48:47 +03:00
Péter Szilágyi
47a7fe5d22
eth: port the synchronisation algo to eth/62
2015-08-25 17:48:47 +03:00
Gustav Simonsson
7324176f70
Add tests for uncle timestamps and refactor timestamp type
2015-08-25 04:46:11 +02:00
Péter Szilágyi
ca88e18f59
eth: kill off protocol eth/60 in preparation for eth/62
2015-08-24 17:57:28 +03:00
Péter Szilágyi
42f44dda54
eth, eth/downloader: handle header requests, table driven proto tests
2015-08-24 17:57:28 +03:00
Péter Szilágyi
c51e153b5c
eth, metrics, p2p: prepare metrics and net packets to eth/62
2015-08-21 10:30:57 +03:00
Péter Szilágyi
941920f2aa
eth: fix an issue with pulling and inserting blocks twice
2015-08-19 15:14:26 +03:00
Jeffrey Wilcke
2497f28aa9
Merge pull request #1627 from zsfelfoldi/gpo
...
GPO update
2015-08-17 06:37:58 -07:00
zsfelfoldi
49ece3155c
GPO update
2015-08-17 15:20:33 +02:00
Taylor Gerring
80b294c3c7
Update CPP pubkey
2015-08-17 14:51:27 +02:00
Taylor Gerring
8884f856ef
Added SG bootnode
2015-08-17 14:36:57 +02:00
Jeffrey Wilcke
b8ca0a830e
eth, trie: removed key prefixing from state entries & merge db fix
...
Fixed database merge strategy to use the correct database. Due to a copy
paste fail when doing type evaluation the same database was being
iterated (chain), all others were ignored.
Removed state prefixing because {H(code): code} is stored in the same
database as the rest of the state.
2015-08-13 20:44:03 +02:00
Jeffrey Wilcke
a23478c0be
core, eth, trie, xeth: merged state, chain, extra databases in one
2015-08-07 22:29:02 +02:00
Jeffrey Wilcke
785b3e7a57
cmd/geth, eth: added canonical extra data
...
Implemented canonical extra data according to
https://github.com/ethereum/wiki/wiki/Extra-Data
2015-08-07 12:24:32 +02:00
Gustav Simonsson
26c6e3b206
miner: gas limit strategy, target 3141592 & def gas price 50 Shannon
2015-08-04 15:20:28 +02:00
Jeffrey Wilcke
dcdb7059cc
cmd, core, eth: support for the olympic network
...
Added a --olympic flag which initialiser the olympic protocol settings
2015-08-03 18:15:48 +02:00
Péter Szilágyi
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
2015-07-29 15:39:08 +03:00
Jeffrey Wilcke
a281df783d
Merge pull request #1533 from ethersphere/frontier/etherbase
...
Etherbase defaults to first account even if it is created during the session
2015-07-28 05:11:43 -07:00
Jeffrey Wilcke
1fad8798ec
Merge pull request #1515 from fjl/license-fixes
...
all: fix license headers one more time
2015-07-28 04:29:42 -07:00
zelig
1356daad27
etherbase defaults to first account even if created during the session
2015-07-27 10:50:29 +02:00
Jeffrey Wilcke
1e241e84f7
params: reduce extra data to 32 bytes
2015-07-26 12:47:57 +02:00
Jeffrey Wilcke
73a576c9af
Merge pull request #1524 from obscuren/default-extra
...
eth: set default miner extra to client name
2015-07-25 08:58:08 -07:00
Jeffrey Wilcke
3adaeb1dbc
eth: set default miner extra to client name
2015-07-25 17:36:56 +02:00
Jeffrey Wilcke
036e6301af
cmd/geth, core, eth: Version 1.0.0
...
Genesis release. Closes #1402
Conflicts:
cmd/geth/main.go
2015-07-25 13:55:56 +02:00
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
2015-07-23 18:35:11 +02:00
Jeffrey Wilcke
0cff61beda
Merge pull request #1510 from fjl/license-fixes
...
all: license fixes
2015-07-23 01:43:11 -07:00
Felix Lange
3f047be5aa
all: update license headers to distiguish GPL/LGPL
...
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Péter Szilágyi
c7e7778f2a
cmd, core, eth, ethdb: cache flag to allocate memory for db internal use
2015-07-22 14:00:52 +03:00
Jeffrey Wilcke
a32c51effd
cmd, core, eth, common: genesis preparation
...
Implemented the --genesis flag thru which we can set a custom genesis
block, including the official Ethereum genesis block.
2015-07-10 17:37:41 +02:00
Jeffrey Wilcke
4c62ce831b
Merge pull request #1451 from karalabe/handle-potential-TD-forge-attack
...
eth/downloader: drop peer if advertised TD but won't delvier
2015-07-09 07:23:50 -07:00
Jeffrey Wilcke
b041aed660
Merge pull request #1450 from karalabe/fix-propagation-td
...
eth: calculate the correct TD, only update if better
2015-07-09 07:23:16 -07:00
Péter Szilágyi
492d5454b1
eth/downloader: drop peer if advertised TD but won't delvier
2015-07-09 14:40:18 +03:00
Péter Szilágyi
4f95e2f9ec
eth: calculate the correct TD, only update if better
2015-07-09 13:55:06 +03:00
Péter Szilágyi
eb2d168710
eth, ethdb: fix a data race during startup/shutdown
2015-07-09 12:44:07 +03:00
Felix Lange
bdae4fd573
all: add some godoc synopsis comments
2015-07-07 14:12:45 +02:00
Felix Lange
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
Jeffrey Wilcke
e5fba8fd70
Merge pull request #1428 from obscuren/coinbase-fixes
...
cmd,eth,rpc,tests: default coinbase
2015-07-07 02:55:33 -07:00
Jeffrey Wilcke
37c1a8f69d
eth,miner,rpc: set coinbase
2015-07-07 10:58:47 +02:00
zelig
83ee39448e
Registrar and contractInfo handling
...
* resolver -> common/registrar
* global registrar name registry interface
* add Call to resolver backend interface
* the hashReg and UrlHing contracts now initialised from global registry
* initialization of contracts uniform
* improve errors and more econsistent method names
* common/registrar/ethreg: versioned registrar
* integrate new naming and registrar in natspec
* js console api: setGlobalRegistrar, setHashReg, setUrlHint
* js test TestContract uses mining - tests fixed all pass
* eth/backend: allow PoW test mode (small ethash DAG)
* console jsre refers to resolver.abi/addr,
* cmd/geth/contracts.go moved to common/registrar
2015-07-07 10:43:31 +02:00
Jeffrey Wilcke
35cd355c14
cmd,eth,rpc,tests: default coinbase
2015-07-07 10:32:05 +02:00
Jeffrey Wilcke
666a7dda36
core, eth, rpc: proper gas used. Closes #1417
...
Added some additional backward compatibility code for old receipts
2015-07-06 21:18:24 +02:00
Jeffrey Wilcke
9bb575be7d
Merge pull request #1283 from ethersphere/frontier/accounts
...
Account management improvements
2015-07-04 03:40:23 -07:00
Jeffrey Wilcke
2feb23c1da
core, eth, miner, xeth: receipt storage fix
...
* Added GetReceiptsFromBlock, GetReceipt, PutReceipts
* Added ContractAddress to receipt. See #1042
2015-07-04 02:32:10 +02:00
Jeffrey Wilcke
29e2fb38f8
core, miner: miner header validation, transaction & receipt writing
...
* Miners do now verify their own header, not their state.
* Changed old putTx and putReceipts to be exported
* Moved writing of transactions and receipts out of the block processer
in to the chain manager. Closes #1386
* Miner post ChainHeadEvent & ChainEvent. Closes #1388
2015-07-03 13:56:50 +02:00
Péter Szilágyi
f857fb7600
eth/downloader: fix a rare test race on the OSX CI
2015-07-03 13:01:22 +03:00
zelig
65a26e40a8
require explicit etherbase address for mining. Falling back to primary is risky given it is inconsistent if keys are imported/merged/created or copied/transfered
2015-07-02 23:28:12 +01:00
zelig
fc2e33c594
unlock multiple passes and obsolete primary
...
* multiple passwords allowed in password file
* split on "\n", sideeffect: chop trailing slashes. fixes common mistake <(echo 'pass')
* remove accounts.Primary method
* do not fall back to primary account for mining
2015-07-02 23:28:11 +01:00
Péter Szilágyi
d6f2c0a76f
eth, eth/downloader: fix #1231 , DOS vulnerability in hash queueing
2015-07-01 15:21:35 +03:00
Péter Szilágyi
1ae80aaf64
eth: fix #1371 , double lock during block/txn known set limitation
2015-07-01 11:12:05 +03:00
Péter Szilágyi
60454da650
eth/downloader: reduce hash fetches in prep for eth/61
2015-07-01 01:20:49 +03:00
Péter Szilágyi
f43c07cb3c
eth, eth/downloader: transition to eth 61
2015-06-30 19:05:06 +03:00
Péter Szilágyi
af51dc4d63
eth, eth/downloader: pass the eth protocol version through
2015-06-30 19:00:01 +03:00
Péter Szilágyi
aac2b6ae4c
eth: add the blocks from numbers protocol message
2015-06-30 19:00:01 +03:00
Péter Szilágyi
5db8f447d5
eth: fix #1319 , put an upper limit on the known txns and blocks
2015-06-30 19:00:01 +03:00
Péter Szilágyi
6fc85f1ec2
eth: clean up peer struct a bit, fix double txn bcast
2015-06-30 19:00:01 +03:00
Péter Szilágyi
2c8ed76e01
eth: start cleaning up old protocol implementation, add metrics
2015-06-30 19:00:00 +03:00
Péter Szilágyi
393d675690
cmd/geth, cmd/utils, eth: advertise both eth/60 and eth/61
2015-06-30 19:00:00 +03:00
Péter Szilágyi
01fe972113
cmd, core, eth, metrics, p2p: require enabling metrics
2015-06-30 00:51:46 +02:00
Péter Szilágyi
ccbb56b4f2
cmd/geth, eth, ethdb: monitor database compactions
2015-06-30 00:51:29 +02:00
zsfelfoldi
5d9df7348d
gpo non-existent block checks
2015-06-29 18:53:04 +02:00
Felix Lange
76821d167a
core, eth, rpc: avoid unnecessary block header copying
2015-06-29 18:51:48 +02:00
Felix Lange
e0e5f74776
eth/downloader, eth/fetcher: use core.GenerateChain in tests
...
TestMadeupParentBlockChainAttack has been deleted because it was too
hard to port and the attack that it checks the prevention of is being
averted in a different way (through a protocol change).
2015-06-29 18:51:47 +02:00
Felix Lange
1d42888d30
core/types: make blocks immutable
2015-06-29 18:51:47 +02:00
Felix Lange
654564e164
core/types: make transactions immutable
2015-06-29 18:51:47 +02:00
Péter Szilágyi
a7d22658ad
eth/fetcher: don't drop on future blocks, just not propagate
2015-06-29 14:20:13 +03:00
Péter Szilágyi
29d53b2073
eth/fetcher: don't double filter/fetch the same block
2015-06-29 13:49:04 +03:00
Péter Szilágyi
803b3c4a82
eth, ethdb: measure database operation latencies too
2015-06-24 18:34:05 +03:00
Péter Szilágyi
0609fcf030
eth: make sure dbs are lvldb before instrumenting
2015-06-24 18:34:04 +03:00
Péter Szilágyi
792b0ddccd
core, eth, eth/fetcher, ethdb: polish metrics gathering a bit
2015-06-24 18:34:04 +03:00
Péter Szilágyi
6260b86c15
eth/fetcher: fix failed merge
2015-06-24 18:34:04 +03:00
Péter Szilágyi
b426301467
cmd/geth, eth/fetcher: polish metrics reporting, add some more
2015-06-24 18:34:04 +03:00
Péter Szilágyi
821e01b013
cmd/geth, eth/fetcher: initial metrics support
...
Conflicts:
cmd/geth/admin.go
2015-06-24 18:33:33 +03:00
Péter Szilágyi
3ce17d2862
eth/fetcher: fix a closure data race
2015-06-22 20:13:18 +03:00
Péter Szilágyi
99ca4b619b
eth/fetcher: clean up test assertions
2015-06-22 18:28:38 +03:00
Péter Szilágyi
b53f701c27
eth/fetcher: remove test sleeps (15s -> 2.8s)
2015-06-22 18:08:28 +03:00
Péter Szilágyi
1989d1491a
eth/fetcher: handle and (crude) test block memory DOS
2015-06-22 16:49:47 +03:00
Péter Szilágyi
d36c25bcbc
eth/fetcher: handle and test block announce DOS attacks
2015-06-22 14:07:08 +03:00
Péter Szilágyi
8c4c7ea192
eth/fetcher: lower max cache size, add timeout slack
2015-06-19 16:46:16 +03:00
Péter Szilágyi
4180ca7fe4
eth: fix the propagation/announce order for mined blocks
2015-06-19 10:07:37 +03:00
Péter Szilágyi
13c25036ea
eth/fetcher: since uncles are allowed, drop phase test
2015-06-18 20:10:07 +03:00
Péter Szilágyi
ecd19919c5
eth/fetcher: allow backward uncle imports too
2015-06-18 19:43:47 +03:00
Péter Szilágyi
90d45f0397
eth: fix test breakage from the previous commit
2015-06-18 18:25:27 +03:00
Péter Szilágyi
b91b581b80
eth, eth/fetcher: propagate after header verify, announce only on insert
2015-06-18 18:00:19 +03:00
Péter Szilágyi
629705ad53
eth: clean the block request packet handling a bit
2015-06-18 16:09:34 +03:00
Péter Szilágyi
5ec6ecc511
eth, eth/fetcher: move propagated block import into fetcher
2015-06-18 15:56:08 +03:00
Péter Szilágyi
a9ada0b5ba
eth/fetcher: make tests thread safe
2015-06-18 15:56:08 +03:00
Péter Szilágyi
37c5ff392f
eth/fetcher: build longest chain until proven otherwise
2015-06-18 15:56:08 +03:00
Péter Szilágyi
2a7411bc96
eth/fetcher: fix premature queue cleanup, general polishes
2015-06-18 15:56:08 +03:00
Péter Szilágyi
497a7f1717
eth, eth/fetcher: define and enforce propagation boundaries
2015-06-18 15:56:08 +03:00
Péter Szilágyi
026ee40650
eth/fetcher: deduplicate future blocks
2015-06-18 15:56:08 +03:00
Péter Szilágyi
11c8f83a58
eth, eth/fetcher: cache future propagated blocks too
2015-06-18 15:56:08 +03:00
Péter Szilágyi
057bc237ad
eth, eth/fetcher: use an import queue to store out of order blocks
2015-06-18 15:56:07 +03:00
Péter Szilágyi
8b64e041d6
eth/fetcher: add test to check for duplicate downloads
2015-06-18 15:56:07 +03:00
Péter Szilágyi
2a1b722d04
eth/fetcher: fix timer reset bug, add initial tests
2015-06-18 15:56:07 +03:00
Péter Szilágyi
7c2af1c117
eth, eth/fetcher: separate notification sync mechanism
2015-06-18 15:56:07 +03:00
Péter Szilágyi
4365668462
eth/downloader: extend slow test to fix even slower CI server...
2015-06-18 00:42:02 +03:00
Péter Szilágyi
55dd8fd621
eth/downloader: always reenter processing if not exiting
2015-06-18 00:26:54 +03:00
Péter Szilágyi
2f4cbe22f5
eth, eth/downloader: fix processing interrupt caused by temp cancel
2015-06-18 00:04:57 +03:00
Péter Szilágyi
4a1e82cf3f
eth/downloader: fix #1280 , overlapping (good/bad) delivery hang
2015-06-17 12:03:16 +03:00
Jeffrey Wilcke
cc0b451119
Merge pull request #1260 from obscuren/tx-drop-low-tx
...
core: drop low gas tx
2015-06-15 09:09:44 -07:00
Jeffrey Wilcke
f2a2164184
Merge pull request #990 from zsfelfoldi/gasprice
...
eth: add GasPriceOracle
2015-06-15 08:44:25 -07:00
zsfelfoldi
a977cecbe4
fixed gas price corr. factor
2015-06-15 15:55:38 +02:00
zsfelfoldi
6e212bdc6d
fallback for uninitialized GPO config values
2015-06-15 15:55:38 +02:00
zsfelfoldi
2e8016c80d
fixed initial base price bug
2015-06-15 15:55:38 +02:00
zsfelfoldi
0930e190a7
added missing source
2015-06-15 15:55:38 +02:00
zsfelfoldi
3f94d09c1f
fixed saving receipts
2015-06-15 15:55:38 +02:00
Péter Szilágyi
aa250e228a
eth: don't refetch non fitting blocks to avoid duplicates
2015-06-15 15:18:31 +03:00
Péter Szilágyi
cf7c44a7f6
eth/downloader: detailed comment for the race corner case
2015-06-15 15:18:04 +03:00
Péter Szilágyi
9c03c374e3
eth/downloader: fix import statistic reset, fetch hashes async
2015-06-15 13:05:01 +03:00
obscuren
6d817e16c1
core, miner: tx pool drops txs below ask price
2015-06-15 11:33:08 +02:00
Péter Szilágyi
b240983e2b
eth, eth/downloader: do async block fetches, add dl tests
2015-06-15 12:26:05 +03:00
Péter Szilágyi
30a9939388
eth/downloader: sanity test for multi peer syncs
2015-06-15 09:22:37 +03:00
Péter Szilágyi
fc7abd9886
eth, eth/downloader: move block processing into the downlaoder
2015-06-15 09:22:37 +03:00
Péter Szilágyi
0fc71877a7
eth/downloader: add valid peer during attacks (check interference)
2015-06-15 09:22:37 +03:00
Péter Szilágyi
80833f8137
eth/downloader: instreument and test the sync peer drop
2015-06-15 09:22:37 +03:00
Péter Szilágyi
faae8b7dd8
eth: fix an accidental test compile error
2015-06-15 09:22:37 +03:00
Péter Szilágyi
2dd6a62f67
eth/downloader: support individual peers in the test suite
2015-06-15 09:22:36 +03:00
Péter Szilágyi
2937903299
eth/downloader: remove uneeded testing functions
2015-06-15 09:22:36 +03:00
Péter Szilágyi
66d3dc8690
eth, eth/downloader: move peer removal into downloader
2015-06-15 09:22:36 +03:00
obscuren
90c4493a10
eth, core: interupt the chain processing on stop
...
Added an additional channel which is used to interupt the chain manager
when it's processing blocks.
2015-06-12 13:41:34 +02:00
Jeffrey Wilcke
13bd452faf
Merge pull request #1227 from karalabe/block-fetcher-optimisations
...
eth: optimize the notification/explicit fetch mechanism
2015-06-11 03:31:41 -07:00
Jeffrey Wilcke
979ebfc126
Merge pull request #1224 from karalabe/report-import-progress
...
cmd/geth, eth/downloader: collect and report import progress too
2015-06-10 15:30:20 -07:00
Péter Szilágyi
3c1cccc801
eth/downloader: fetch the block hashes on the fly, when needed
2015-06-10 20:12:22 +03:00
Péter Szilágyi
e61db7145a
eth: dedup fetches to ensure no blocks are pulled twice
2015-06-10 19:47:59 +03:00
Péter Szilágyi
355b1e3bb1
eth: randomly fetch announced block (don't hammer origin)
2015-06-10 19:47:59 +03:00
Péter Szilágyi
b9affbf9fe
eth: discard fetched blocks that don't fit (no goroutine)
2015-06-10 19:47:59 +03:00
obscuren
65a48f9cd8
core: fixed race condition in the transaction pool
...
Removed `Stop/Start` mechanism from the transaction pool.
2015-06-10 17:13:32 +02:00
Péter Szilágyi
271fb20ecb
cmd/geth, eth/downloader: rough guess at the import eta
2015-06-10 18:01:05 +03:00
Péter Szilágyi
b3d5ce7d48
cmd/geth, eth/downloader: collect and report import progress too
2015-06-10 01:20:35 +03:00
Felix Lange
73c355591f
core, eth: document that result of GetTransactions is modifiable
2015-06-09 17:07:10 +02:00
Felix Lange
8dc3048f65
eth/downloader: fix hash fetch timeout handling
...
Fixes #1206
2015-06-09 17:07:10 +02:00
Felix Lange
2c24a73e25
eth: add protocol tests
...
The protocol tests were commented out when eth/downloader was introduced.
2015-06-09 17:07:10 +02:00
Felix Lange
6c73a59806
eth: limit number of sent transactions based on message size
...
Nodes that are out of sync will queue many transactions, which causes
the initial transactions message to grow very large. Larger transactions
messages can make communication impossible if the message is too big to
send. Big transactions messages also exhaust egress bandwidth, which
degrades other peer connections.
The new approach to combat these issues is to send transactions in
smaller batches. This commit introduces a new goroutine that handles
delivery of all initial transaction transfers. Size-limited packs of
transactions are sent to one peer at a time, conserving precious egress
bandwidth.
2015-06-09 17:07:10 +02:00
Felix Lange
41b2008a66
eth: limit number of sent blocks based on message size
...
If blocks get larger, sending 256 at once can make messages large
enough to exceed the low-level write timeout.
2015-06-09 17:06:31 +02:00
Péter Szilágyi
d09ead546c
eth: fix a data race in the hash announcement processing
2015-06-09 15:09:15 +03:00
Péter Szilágyi
f86707713c
eth: fix data race accessing peer.td
2015-06-09 14:56:27 +03:00
Péter Szilágyi
44147d057d
eth: fix data race accessing peer.recentHash
2015-06-09 14:27:44 +03:00
Jeffrey Wilcke
05cae69d72
Merge pull request #1188 from karalabe/newblockhashes-proposal
...
eth: implement the NewBlockHashes protocol proposal
2015-06-09 04:07:46 -07:00
Jeffrey Wilcke
087949227c
Merge pull request #1153 from karalabe/downloader-banned-starvation-attack
...
eth/downloader: gather and ban hashes from invalid chains
2015-06-09 03:45:41 -07:00
obscuren
a5b977aa90
core: write accounts to statedb. Closes #1210
2015-06-09 11:37:01 +02:00
Péter Szilágyi
8216bb901c
eth: clean up pending announce download map, polish logs
2015-06-09 00:37:10 +03:00
Péter Szilágyi
9ed166c196
eth: split and handle explicitly vs. download requested blocks
2015-06-08 20:38:39 +03:00
obscuren
6244b10a8f
core: settable genesis nonce
...
You can set the nonce of the block with `--genesisnonce`. When the
genesis nonce changes and it doesn't match with the first block in your
database it will fail. A new `datadir` must be given if the nonce of the
genesis block changes.
2015-06-08 18:33:43 +02:00
Péter Szilágyi
fdccce781e
eth: fetch announced hashes from origin, periodically
2015-06-08 19:24:56 +03:00
Péter Szilágyi
8c012e103f
eth: mark blocks as known when broadcasting hashes too
2015-06-08 18:44:02 +03:00
Péter Szilágyi
6f415b96b3
eth: implement the NewBlockHashes protocol proposal
2015-06-08 18:44:02 +03:00
Péter Szilágyi
4ed3509a02
eth/downloader: test registration rejection on head ban
2015-06-08 15:02:52 +03:00
Péter Szilágyi
c4f224932f
eth/downloader: reject peer registration if head is banned
2015-06-08 14:46:31 +03:00
Péter Szilágyi
63c6cedb14
eth/downloader: cap the hash ban set, add test for it
2015-06-08 14:12:00 +03:00
Péter Szilágyi
4b2dd44711
eth/downloader: fix throttling test to be less timing dependent
2015-06-08 13:23:58 +03:00
Péter Szilágyi
2d627995cf
eth/downloader: fix another rebase error
2015-06-08 13:23:58 +03:00
Péter Szilágyi
b40c796ff7
eth/downloader: preallocate the block cache
2015-06-08 13:23:58 +03:00
Péter Szilágyi
1d7bf3d39f
eth/downloader: fix merge compile error
2015-06-08 13:23:58 +03:00
Péter Szilágyi
6d497f61c6
eth/downloader: don't block hash deliveries while pulling blocks
2015-06-08 13:23:58 +03:00
Péter Szilágyi
9da0232eef
eth/downloader: update test for shitty travis
2015-06-08 13:23:58 +03:00
Péter Szilágyi
0275fcb3d3
eth/downloader: clean up and simplify the code a bit
2015-06-08 13:23:58 +03:00
Péter Szilágyi
abdfcda4dd
eth/downloader: short circuit sync if head hash is banned
2015-06-08 13:23:58 +03:00
Péter Szilágyi
84bc93d8cb
eth/downloader: accumulating hash bans for reconnecting attackers
2015-06-08 13:23:58 +03:00
Péter Szilágyi
eedb25b22a
eth/downloader: clean up tests and unused variables
2015-06-08 13:23:57 +03:00
Jeffrey Wilcke
b94a76d17e
Merge pull request #1189 from karalabe/downloader-polishes
...
eth/downloader: handle timeouts more gracefully
2015-06-05 08:31:57 -07:00
Péter Szilágyi
94e525ae12
eth, eth/downloader: fix #1098 , elevate empty hash errors to peer drops
2015-06-05 12:52:48 +03:00
Péter Szilágyi
328ef60b85
eth/downloader: differentiate stale and nonexistent deliveries
2015-06-05 12:37:48 +03:00
Péter Szilágyi
94e4aa6ea9
eth/downloader: log hard timeouts and reset capacity
2015-06-05 11:53:46 +03:00
Jeffrey Wilcke
45152dead5
Merge pull request #1181 from obscuren/txpool_fixes
...
cmd: transaction pool fixes and improvements
2015-06-04 10:47:23 -07:00
Péter Szilágyi
d754c25cc8
eth/downloader: drop log entry from peer, it's covered already
2015-06-04 16:22:55 +03:00
Péter Szilágyi
24cca2f18d
eth/downloader: log after state updates, easier to debug
2015-06-04 15:10:43 +03:00
Péter Szilágyi
28c32d1b1b
eth/downloader: fix #1178 , don't request blocks beyond the cache bounds
2015-06-04 14:51:14 +03:00
obscuren
d09a6e5421
core, eth, miner: moved nonce management to tx pool.
...
Removed the managed tx state from the chain manager to the transaction
pool where it's much easier to keep track of nonces (and manage them).
The transaction pool now also uses the queue and pending txs differently
where queued txs are now moved over to the pending queue (i.e. txs ready
for processing and propagation).
2015-06-03 22:43:23 +02:00
Felix Lange
5197aed7db
cmd/utils, eth: core.NewBlockProcessor no longer needs TxPool
2015-06-03 22:43:23 +02:00
Péter Szilágyi
3ec159ab6b
eth/downloader: demote peers if they exceed the soft limits at 1 blocks already
2015-06-03 15:43:12 +03:00
Péter Szilágyi
c9a546c310
eth/downloader: add a basic block download congestion control
2015-06-03 14:40:11 +03:00
Taylor Gerring
057d36b049
Update bootnode
2015-05-31 13:48:27 -05:00
obscuren
e5d7627427
eth: 100% block propogation
2015-05-28 17:01:44 +02:00
Péter Szilágyi
29b0480cfb
core, eth/downloader: expose the bad hashes, check in downloader
2015-05-28 14:03:10 +03:00
Péter Szilágyi
5235e01b8d
eth: hard disconnect if a peer is flaky
2015-05-27 18:58:51 +03:00
Felix Lange
6a674ffea5
Merge pull request #1108 from karalabe/fine-seeding
...
Fine tune seeder and p2p peer handling
2015-05-26 22:03:11 +02:00
obscuren
c37389f19c
core: check negative value transactions. Closes #1109
2015-05-26 20:38:26 +02:00
Péter Szilágyi
e1a0ee8fc5
cmd/geth, cmd/utils, eth, p2p: pass and honor a no discovery flag
2015-05-26 19:07:24 +03:00
Péter Szilágyi
278183c7e7
eth, p2p: start the p2p server even if maxpeers == 0
2015-05-26 17:49:37 +03:00
Péter Szilágyi
3083ec5e32
eth/downloader: silence "Added N blocks from..." if N == 0
2015-05-26 16:10:28 +03:00
Jeffrey Wilcke
245f30c59b
Merge pull request #1014 from fjl/p2p-dialer-3000
...
p2p: new dialer, peer management without locks
2015-05-26 05:06:00 -07:00
Péter Szilágyi
eafdc1f8e3
eth, eth/downloader: surface downloaded block origin, drop on error
2015-05-26 14:00:21 +03:00
Felix Lange
2f249fea44
eth: stop p2p.Server on shutdown
2015-05-25 01:17:14 +02:00
Jason Carver
97433f5ef1
expand acronym in log message from TD
...
to total difficulty
2015-05-22 19:12:59 -07:00
Jeffrey Wilcke
f1cc3619f5
Merge pull request #1055 from ethersphere/autodag
...
automatic DAG pregeneration for smooth epoch transitions
2015-05-21 09:01:57 -07:00
Jeffrey Wilcke
af28736bd0
Merge pull request #1064 from karalabe/downloader-attacks
...
Fix two additional download vulnerabilities
2015-05-21 09:00:12 -07:00
Péter Szilágyi
06a041589f
eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K
2015-05-21 18:16:04 +03:00
zelig
bed80133e0
automatic DAG pregeneration for smooth epoch transitions
...
- backend: AutoDAG bool flag passed from cli/eth.Config to ethereum, autoDAG loop started if true
- backend: autoDAG loop start/stop, remove previous DAG
- cli: AutoDAG bool flag, off by default, but automatically ON if mining
- admin jsre: add startAutoDAG stopAutoDAG and makeDAG in miner section
- switch on/off DAG autogeneration when miner started/stopped on console
2015-05-21 15:53:42 +01:00
obscuren
207bd55751
eth: reduced max open files for LevelDB
2015-05-21 11:45:35 +02:00
Péter Szilágyi
52db6d8be5
eth/downloader: circumvent a forged block chain with known parent attack
2015-05-21 08:37:27 +03:00
Péter Szilágyi
e8b22b9253
eth/downloader: prevent a peer from dripping bad hashes
2015-05-21 08:07:58 +03:00
Jeffrey Wilcke
0300eef94d
Merge pull request #1048 from ethersphere/cli-fixes
...
CLI, JSRE admin and Solc improvements
2015-05-20 02:31:52 -07:00
Jeffrey Wilcke
6b83a0a589
Merge pull request #1050 from karalabe/handle-slow-download-tester
...
eth/downloader: fix test to it doesn't time out on a slow machine
2015-05-20 02:29:23 -07:00
Péter Szilágyi
3c8227b935
eth: fix odd method names in peer set
2015-05-20 10:34:45 +03:00
Péter Szilágyi
6f54eb6d9a
eth/downloader: fix test to it doesn't time out on a slow machine
2015-05-20 10:15:42 +03:00
zelig
22b694ee1e
solc now in ethereum, fixes solc path setting; setSolc() didnt work
2015-05-20 02:47:13 +01:00
Jeffrey Wilcke
46d6470c43
Merge pull request #1035 from karalabe/eth-threadsafe-peers
...
eth: make the peer-set thread safe
2015-05-19 08:50:38 -07:00
Péter Szilágyi
4755caeb2d
eth: remote a superfluous peerSet method
2015-05-18 21:35:42 +03:00
Péter Szilágyi
5422fe5125
eth: make the peer set thread safe
2015-05-18 21:33:37 +03:00
obscuren
c67424ecc8
core: parallelise nonce checking when processing blocks
...
ChainManager now uses a parallel approach to block processing where all
nonces are checked seperatly from the block processing process. This
speeds up the process by about 3 times on my i7
2015-05-18 13:59:22 +02:00
obscuren
c2ef8682fe
eth/downloader: moved start event
...
Start event has moved because it could possibly could stall the miner
2015-05-16 13:02:30 +02:00
obscuren
55d85d60fd
eth, cmd/geth: start mining from console respects CLI flag
2015-05-15 20:26:15 +02:00
Jeffrey Wilcke
82c0780f81
Merge pull request #996 from karalabe/fix-potential-crosscheck-race
...
eth/downloader: circumvent download race between crosscheck and hashes
2015-05-15 11:23:44 -07:00
Péter Szilágyi
412cf98bbc
eth/downloader: fix #992 , where tests may time out on a slow machine
2015-05-15 21:16:42 +03:00
Péter Szilágyi
f3ae8f50a5
eth/downloader: circumvent download race between crosscheck and hashes
2015-05-15 20:54:10 +03:00
Péter Szilágyi
4f0d88cb02
eth/downloader: fix cancel channel double close
2015-05-15 19:43:42 +03:00
Péter Szilágyi
5c1a7b965c
eth/downloader: circumvent a fake blockchain attack
2015-05-15 15:04:15 +03:00
Péter Szilágyi
b517967f86
eth/downloader: don't penalize for stale cross checks
2015-05-15 15:03:08 +03:00
Péter Szilágyi
83226762c2
eth, eth/downloader: detect and handle madeup hash attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
9ad515d2dc
eth: drop a sync peer if it sends an invalid hash chain
2015-05-15 15:01:58 +03:00
Péter Szilágyi
72411eb24c
eth/downloader: circumvent hash reordering attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
bcc2980179
eth/downloader: check sync after failed attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
366e9627e8
eth/downloader: add a test for detecting missing blocks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
cd2fb09051
eth, eth/downloader: prevent hash repeater attack
2015-05-15 15:01:58 +03:00
obscuren
cfb2b51b74
eth/downloader: fixed test
2015-05-15 12:47:32 +02:00
obscuren
b71091e337
eth, eth/downloader, miner: use download events to check miner start
2015-05-15 00:43:10 +02:00
Jeffrey Wilcke
060a07cf69
Merge pull request #974 from karalabe/downloader-fix-unknown-parent-attack
...
eth, eth/downloader: handle a potential unknown parent attack
2015-05-14 08:16:30 -07:00
Péter Szilágyi
fe87feccb1
eth/downloader: add a small additional check to the test
2015-05-14 15:44:54 +03:00
Péter Szilágyi
ebf1eb9359
eth/downloader: remove a previous leftover
2015-05-14 15:40:28 +03:00
Péter Szilágyi
3eda70c64c
eth, eth/downloader: remove parent verification from the downlaoder
2015-05-14 15:38:49 +03:00
Péter Szilágyi
a4246c2da6
eth, eth/downloader: handle a potential unknown parent attack
2015-05-14 15:24:18 +03:00
Jeffrey Wilcke
2b06fe3eff
Merge pull request #950 from karalabe/downloader-cancel-sync
...
eth/downloader: fix deliveries to check for sync cancels
2015-05-14 04:05:13 -07:00
Péter Szilágyi
910a6d4e46
eth/downloader: fix nil panic caused by wrong variable use
2015-05-13 17:25:01 +03:00
Péter Szilágyi
de3a71cafd
eth/downloader: remove a redundant sync progress check
2015-05-13 16:56:01 +03:00
Péter Szilágyi
48ee0777a5
eth/downloader: add a user sync notificaton
2015-05-13 16:03:05 +03:00
Péter Szilágyi
ec57aa64cd
eth/downloader: sync the cancel channel during cancel too
2015-05-13 14:01:08 +03:00
Péter Szilágyi
ee0c892303
eth/downloader: fix deliveries to check for sync cancels
2015-05-13 13:47:21 +03:00
Péter Szilágyi
d2d5dbc6fb
eth/downloader: fix active peer shadowing, polish func names
2015-05-13 13:13:43 +03:00
obscuren
8fe01b4bfa
eth: 100% tx propagation
2015-05-12 19:01:01 +02:00
Gustav Simonsson
8754f2b768
Fix common.Address / []byte type conversions
2015-05-12 17:19:39 +02:00
Gustav Simonsson
da9fe951da
Use common.Address type for accounts.Address
2015-05-12 17:19:39 +02:00
Jeffrey Wilcke
58d6ec689f
Merge pull request #933 from bas-vk/issue928
...
replaced path with platform aware filepath module
2015-05-12 08:23:46 -07:00
Bas van Kervel
b79dd188d9
replaced several path.* with filepath.* which is platform independent
2015-05-12 14:24:11 +02:00
obscuren
96d4a7d087
eth, ethdb: lower the amount of open files & improve err messages for db
...
Closes #880
2015-05-12 14:14:56 +02:00
obscuren
13f8f65a58
eth, ethdb: lower the amount of open files & improve err messages for db
...
Closes #880
2015-05-12 11:28:55 +02:00
obscuren
48bd48876c
eth, eth/downloader: moved pending queue error message to debug
2015-05-11 17:27:34 +02:00
obscuren
21e52efdfe
cmd/geth, miner, backend, xeth: Fixed miner threads to be settable
...
Miner threads are now settable through the admin interface (closes #897 )
and specify 0 CPU worker threads when eth_getWork is called (closes #916 )
2015-05-11 17:21:22 +02:00
Péter Szilágyi
064cf16099
eth/downloader: use count instead of peers, clearer
2015-05-11 17:21:22 +02:00
Péter Szilágyi
d37a2559b9
eth/downloader: revert to demotion, use harsher penalty
2015-05-11 17:21:22 +02:00
Péter Szilágyi
70c65835f4
eth/downloader: fix #910 , thread safe peers & polishes
2015-05-11 17:21:22 +02:00
obscuren
a2919b5e17
core, eth, miner: improved tx removal & fatal error on db sync err
...
* core: Added GasPriceChange event
* eth: When one of the DB flush methods error a fatal error log message
is given. Hopefully this will prevent corrupted databases from
occuring.
* miner: remove transactions with low gas price. Closes #906 , #903
2015-05-11 11:39:33 +02:00
obscuren
05715f27cf
eth: added a cancel method for the downloader
...
Added a cancel method to the downloader which gracefully shuts down any
active syncing process (hash fetching or block downloading) and resets
the queue and remove any pending blocks.
Issue with the downloader which would stall because of an active ongoing
process when an invalid block was found.
2015-05-10 00:34:07 +02:00
obscuren
cb1fa523e4
cmd/geth, cmd/mist, eth, flags: renamed loglevel to verbosity
2015-05-09 12:00:51 +02:00
Jeffrey Wilcke
0214cbe0fb
Merge pull request #863 from karalabe/ordered-block-download
...
eth/downloader: prioritize block fetch based on chain position, cap memo...
2015-05-08 08:19:53 -07:00
Péter Szilágyi
edad47bf0e
eth/downloader: fix leftover state between syncs
2015-05-08 17:39:03 +03:00
Péter Szilágyi
bd5720f480
eth, eth/downloader: handle sync errors a bit more gracefully
2015-05-08 15:22:48 +03:00
Péter Szilágyi
9d188f73b5
eth, eth/downloader: make synchronize thread safe
2015-05-07 21:07:20 +03:00
Péter Szilágyi
4d5a719f25
cmd, eth, p2p: introduce pending peer cli arg, add tests
2015-05-07 15:30:56 +03:00
Péter Szilágyi
43901c9282
eth/downloader: fix priority queue reset, add throttling test
2015-05-07 14:40:50 +03:00
Péter Szilágyi
45f8304f3c
eth/downloader: fix expiration not running while fetching
2015-05-07 12:59:19 +03:00
Péter Szilágyi
4800c94392
eth/downloader: prioritize block fetch based on chain position, cap memory use
2015-05-07 10:57:34 +03:00
obscuren
062fa049d0
fixed merge issue
2015-05-06 22:54:21 +02:00
Jeffrey Wilcke
24d44f35f2
Merge pull request #791 from fjl/discover-sha3-distance
...
p2p/discover: sha3-based node distance
2015-05-06 13:48:57 -07:00
Gustav Simonsson
b1cc9cdc74
Integrate new ethash API and change geth makedag cmd
2015-05-05 08:24:15 +02:00
Péter Szilágyi
4accc187d5
eth, p2p: add trusted node list beside static list
2015-05-04 13:59:51 +03:00
obscuren
1470b22e90
downloader: hash downloading recovery
...
If a peer fails to respond (disconnect, etc) during hash downloading
switch to a different peer which has it's current_hash in the queue's
peer set.
2015-05-03 16:27:03 +02:00
obscuren
ba2236fa51
cmd/geth, eth: bump version & tmp fix for incorrect TD peers
2015-05-03 14:11:47 +02:00
obscuren
f2a2b2ac70
eth/downloader: put back hashes on block overflow error
2015-05-03 14:11:00 +02:00
obscuren
493181ea09
eth/downloader: changed has to blockHashes for chain linking
2015-05-03 14:10:31 +02:00
obscuren
25bc88113f
eth/downloader: added additional tests
2015-05-03 14:09:33 +02:00
obscuren
c6ad3aec05
eth,core: changed NewTicker to Tick
2015-05-03 13:27:37 +02:00
obscuren
016f152b36
eth, eth/downloader: Moved block processing & graceful shutdown
...
The downloader is no longer responsible for processing blocks. The
eth-protocol handler now takes care of this instead.
Added graceful shutdown during block processing. Closes #846
2015-05-01 15:58:44 +02:00
Péter Szilágyi
413ace37d3
eth, p2p: rename trusted nodes to static, drop inbound extra slots
2015-04-30 19:32:48 +03:00
obscuren
8595198c1b
eth/downloader: delete blocks from queue
2015-04-30 17:51:47 +02:00
obscuren
15873fafc0
core: added a wait group to chain manager for graceful shutdown
2015-04-30 17:50:47 +02:00
Péter Szilágyi
701591b403
cmd, eth, p2p: fix review issues enumerated by Felix
2015-04-30 16:15:29 +03:00
Péter Szilágyi
679c90b873
cmd/geth, cmd/utils, eth: internalize trusted node config file
2015-04-30 16:03:47 +03:00
Péter Szilágyi
de0549fabb
cmd/geth, cmd/mist, cmd/utils, eth, p2p: support trusted peers
2015-04-30 16:03:10 +03:00
Felix Lange
fc747ef4a6
p2p/discover: new endpoint format
...
This commit changes the discovery protocol to use the new "v4" endpoint
format, which allows for separate UDP and TCP ports and makes it
possible to discover the UDP address after NAT.
2015-04-30 14:57:33 +02:00
obscuren
28b39267d9
core, eth: verify td of received blocks
2015-04-30 13:50:59 +02:00
obscuren
9b6e8f6195
eth, eth/downloader: remove bad peers from peer set
...
Peers in the eth protocol handler are now being ignored for catch up.
2015-04-30 12:38:16 +02:00
obscuren
04c209980b
eth: rely on p2p to determine block propagation
2015-04-29 22:50:58 +02:00
obscuren
9e63798d03
core/types, eth: meassure and display propagation times
2015-04-29 19:55:30 +02:00
obscuren
f8c27d7159
eth/downloader: drop block
2015-04-29 19:55:04 +02:00
obscuren
c930045834
core: fixed tetst to reflect (int, error) return by insertChain
2015-04-29 15:27:04 +02:00
obscuren
dfbf580354
eth/downloader: ignore orphan blocks in the downloader.
...
When blocks have been sorted and are being processed, orphan blocks
should be ignored and thrown out. The protocol handler is responsible
for downloading blocks which have missing parents.
2015-04-29 14:49:37 +02:00
obscuren
735b029db9
core: return the index of the block that failed when inserting a chain
2015-04-29 14:00:24 +02:00
obscuren
13364a2dcf
eth/downloader: reset the chain when parent is missing during processing
2015-04-29 13:40:39 +02:00
obscuren
4b7bdc3766
eth: check if downloader is busy before showing log message
2015-04-29 12:51:05 +02:00
Jeffrey Wilcke
91cb8cdd2a
Merge pull request #793 from karalabe/discovery-node-cache
...
p2p/discover: persistent node database
2015-04-28 03:40:10 -07:00
Péter Szilágyi
19bc4624ea
eth: pull in a lost merge change
...
Ref: 21c4c155ee
2015-04-28 10:49:04 +03:00
Jeffrey Wilcke
8d09f95bc7
Merge pull request #805 from obscuren/download_improvements
...
eth, eth/downloader: improve downloader and remove asynchronousness
2015-04-24 15:56:17 -07:00
obscuren
7ce3d06402
eth/downloader: removed update loop and synch channel
2015-04-24 18:28:46 +02:00
obscuren
405720b218
xeth, core, cmd/utils: Transaction can not be over block gas limit
...
Transactions will be invalidated when the tx.gas_limit > block.gas_limit
2015-04-24 17:48:13 +02:00
Péter Szilágyi
8646365b42
cmd/bootnode, eth, p2p, p2p/discover: use a fancier db design
2015-04-24 18:04:41 +03:00
obscuren
1681ee9883
eth: added a few informative messages regarding downloading
2015-04-24 17:03:09 +02:00
obscuren
a9e4b96573
eth/downloader: fixed tests
2015-04-24 15:56:18 +02:00
obscuren
d84c2202e7
eth, eth/downloader: simplified synchronisation process
2015-04-24 15:38:10 +02:00
obscuren
bd9c76097d
eth/downloader: removed peer td management and best peer selection
2015-04-24 15:37:07 +02:00
obscuren
31f82eb334
eth, eth/downloader: don't require td on downloader. Fixed tests
2015-04-24 15:04:58 +02:00
obscuren
b86e7526e1
eth, eth/downloader: moved peer selection to protocol handler
2015-04-24 14:40:32 +02:00
zelig
be843959cb
backend: start miner in its go routine (no wait to generate DAG)
2015-04-24 12:45:11 +01:00
Péter Szilágyi
6def110c37
cmd/bootnode, eth, p2p, p2p/discover: clean up the seeder and mesh into eth.
2015-04-24 11:33:55 +03:00
Péter Szilágyi
5f735d6fce
cmd, eth, p2p, p2p/discover: init and clean up the seed cache
2015-04-24 11:23:20 +03:00
obscuren
516f49c812
eth: cleanup
2015-04-23 23:30:25 +02:00
Jeffrey Wilcke
b6ec1c720f
Merge pull request #797 from tgerring/bootnodes
...
Bootnodes update
2015-04-23 11:53:18 -07:00
Taylor Gerring
24995f9ab7
Updated bootnodes
...
Update pub key for EU node and add new SA node
2015-04-23 13:06:07 -05:00
Bas van Kervel
c273ed7d82
Moved leveldb update loop to eth/backend
...
change order of block insert and update LastBlock
bugfix, wrong hash stored in blockDb
2015-04-23 17:58:58 +02:00
obscuren
d3be1a2719
eth: moved mined, tx events to protocol-hnd and improved tx propagation
...
Transactions are now propagated to peers from which we have not yet
received the transaction. This will significantly reduce the chatter on
the network.
Moved new mined block handler to the protocol handler and moved
transaction handling to protocol handler.
2015-04-23 11:50:12 +02:00
obscuren
5cb5df003d
eth: start tx pool in a goroutine
2015-04-23 11:50:11 +02:00
Jeffrey Wilcke
1dc91975ad
Merge pull request #756 from Gustav-Simonsson/block_test_improvements
...
Block test improvements
2015-04-21 03:09:35 -07:00
obscuren
36ec42e50c
Merge branch 'frontier/natspec' of https://github.com/ethersphere/go-ethereum into ethersphere-frontier/natspec
2015-04-20 18:08:14 +02:00
obscuren
45da3e17e2
core: added chain head reset to known block
2015-04-20 12:29:02 +02:00
zsfelfoldi
c4b7d4d3f7
NatSpec cli option, resolver tests passing
2015-04-19 20:57:49 +01:00
obscuren
5dd56bb474
geth: admin download status
2015-04-19 21:46:19 +02:00
obscuren
ed07ffcde5
downloader: fixed tests with low ttl
2015-04-19 17:37:01 +02:00
obscuren
dcf1a1988a
moved
2015-04-19 17:14:15 +02:00
obscuren
8f3a7e41de
Merge branch 'rlp-size-validation' of https://github.com/fjl/go-ethereum into fjl-rlp-size-validation
...
Conflicts:
eth/protocol.go
2015-04-19 17:07:40 +02:00
obscuren
4683f9c0a7
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
2015-04-19 13:33:39 +02:00
obscuren
cce4158cfc
Removed debug println
2015-04-19 13:33:14 +02:00
obscuren
3d497be9bd
eth: drop blocks with low TD
2015-04-19 13:31:37 +02:00
obscuren
c58918c84a
downloader: moved chunk ignoring. Fixes issue with catching up
2015-04-19 13:30:34 +02:00
Jeffrey Wilcke
9ec56637f9
Merge pull request #749 from fjl/fix-nodekey-persistence
...
Fix p2p node key persistence
2015-04-19 01:56:56 +02:00
obscuren
4340996572
eth: temp 100% block propagation because of the current state of the net
2015-04-19 01:40:01 +02:00
obscuren
5c59d95532
downloader: defer peer reset after download
2015-04-19 01:39:37 +02:00
Felix Lange
da4a0e0555
eth: fix node key persistence
...
crypto.LoadECDSA has been modified to expect hex data.
The key was being saved as raw bytes, causing the file
to be rewritten on every start.
2015-04-19 01:28:41 +02:00
obscuren
86ecdcd5ff
downloader: reset hashTtl on receive
2015-04-19 00:15:05 +02:00
obscuren
434dea3caf
eth: removed debug messages to stdout
2015-04-19 00:03:26 +02:00
Felix Lange
2ce21cefdc
eth: use NewDB hook also for extra DB
...
(cherry picked from commit d5083033f1
)
2015-04-18 23:59:31 +02:00
obscuren
50e096e627
downloader: don't remove peers. keep them around
2015-04-18 23:56:08 +02:00
obscuren
a1d97ea4db
typo
2015-04-18 20:35:49 +02:00
obscuren
6830ddb659
downloader: free up peers from work when the downloader resets
2015-04-18 20:25:55 +02:00
obscuren
7c5d50f627
downloader: throw an error if there are no peers available for download
...
If all peers have been tried during the block download process and some
hashes are unfetchable (available peers > 0 and fetching == 0) throw an
error so the process can be aborted.
2015-04-18 19:30:29 +02:00
obscuren
78e37e98e7
downloader: fixed a race condition for download status
2015-04-18 19:14:25 +02:00
obscuren
0d536734fe
eth: adapted to new synchronous api of downloader's AddBlock
2015-04-18 18:57:59 +02:00
obscuren
c2c24b3bb4
downloader: improved downloading and synchronisation
...
* Downloader's peers keeps track of peer's previously requested hashes
so that we don't have to re-request
* Changed `AddBlock` to be fully synchronous
2015-04-18 18:55:13 +02:00
obscuren
60613b57d1
downloader: make sure that hashes are only accepted from the active peer
2015-04-18 17:35:03 +02:00
obscuren
8244825bbf
downloader: reset the queue if a peer response with an empty hash set
2015-04-18 15:14:12 +02:00
obscuren
eef4776b5b
eth: ignore NewBlockMsg with lower td
2015-04-18 14:25:22 +02:00
obscuren
8f873b762b
downloader: all handlers check for isBusy
2015-04-18 03:15:26 +02:00
obscuren
a6c0a75f9a
eth: fixed proper BroadcastBlock for mined blocks
2015-04-18 02:38:13 +02:00
obscuren
12e8d9c4dd
eth: listen for mined blocks and propagate using the protocol manager
2015-04-18 02:27:37 +02:00
obscuren
ecc74d76cc
eth: drop blocks that are known
2015-04-18 02:24:24 +02:00
obscuren
cc436c4b28
eth: additional cleanups to the subprotocol, improved block propagation
...
* Improved block propagation by sending blocks only to peers to which, as
far as we know, the peer does not know about.
* Made sub protocol its own manager
* SubProtocol now contains the p2p.Protocol which is used instead of
a function-returning-protocol thing.
2015-04-18 02:21:07 +02:00
obscuren
c2f410214c
eth: began split up of peers and protocol manager
2015-04-18 01:11:09 +02:00
obscuren
2339ee9910
Merge branch 'develop' into downloader-proto
...
Conflicts:
eth/downloader/downloader.go
2015-04-18 01:10:32 +02:00
Felix Lange
56a48101dc
cmd/rlpdump, cmd/utils, eth, p2p, whisper: use rlp input limit
2015-04-17 14:45:09 +02:00
obscuren
73eb8e8c20
eth: basic implementation of the downloader
2015-04-17 13:54:18 +02:00
obscuren
eac2df02d1
downloader: fixed a typo
2015-04-17 00:11:45 +02:00
obscuren
205378016f
downloader: added demotion / promotion in prep. for rep. system
2015-04-16 02:16:33 +02:00
obscuren
eda10c7317
downloader: updated downloader and fixed issues with catch up
...
Properly ignore blocks coming from peers not in our peer list (blocked)
and do never request anything from bad peers. Added some checks to
account for blocks known when requesting hashes (missing parents).
2015-04-16 01:29:32 +02:00
obscuren
3a51c3b584
Merge branch 'develop' into downloader-proto
2015-04-16 01:28:24 +02:00
obscuren
c4678ffd77
downloader: updated downloader and fixed issues with catch up
...
Properly ignore blocks coming from peers not in our peer list (blocked)
and do never request anything from bad peers. Added some checks to
account for blocks known when requesting hashes (missing parents).
2015-04-16 00:14:31 +02:00
obscuren
9800c84348
eth: limit the amount of peers that will receive Block/Tx messages
...
All transaction and block messages are now limited using `sqrt(peers)`
2015-04-14 12:49:15 +02:00
obscuren
333e539ce2
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
2015-04-13 17:35:46 +02:00
Jeffrey Wilcke
1fa844aaf5
Merge pull request #702 from ethersphere/frontier/blockpool
...
blockpool stability fixes:
2015-04-13 17:35:25 +02:00
obscuren
97d2954e22
eth: added downloader for syncing up the chain
2015-04-13 17:22:32 +02:00
obscuren
a8a2b2a488
downloader: added missing blocks catchup functionality
...
When a parent is missing in the block list an attempt should be made to
fetch the missing parent and grandparents.
2015-04-13 16:38:32 +02:00
zelig
3d57e377a4
blockpool stability fixes:
...
- follow up locks and fix them
- chainManager: call SetQueued for parentErr future blocks, uncomment TD checks, unskip test
- make ErrIncorrectTD non-fatal to be forgiving to genuine mistaken nodes (temp) but demote them to guard against stuck best peers.
- add purging to bounded nodeCache (config nodeCacheSize)
- use nodeCache when creating blockpool entries and let non-best peers add blocks (performance boost)
- minor error in addError
- reduce idleBestPeerTimeout to 1 minute
- correct status counts and unskip status passing status test
- glogified logging
2015-04-13 13:13:55 +01:00
Bas van Kervel
49a513bdeb
Added blockchain DB versioning support, closes #650
2015-04-13 10:13:52 +02:00
obscuren
7dcb9825c3
downloader: return an error for peer.fetch and return chunk to queue
...
If a peer was somehow already fetching and somehow managed to end up in
the `available` pool it should return it's work.
2015-04-12 13:36:01 +02:00
obscuren
6efa8db888
downloader: renamed chunks to queue
2015-04-12 13:24:38 +02:00
obscuren
acf8452c33
downloader: implemented new downloader
2015-04-12 12:38:25 +02:00
obscuren
764a802eaa
Disabled TD check
...
@zelig: Temporarily commented out TD check untill the rest of the network has
been fixed.
2015-04-09 17:39:02 +02:00
obscuren
663fd8f849
Moved log to debug
2015-04-09 17:19:05 +02:00
obscuren
204ac81188
Moved handling of nonces to the managed state
2015-04-08 23:30:07 +02:00
obscuren
6184781b49
Improved transaction pool
...
The transaction pool will now some easily be able to pre determine the
validity of a transaction by checking the following:
* Account existst
* gas limit higher than the instrinsic gas
* enough funds to pay upfront costs
* nonce check
2015-04-08 20:47:32 +02:00
obscuren
a953f3ec97
Sync managed accounts to the network
2015-04-08 13:07:21 +02:00
obscuren
688d118c7e
Updated logging
2015-04-07 14:57:04 +02:00
obscuren
09d3f2cf2a
Update ethash
2015-04-05 15:14:55 +02:00
obscuren
c985ce4d78
Changed log to new logging
2015-04-04 13:41:58 +02:00
obscuren
216ea425e4
corrected
2015-04-01 17:36:56 +02:00
obscuren
8e961df283
bumped network protocol
2015-04-01 17:10:42 +02:00
Felix Lange
76218959ab
eth: update cpp bootnode address
2015-04-01 17:00:12 +02:00
zelig
f56fc9cd9d
change StatusMsgData.TD back to pointer type *big.Int
2015-04-01 12:36:49 +01:00
zelig
6ffea34d8b
check TxMsg
...
- add validation on TxMsg checking for nil
- add test for nil transaction
- add test for zero value transaction (no extra validation needed)
2015-04-01 12:32:42 +01:00
zelig
82da6bf4d2
test for invalid rlp encoding of block in BlocksMsg
...
- rename Validate -> ValidateFields not to confure consensus block validation
- add nil transaction and nil uncle header validation
- remove bigint field checks: rlp already decodes *big.Int to big.NewInt(0)
- add test for nil header, nil transaction
2015-04-01 12:32:42 +01:00
zelig
d677190f39
add tests for valid blocks msg handling
2015-04-01 12:32:42 +01:00
zelig
e1be34bce1
eth: SEC-29 eth wire protocol decoding invalid message data crashes client
...
- add validate method to types.Block
- validate after Decode -> error
- add tests for NewBlockMsg
2015-04-01 12:32:42 +01:00
obscuren
f2c6a937f3
Protocol bump
2015-04-01 11:50:19 +02:00
Taylor Gerring
6daa455243
Update Go bootnode address
2015-03-31 14:14:29 +02:00
zelig
b375bbee5f
settable etherbase
...
- etherbase flag for block reward destination
- coinbase => etherbase
- CLI- eth Config -> eth, xeth -> RPC / Miner
- use primary instead of coinbase as the unlock magic wildcard
- accounts: firstAddr/Coinbase -> Primary
2015-03-26 21:52:22 +00:00
Jeffrey Wilcke
aa1eae67ec
Merge pull request #560 from tgerring/xethcleanup
...
XEth cleanup
2015-03-25 13:55:46 +01:00
Taylor Gerring
2b93843d86
Improve protocol version reporting
2015-03-25 12:09:55 +01:00
obscuren
dda1d60556
Store protocol version in the block db **NOT** extra db
2015-03-25 09:58:46 +01:00
obscuren
576df064e5
Updated for PV59
...
* Value XFER are refunded back to the sender if the execution fails
2015-03-24 11:49:30 +01:00
obscuren
0ee0094cc0
better block propagation
2015-03-23 22:59:19 +01:00
Taylor Gerring
e954c24af0
Implement RPC net_version
2015-03-23 18:06:05 +01:00
Taylor Gerring
60020add74
Merge pull request #551 from ethersphere/frontier/eth-version-exports
...
eth: fix protocol version/network id copied from config to Ethereum field
2015-03-23 18:00:54 +01:00
zelig
03cc5df9b7
eth: fix protocol version/network id copied from config to Ethereum field
2015-03-23 16:23:06 +00:00
obscuren
0330077d76
moved state and vm to core
2015-03-23 16:59:09 +01:00
obscuren
8b1b9fc99d
Merge branch 'jsonlog' of https://github.com/ethersphere/go-ethereum into ethersphere-jsonlog
...
Conflicts:
eth/backend.go
2015-03-22 21:43:36 +01:00
obscuren
82956df523
Get work / submit work partially implemented.
...
* WIP missing arguments for submitting new work
* GetWork **done**
2015-03-22 15:38:01 +01:00
zelig
78cff9e3a4
independent flag for json structured logging
...
- logjson flag remove logformat flag
- passed to eth Config
- logsystem not a field of Ethereum
- LogSystem does not need to expose GetLogLevel/SetLogLevel
- message struct just implements more generic LogMsg interface
- LogMsg is a fmt.Stringer with Level()
- jsonMsg ([]byte) implements LogMsg
- remove "raw" systems
- move level logic inside StdLogSystem
- logsystems only print their kind of msg: jsonLogSystem prints jsonMsg, StdLogSystem prints stdMsg
2015-03-22 02:16:54 +00:00
Felix Lange
7c4ff3abb4
eth: enable whisper again
2015-03-21 00:50:20 +01:00
obscuren
f4e9638867
Merge branch 'ethersphere-frontier/blockpool' into conversion
2015-03-20 18:01:05 +01:00
obscuren
ecd10d2cf7
iterator returned wrong value
2015-03-20 18:00:54 +01:00
obscuren
54dac59285
wip
2015-03-20 17:42:09 +01:00
zelig
0578df9467
remove eth/wallet.go (only commented out content)
2015-03-20 10:41:41 +00:00
zelig
391e89d70a
use own total difficulty to limit best peer
...
- update blockpool td by subscribing to ChainHeadEvent
- if ahead of best peer, demote it
- addPeer now take own td as current td
- removePeer now take own td as current td
- add relevant tests to peers_test
- eth: backend now calls blockpool with eth.eventMux and chainManager.Td
2015-03-20 10:41:40 +00:00
zelig
50661f0e68
peer suspension to disallow reconnect after disconnect on fatal error for set period (PeerSuspensionInterval)
2015-03-20 10:41:40 +00:00
Felix Lange
e80dda6051
eth, whisper: adapt for RLP encoder switch in package p2p
...
I have rewritten the protocol test to use p2p.MsgPipe because
p2p.NewMsg is gone.
2015-03-19 15:18:31 +01:00
obscuren
f0bb136099
Merge branch 'develop' into conversion
2015-03-18 18:42:01 +01:00
obscuren
0a1eeca41e
conversions. -compilable-
2015-03-18 13:00:01 +01:00
zelig
ca8d184173
fix eth tests
2015-03-18 16:31:49 +07:00
zelig
b6aa88c099
private network support
...
- protocolversion, networkid global int flags to cli and mist
- fix bug with protocolversion check using wrong db
- log protocolversion & networkid in backend
2015-03-18 14:44:58 +07:00
zelig
7dbbe1bedc
eth/backend: remove spurious and incorrent PeerInfo()
2015-03-18 04:01:47 +07:00
zelig
1872418316
eth: remove disused peer_util.go
2015-03-18 03:59:21 +07:00
zelig
b3e133dd15
Merge branch 'frontier/js' into frontier/nodeadmin.js
2015-03-16 22:50:29 +07:00
obscuren
b523441361
Moved ethutil => common
2015-03-16 11:27:38 +01:00
zelig
8ad0f1b8a3
eth:
...
- NodeInfo, PeerInfo types, PeersInfo(), NodeInfo() in eth/backend to support node admin IF
- start net only if MaxPeers > 0, close extraDb in Stop()
- defer s.extraDb.Close()
2015-03-15 13:39:52 +07:00
obscuren
d9966d6158
merge
2015-03-14 23:37:21 +01:00
Felix Lange
e463479b6c
eth: add ResetWithGenesisBlock
...
This depends on a change in ethash which exposes UpdateCache.
2015-03-13 18:41:09 +01:00
Felix Lange
6f8a2d6b84
eth: add hook for database creation
2015-03-13 18:41:09 +01:00
obscuren
b663e8b29a
Merge branch 'rpcfrontier' into develop
2015-03-13 16:36:27 +01:00
obscuren
aa9f981d5f
Bump protocol version 58
2015-03-13 13:52:57 +01:00
Taylor Gerring
d4ed66c83d
Add web3_clientVersion
2015-03-12 19:20:46 -05:00
obscuren
ef6706696c
Add additional extra database for non-protocol related data
...
* Add transaction to extra database after a successful block process
2015-03-12 14:50:35 +01:00
Felix Lange
d7b5a87b3b
miner: provide coinbase when starting the miner
...
This avoids having to query the coinbase when creating the miner, which
in turn eliminates the dreaded startup error when no accounts are set
up. Later, this will also allow us to simply restart the miner when the
user picks a different coinbase.
This causes a lot of changes in other packages. These are included in
this commit because they're impossible to separate.
2015-03-11 23:43:27 +01:00
Felix Lange
269cfbb8ac
Merge branch origin/develop into accounts-integration
...
Conflicts:
cmd/blocktest/main.go
cmd/mist/debugger.go
cmd/utils/cmd.go
2015-03-10 17:14:31 +01:00
Felix Lange
9d4e1e8f8b
eth: return account errors directly
2015-03-10 15:42:58 +01:00
Felix Lange
9b3ae1fdb7
eth: fix tests
2015-03-10 02:34:52 +01:00
Felix Lange
9bf513e993
Merge ethereum/poc-9 into accounts-integration
...
Conflicts:
cmd/utils/cmd.go
cmd/utils/flags.go
core/manager.go
eth/backend.go
rpc/http/server.go
xeth/xeth.go
2015-03-09 23:25:46 +01:00
Felix Lange
63758db379
eth: delete unused RpcServer field
2015-03-09 23:08:46 +01:00
Gustav Simonsson
27c42ea934
Add empty total difficulty to test blocks and clean up stopping the node
2015-03-09 18:03:35 +01:00
Felix Lange
fb53a9362e
accounts: AccountManager -> Manager
2015-03-08 01:58:35 +01:00
Taylor Gerring
fca652eeea
Fix logger import path
2015-03-07 10:48:38 -06:00
Felix Lange
d66f93cecd
accounts, core, eth, xeth: use account manager for everything
...
The account manager is now responsible for picking the
default account and the coinbase.
2015-03-07 12:38:33 +01:00
obscuren
22b493a6ff
Fixed tests
2015-03-06 20:10:59 +01:00
obscuren
cd856cb213
Separated block db from state db. Partial fix for #416
2015-03-06 18:26:16 +01:00
obscuren
ed84b58af5
Debug option for VM & command line flag
2015-03-06 16:58:52 +01:00
obscuren
548e104171
Merge branch 'poc-9' of github.com-obscure:ethereum/go-ethereum into poc-9
2015-03-06 16:40:21 +01:00
Gustav Simonsson
bc45e5c6de
Integrate eth_accounts and eth_transact to use new account manager
...
* Add from to eth_transact / xeth.Transact and add static pass in lieu
of integrating with native Mist window for user passphrase entry
* Make eth_accounts return AccountManager.Accounts()
* Add a Generate Key menu item in Mist
2015-03-06 13:10:42 +00:00
Felix Lange
e64f727529
Merge pull request #433 from fjl/newcli
...
Improved CLI
2015-03-06 14:02:16 +01:00
obscuren
23ad2f02c0
debug comments & pow handling
2015-03-06 10:22:40 +01:00
Felix Lange
bdba044a80
ethutil: remove Config variable
...
Various functions throughout the codebase used it to grab settings. This
has to stop because I want to use them without reading the config file.
These functions can now be used without reading the config first:
* ethdb.NewLDBDatabase
* ethrepl.NewJSRepl
* vm.New
2015-03-06 02:46:56 +01:00
obscuren
ba0c41436c
Merge branch 'p2p-handshake-2' of https://github.com/fjl/go-ethereum into fjl-p2p-handshake-2
2015-03-05 17:21:32 +01:00
obscuren
c47866d251
Miner fixes and updates (including miner)
2015-03-05 09:14:58 +01:00
Felix Lange
215c763d53
eth, p2p: delete p2p.Blacklist
...
It is unused and untested right now. We can
bring it back later if required.
2015-03-04 16:54:36 +01:00
Felix Lange
6e7e5d5fd5
eth, whisper: fix msg.Payload reads
2015-03-04 13:25:01 +01:00
obscuren
15f491e500
Clean up REPL
2015-03-04 12:18:26 +01:00
obscuren
bb152612e0
Merge branch 'develop' into poc-9
...
Conflicts:
cmd/utils/cmd.go
2015-03-03 20:34:48 +01:00
obscuren
f0b2ea64fc
Merge branch 'jsonlogs' of https://github.com/ethersphere/go-ethereum into ethersphere-jsonlogs
...
Conflicts:
eth/block_pool.go
eth/block_pool_test.go
eth/protocol_test.go
miner/worker.go
2015-03-03 20:30:05 +01:00
Jeffrey Wilcke
253eb778d1
Merge pull request #411 from ethersphere/readme
...
[WIP] Update Readme
2015-03-03 20:17:51 +01:00
Jeffrey Wilcke
988391fc37
Merge pull request #409 from tgerring/jsonlogs
...
Updated JSON log events
2015-03-03 20:16:55 +01:00
obscuren
313fe3861b
fixed pow stuff
2015-03-03 17:55:23 +01:00
zelig
fc47f0f27b
add eth.chain.received.new_block log to eth protocol
2015-03-03 15:43:05 +07:00
zelig
7e224b6834
db name database -> blockchain in backend error message
2015-03-03 13:22:19 +07:00
Taylor Gerring
a75af474f7
Fix logger import in tests
2015-03-02 08:27:26 -06:00
Taylor Gerring
e31ec57f88
Add event eth.tx.received
2015-03-02 08:17:09 -06:00
Taylor Gerring
0976c3024f
Don't import logger as ethlogger
2015-03-02 08:15:28 -06:00
Taylor Gerring
cfe0370280
Remove Websockets RPC transport
2015-03-01 16:19:06 +01:00
obscuren
73c52d1677
Merge branch 'ethersphere-blockpool2' into poc-9
2015-02-28 20:52:57 +01:00
obscuren
cc5c8a444d
Report proper database directory. Closes #397
2015-02-26 20:36:54 +01:00
zelig
16ecda951b
integrate blockpool into eth
...
- remove blockpool code
- remove blockpool integration test (kinda embarrassing)
- remove errors.go
2015-02-25 20:38:37 +07:00
Jeffrey Wilcke
59a86d3171
Merge pull request #359 from fjl/p2p-identity
...
Persistent Node Key
2015-02-22 13:27:53 +01:00
obscuren
cc43ab9a81
Minor updates for release
2015-02-20 18:05:46 +01:00
Felix Lange
e968928613
eth: persist node key between sessions ( #304 )
2015-02-20 15:26:50 +01:00
Felix Lange
e282ad25a8
eth: add poc-8.ethdev.com as second default bootstrap node
2015-02-20 15:24:43 +01:00
obscuren
d8ac267f41
dirty tracking for state objects fixed
2015-02-20 14:01:30 +01:00
Jeffrey Wilcke
765740b829
Merge pull request #345 from maran/feature/minerthreads
...
Implement command line argument to set the amount miner threads
2015-02-19 22:37:13 +01:00
Taylor Gerring
4322632c59
Merge pull request #339 from tgerring/jsonlog
...
JSON log updates
2015-02-19 12:25:45 +01:00
Maran
5aff8bfb59
Implement command line argument to set the amount of agents created by the miner
...
Defaults to the amount of cores available on the CPU
2015-02-19 10:38:36 +01:00
obscuren
05b1ec008b
Disabled ability to disable whisper. Closes #334
2015-02-18 11:42:01 +01:00
Taylor Gerring
f499f343ba
Update JSON Log types
2015-02-18 10:52:23 +01:00
obscuren
5ec8c5f71b
added bootnode back in
2015-02-17 23:14:10 +01:00
obscuren
7fc9b5b3f9
Changed to ChainEvent and fixed a nil pointer in transact
2015-02-17 22:20:47 +01:00
obscuren
567428fb34
Filter and mutex locks added
2015-02-17 16:12:55 +01:00
obscuren
8135752a32
"centralised" mining to backend. Closes #323
2015-02-17 12:24:58 +01:00
Felix Lange
1c1a3033be
eth: add default bootnode
2015-02-13 21:41:13 +01:00
obscuren
bde3ff16ad
merge
2015-02-13 16:02:37 +01:00
obscuren
76fa75b394
wip
2015-02-13 15:35:54 +01:00
obscuren
a5ea21cd85
merge
2015-02-13 15:05:56 +01:00
Felix Lange
d0a2e655c9
cmd/ethereum, cmd/mist, eth, p2p: use package p2p/nat
...
This deletes the old NAT implementation.
2015-02-13 11:39:31 +01:00
Taylor Gerring
db24fb792c
Move standard fields to LogEvent
2015-02-11 18:49:00 +01:00
Taylor Gerring
3c40eb9e5a
Temporarily skip broken TestVerifyPoW
2015-02-11 13:47:03 +01:00
Taylor Gerring
3d6fd601c5
Move event names within each object
2015-02-11 12:45:41 +01:00
Taylor Gerring
d53e5646ec
Use strongly-typed objects
2015-02-10 19:21:13 +01:00
Felix Lange
a21b30c901
eth: remove unused Ethereum sync fields
2015-02-10 13:30:07 +01:00
Felix Lange
a3cd218719
cmd/mist, cmd/ethereum: add CLI arguments for node key
2015-02-10 12:30:09 +01:00
Felix Lange
f1ebad2508
eth: don't warn if no BootNodes are specified
2015-02-09 16:17:07 +01:00
Felix Lange
028775a086
cmd/ethereum, cmd/mist: add flag for discovery bootstrap nodes
2015-02-07 00:52:49 +01:00
Felix Lange
2cf4fed11b
cmd/mist, eth, javascript, p2p: use Node URLs for peer suggestions
2015-02-07 00:46:56 +01:00
Felix Lange
56f777b2fc
cmd/ethereum, cmd/mist, core, eth, javascript, xeth: fixes for new p2p API
2015-02-06 00:03:59 +01:00
Jeffrey Wilcke
99a1551b20
Merge pull request #287 from ethereum/system-testing
...
Seednode CLI param updates
2015-02-05 11:09:13 -08:00
obscuren
57f95c1dc7
fixed test
2015-02-04 17:35:49 -08:00
obscuren
1d519854e2
Propagate known transactions to new peers on connect
2015-02-04 17:28:54 -08:00
obscuren
30fa30bd4a
Docs & old code removed
2015-02-02 20:02:00 -08:00
Taylor Gerring
1f4ed49b4c
Move hardcoded seed node address to app flag
...
Replaces functionality `-seed=true` with `-seed="ip:port"`
2015-02-02 13:04:00 -06:00
obscuren
8ccde784f9
Added (disabled) Jit validation
2015-02-01 15:30:29 +01:00
obscuren
32fbc0d334
Merge branch 'develop' into qt5.4
2015-01-28 21:36:53 +01:00
obscuren
1337a8dfb1
upped pv
2015-01-28 21:34:08 +01:00
obscuren
7f638f0b2d
moving to a better xeth
2015-01-28 18:14:28 +01:00
Taylor Gerring
5f50fe7a4a
Update CLI to use new Websocket RPC
...
Use “wsport” flag to change default port
2015-01-27 12:29:08 -06:00
Taylor Gerring
d790229a33
Move HTTP transport to sub package of RPC
2015-01-27 12:29:07 -06:00
Taylor Gerring
0aa76d3e5b
Rename jsonlogger method
2015-01-21 11:45:30 -06:00
Taylor Gerring
1077109e11
Add JsonLogger type
2015-01-21 10:57:29 -06:00
Taylor Gerring
bdf99e0981
Add LogFormat flag
2015-01-21 10:17:07 -06:00
obscuren
9b509f6478
Print error instead of returning for seed node err
...
Returning an error would indicate a complete failure initialising the
Ethereum backend. Instead we should print the message and continue.
2015-01-19 11:20:12 +01:00
obscuren
35f4bb96f3
Limit hashes. Closes #249
2015-01-09 16:44:09 +01:00
zelig
b3161f5803
Merge remote-tracking branch 'upstream/develop' into develop
2015-01-09 06:21:47 +00:00
zelig
5a9952c7b4
major blockpool change
...
- the spec says response to getBlockHashes(from, max) should return all hashes starting from PARENT of from. This required major changes and results in much hackier code.
- Introduced a first round block request after peer introduces with current head, so that hashes can be linked to the head
- peerInfo records currentBlockHash, currentBlock, parentHash and headSection
- AddBlockHashes checks header section and creates the top node from the peerInfo of the best peer
- AddBlock checks peerInfo and updates the block there rather than in a node
- request further hashes once a section is created but then no more until the root block is found (so that we know when to stop asking)
- in processSection, when root node is checked and receives a block, we need to check if the section has a parent known to blockchain or blockPool
- when peers are switched, new peer launches a new requestHeadSection loop or activates its actual head section, i.e., the section for it currentBlockHash
- all tests pass
2015-01-09 06:03:45 +00:00
zelig
8ecc9509b3
add ErrInsufficientChainInfo error
2015-01-09 06:03:32 +00:00
zelig
f72cb28b0f
adapt unit tests to spec
...
- AddBlockHashes ignores the first hash (just used to match getBlockHashes query) sends the rest as blocksMsg
- new test TestPeerWithKnownParentBlock
- new test TestChainConnectingWithParentHash
- adapt all other tests to the new scheme
2015-01-09 05:57:09 +00:00
zelig
43ed0ed1ae
no need to call AddBlockHashes when receiving new block
2015-01-09 05:06:04 +00:00
zelig
69dfca2feb
minor changes in integration tests
2015-01-09 05:04:32 +00:00
obscuren
26f066f0c7
just enable by default
2015-01-08 22:18:23 +01:00
obscuren
fed3e6a808
Refactored ethutil.Config.Db out
2015-01-07 13:17:48 +01:00
obscuren
25e6c4eff8
Adjusted difficulty and skip get tx messages
2015-01-06 14:02:47 +01:00
obscuren
a76b7dadae
Don't auto push jeff ...
2015-01-06 13:39:01 +01:00
obscuren
1b903767e0
Fixed port num
2015-01-06 13:31:52 +01:00
obscuren
4e7f53adf0
Changed to poc-8 & removed GetTxs
2015-01-06 13:31:08 +01:00
Felix Lange
eb0e7b1b81
eth, p2p: remove EncodeMsg from p2p.MsgWriter
...
...and make it a top-level function instead.
The original idea behind having EncodeMsg in the interface was that
implementations might be able to encode RLP data to their underlying
writer directly instead of buffering the encoded data. The encoder
will buffer anyway, so that doesn't matter anymore.
Given the recent problems with EncodeMsg (copy-pasted implementation
bug) I'd rather implement once, correctly.
2015-01-06 12:23:38 +01:00
obscuren
d001479a47
unclean shutdown for now
2015-01-05 17:15:25 +01:00
obscuren
6abf8ef78f
Merge
2015-01-05 17:10:42 +01:00
obscuren
c1dee15144
BlockManager => BlockProcessor
2015-01-05 00:18:44 +01:00
obscuren
09841b1c9b
Cleaned up some of that util
2015-01-04 14:20:16 +01:00
obscuren
16f417f5af
Fixed bug where logging could crash client during tx adding
2015-01-02 22:19:58 +01:00
obscuren
530953050a
Updated protocol version
2015-01-02 17:35:00 +01:00
obscuren
d336e24dce
Removed the need of having a backend for the tx pool
2015-01-02 12:26:55 +01:00
obscuren
4cd79d8ddd
Refactored block & Transaction
...
* Includes new rlp decoder
2014-12-23 13:48:44 +01:00
obscuren
0dc566124a
Merge fixes
2014-12-18 13:22:59 +01:00
obscuren
6ff9d5770b
Added whisper handler
2014-12-15 17:09:14 +01:00
obscuren
455241debb
Removed goroutine from "Run"
2014-12-15 17:09:06 +01:00
obscuren
56dac74f71
made mist in a compilable, workable state using the new refactored packages
2014-12-15 13:00:29 +01:00
obscuren
c7bc684909
Moved peer helper metheds
2014-12-15 12:35:21 +01:00
obscuren
96272e19a6
removed filter manager from base
2014-12-15 12:34:06 +01:00
obscuren
cdb2ebbdfa
Added old filter. Needs some refactoring
2014-12-15 12:17:33 +01:00
obscuren
4b5ad31b3a
WIP
2014-12-15 12:07:46 +01:00
obscuren
6c168c8f22
added protocol handler
2014-12-15 12:02:48 +01:00
obscuren
afc8b887ab
added whisper
2014-12-15 12:01:55 +01:00
obscuren
f111fc0608
WIP
2014-12-15 11:38:09 +01:00
zelig
4c89d5331f
adapt blockpool/backend to use pow/ezp with pow.Block for VerifyPoW func
2014-12-14 20:53:20 +00:00
zelig
e77b720ead
blockmanager start/stop obsolete
2014-12-14 20:45:12 +00:00
zelig
01dc1c1394
blockpool rewritten , tests broken FIXME
2014-12-14 20:42:08 +00:00
zelig
4dfce4624d
protocol
...
- new interface explicit backend components txPool, chainManager, blockPool
- added protoErrorDisconnect for blockpool callback (FIXME: handling peer disconnects)
2014-12-14 20:40:08 +00:00
zelig
5e4d77b2b8
initial commit for eth blockpool + test
2014-12-14 20:39:34 +00:00
zelig
2dd8f41147
eth protocol changes
...
- changed backend interface
- using callbacks for blockPool
- use rlp stream for lazy decoding
- use peer as logger
- add id (peer pubkey) to ethProtocol fields
- add testPeer to protocol test (temporary)
2014-12-14 20:37:07 +00:00
zelig
0add0c400f
initial commit for eth-p2p integration
2014-12-14 20:34:28 +00:00
zelig
76070b4674
blockpool rewritten , tests broken FIXME
2014-12-14 20:27:06 +00:00
zelig
3308d82b23
add protocol error types specific to blockpool
2014-12-14 20:27:06 +00:00
zelig
c44e025898
protocol
...
- new interface explicit backend components txPool, chainManager, blockPool
- added protoErrorDisconnect for blockpool callback (FIXME: handling peer disconnects)
2014-12-14 20:27:06 +00:00
zelig
02017ed0e0
initial commit for new backend (eth.Ethereum)
2014-12-14 20:27:06 +00:00
zelig
4366fdfc13
initial commit for eth blockpool + test
2014-12-14 20:27:06 +00:00
zelig
d957dd2c9f
eth protocol changes
...
- changed backend interface
- using callbacks for blockPool
- use rlp stream for lazy decoding
- use peer as logger
- add id (peer pubkey) to ethProtocol fields
- add testPeer to protocol test (temporary)
2014-12-14 20:27:06 +00:00
zelig
eb5cb04aa9
no logging in error (to be refactored into p2p)
2014-12-14 20:27:05 +00:00
zelig
e5aa38cb0f
initial commit for eth-p2p integration
2014-12-14 20:27:05 +00:00