Commit Graph

550 Commits

Author SHA1 Message Date
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 d5083033f15bb815a6212eddae16a7125db58738)
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