Commit Graph

642 Commits

Author SHA1 Message Date
Taylor Gerring
6afdc52483 Prevent debug value from printing on console 2015-07-03 07:40:47 -05: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
Vitalik Buterin
9f6016e877 Merge branch 'develop' of github.com:ethereum/go-ethereum into develop 2015-07-02 05:27:31 -04:00
Jeffrey Wilcke
75f41dedca Merge pull request #1378 from obscuren/issue1367
core, xeth: core.AddressFromMessage removed => crypto.CreateAddress
2015-07-02 02:27:20 -07:00
Vitalik Buterin
744af9f497 Switched canary addresses 2015-07-02 05:27:19 -04:00
Jeffrey Wilcke
529fb7a7d7 core, xeth: core.AddressFromMessage removed => crypto.CreateAddress 2015-07-02 11:19:10 +02:00
Jeffrey Wilcke
70d5d791cc core, cmd/geth: improved recover functionality
`geth recover` now accepts both hashes and numbers using "#" and no
longer requires the ethereum instance.
2015-07-01 16:34:35 +02:00
Jeffrey Wilcke
bb418a43c1 Merge pull request #1370 from obscuren/force-checkpoint
core, cmd/geth: recover by number
2015-07-01 03:57:13 -07:00
Jeffrey Wilcke
29ab1fa8a5 core, cmd/geth: recover by number 2015-07-01 00:52:44 +02:00
Jeffrey Wilcke
a748afce03 core: txpool listen for ChainHeadEvent instead of ChainEvent
Changed the transaction pool to listen for ChainHeadEvent when resetting
the state instead of ChainEvent. It makes very little sense to burst
through transactions while we are catching up (e.g., have more than one
block to process)
2015-06-30 17:27:47 +02:00
Jeffrey Wilcke
c14f0a4471 core: added checkpoint for last block
* Add a checkpoint every X blocks
* Removed queued write
2015-06-30 17:27:47 +02:00
Jeffrey Wilcke
61ca780f3b core: reduce CPU load by reducing calls to checkQueue
* Reduced maxQueue count
* Added proper deletion past maxQueue limit
* Added cheap stats method to txpool

queueCheck was called for **every** transaction instead of:
1. add all txs
2. check queue

previously

1. add txs[i]
2. check queue
3. if i < len(txs) goto 1.
2015-06-30 14:01:12 +02:00
Jeffrey Wilcke
d8fe64acaa core, miner: added queued write to WriteBlock
This fixes an issue with the lru cache not being available when calling
WriteBlock. WriteBlock previously always assumed to be called from the
InsertChain where the lru cache was always created prior to calling
WriteBlock. When being called from the worker this could lead in to a
nil pointer exception being thrown and causing database corruption.
2015-06-30 11:14:43 +02:00
Gustav Simonsson
4c490db6af Use uint64 for block header timestamp 2015-06-30 10:52:11 +02:00
Péter Szilágyi
5f3792c2a7 cmd/geth: decent error message if metrics are disabled 2015-06-30 00:57:55 +02:00
Péter Szilágyi
01fe972113 cmd, core, eth, metrics, p2p: require enabling metrics 2015-06-30 00:51:46 +02:00
Jeffrey Wilcke
992e4f83cb core: replaced BlockCache with lru.Cache 2015-06-30 00:36:25 +02:00
Jeffrey Wilcke
a8ebf756c7 Merge branch 'miner-broadcast' into core-optimisations-2
Conflicts:
	core/chain_manager.go
	miner/worker.go
2015-06-29 18:55:49 +02:00
Jeffrey Wilcke
e349fac97d core: fixed tests 2015-06-29 18:51:49 +02:00
Jeffrey Wilcke
aba901e13c core: removed write's go routine 2015-06-29 18:51:49 +02:00
obscuren
07db098ccf core: renamed next to pending & fixed tests 2015-06-29 18:51:49 +02:00
obscuren
855e76fddd core: reduced cache limit to 256 2015-06-29 18:51:49 +02:00
obscuren
6ca3a44638 core: switched to proper LRU 2015-06-29 18:51:49 +02:00
obscuren
4460dc9d1a core: added LRU caching and added batch writing when LDB is used 2015-06-29 18:51:49 +02:00
Felix Lange
76821d167a core, eth, rpc: avoid unnecessary block header copying 2015-06-29 18:51:48 +02:00
Felix Lange
fccc7d71eb core: remove superfluous big.Int allocations
With blocks now being immutable, use big.Int values from
accessor functions instead of copying their results.
2015-06-29 18:51:48 +02:00
Felix Lange
d0bb90c69e core: generate benchmark keys only once 2015-06-29 18:51:48 +02:00
Felix Lange
992dc74efd core: avoid duplicate calls to Transaction.Data 2015-06-29 18:51:48 +02:00
Felix Lange
0b22ad99c1 core: optimize IntrinsicGas 2015-06-29 18:51:48 +02:00
Felix Lange
a8889b092b core/types: cache computed block values 2015-06-29 18:51:48 +02:00
Felix Lange
11b8d1df59 core/types: cache computed transaction values 2015-06-29 18:51:48 +02:00
Felix Lange
c3d6228023 core: add InsertChain benchmarks 2015-06-29 18:51:47 +02:00
Felix Lange
ceaf1c080b core: add GenerateChain, GenesisBlockForTesting 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
Jeffrey Wilcke
b39042db56 core, miner: implemented canary 2015-06-29 13:31:49 +02:00
Jeffrey Wilcke
d1e93db3eb core, miner: added write block method & changed mining propagation 2015-06-29 13:31:49 +02: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
43e4a6501b core, ethdb: instrument the block and state db
Conflicts:
	ethdb/database.go
2015-06-24 18:34:04 +03:00
Péter Szilágyi
7f92e708c5 cmd/geth, core: impl. percentile reporting, instrument insertions 2015-06-24 18:34:04 +03:00
Bas van Kervel
a4a4e9fcf8 removed old rpc structure and added new inproc api client 2015-06-22 09:17:09 +02:00
Jeffrey Wilcke
9cf7913c61 Merge pull request #1304 from obscuren/state-renames
core, miner, xeth: renamed gas methods
2015-06-21 16:49:47 -07:00
obscuren
07c3de3f75 core, miner, xeth: renamed gas methods
* BuyGas => SubGas
* RefundGas => AddGas
* SetGasPool => SetGasLimit
2015-06-21 17:09:19 +02:00
obscuren
c590b505ed core, ethdb, trie: validate database errors 2015-06-21 16:59:15 +02:00
obscuren
430bcdb219 core/vm: clarified SSTORE 2015-06-18 12:25:02 +02:00
obscuren
15e169e5b6 core: ValidatedHeader (method => function)
Changed header validation method to function in preparation of
@karalabe's PR.
2015-06-18 11:47:50 +02:00
obscuren
f5abc9f188 core, core/vm: state improvements and tx pool speed up
Removed full tx validation during state transitions
2015-06-17 17:10:22 +02:00
obscuren
753d62a4dd core: TMP testing code 2015-06-17 17:10:13 +02:00
obscuren
bdd63837ea core/state: removed trie copy 2015-06-17 13:39:19 +02:00
obscuren
aa699a1283 core/state: removed state from state object 2015-06-17 13:27:51 +02:00
obscuren
aaddc99c35 core/state: fixed state tests 2015-06-17 12:53:22 +02:00
obscuren
30b27336ea core/state: remove the need for common.Value 2015-06-17 11:30:42 +02:00
obscuren
787a61bb27 core/state, core/vm: reworked storage get / set to use common.Hash 2015-06-17 11:24:40 +02:00
obscuren
5721fcf668 core/state, core/vm: cleanup refunds 2015-06-17 10:20:33 +02: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
obscuren
e79cc42dfe core: moved check for max queue to checkQueue
Moved the queue to check to the checkQueue method so no undeeded loops
need to be initiated or sorting needs to happen twice.
2015-06-15 16:46:45 +02:00
zsfelfoldi
3c7b64ce20 removed duplicate function after rebase 2015-06-15 15:55:39 +02:00
zsfelfoldi
3f94d09c1f fixed saving receipts 2015-06-15 15:55:38 +02:00
obscuren
21fa29111b core: reduce max allowed queued txs per address
Transactions in the queue are now capped to a maximum of 200
transactions. This number is completely arbitrary.
2015-06-15 12:16:29 +02:00
obscuren
6d817e16c1 core, miner: tx pool drops txs below ask price 2015-06-15 11:33:08 +02:00
Jeffrey Wilcke
6f5c6150b7 Merge pull request #1255 from obscuren/chain-proc-interupt
eth, core: interrupt the chain processing on stop
2015-06-12 08:04:02 -07:00
obscuren
645dfd9693 core: changed interrupt strategy
Removed chain manager's select/channel approach when checking for
interrupts. Now using an atomic int32 instead which checked for every
block processed.
2015-06-12 16:52:54 +02: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
obscuren
287f990891 core/vm: Improved error reporting for trace logging 2015-06-12 13:35:14 +02:00
obscuren
02d629af8f core/vm: fixed printable characters using unicode instead 2015-06-12 11:18:17 +02:00
Jeffrey Wilcke
6609d45ef4 Merge pull request #1228 from obscuren/vm-optimisations
core/vm: optimisations
2015-06-11 03:32:39 -07:00
obscuren
37111aa4bd core: retry block now also parellise nonce checks 2015-06-11 12:06:05 +02:00
obscuren
f599a1b5f1 core/vm: added a comment regarding the uint64 vs *big.Int 2015-06-11 11:59:30 +02:00
obscuren
e7627623b9 core/vm: reverse loop stack 2015-06-10 21:08:54 +02:00
obscuren
f94c5473ad core/vm: fixed a bug where Data ignored the stack ptr 2015-06-10 21:08:04 +02:00
obscuren
10af69b57c core, core/vm: moved logger and added gas cost to struct logging 2015-06-10 19:56:40 +02:00
obscuren
fc2a061d51 core/vm: unexported stack again. No longer required 2015-06-10 17:47:36 +02:00
obscuren
065aff9ffa core/vm: documentation and name changes 2015-06-10 17:47:36 +02:00
obscuren
4407524d13 core: fixed race condition for subscriptions 2015-06-10 17:13:32 +02:00
obscuren
29f7902fee core: fixed test 2015-06-10 17:13:32 +02: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
obscuren
1774c49456 core: log tx count for each set of blocks we're importing 2015-06-10 12:57:58 +02:00
obscuren
6fb6e6679e core/vm, core/state: added storage to structured vm logging 2015-06-10 12:57:37 +02:00
obscuren
38c61f6f25 core, core/vm: added structure logging
This also reduces the time required spend in the VM
2015-06-10 12:23:49 +02:00
obscuren
ff5b3ef087 core/vm: added structured logging 2015-06-10 10:59:44 +02:00
obscuren
468501cb86 core/vm: changed program counter to uint64 2015-06-10 10:44:46 +02:00
obscuren
bc6031e7bb core, xeth: moved nonce management burden from xeth to txpool 2015-06-09 21:01:02 +02:00
Péter Szilágyi
d652a58ada core: fix a race condition accessing the gas limit 2015-06-09 21:13:21 +03:00
Péter Szilágyi
fecf214175 core: fix a lock annoyance and potential deadlock 2015-06-09 21:02:26 +03:00
Felix Lange
73c355591f core, eth: document that result of GetTransactions is modifiable 2015-06-09 17:07:10 +02:00
Felix Lange
7aefe123e9 core/types: add Transaction.Size 2015-06-09 17:06:31 +02:00
Jeffrey Wilcke
c71ab2a6a3 Merge pull request #1219 from Gustav-Simonsson/precompiled_ec_recover_padding
Precompiled ec recover padding
2015-06-09 07:21:23 -07:00
Gustav Simonsson
6e3b58e491 Remove unneeded if check on EC recover padding 2015-06-09 16:03:05 +02:00
Jeffrey Wilcke
365576620a Merge pull request #1216 from karalabe/fix-eth-dataraces
Fix various data races in eth and core
2015-06-09 06:53:49 -07:00
Gustav Simonsson
ad5b5a4895 Pad precompiled EC recover input and add validations 2015-06-09 15:41:15 +02:00
Péter Szilágyi
ebf2aabd25 core: fix up a deadlock caused by double locking 2015-06-09 16:26:44 +03:00
Péter Szilágyi
ca8cb65b73 core: fix data race accessing ChainManager.currentBlock 2015-06-09 15:30:46 +03:00
Péter Szilágyi
07baf66200 core: fix data race in accessing ChainManager.td 2015-06-09 15:23:20 +03:00
obscuren
190c1b688a core: skip genesis block for reprocess. Closes #1202 2015-06-09 13:24:32 +02:00
obscuren
a5b977aa90 core: write accounts to statedb. Closes #1210 2015-06-09 11:37:01 +02:00
Jeffrey Wilcke
0f1cdfa53a Merge pull request #1193 from tgerring/hotbackup
Improve export command
2015-06-08 16:32:38 -07:00
obscuren
5245bd7b20 core: added a test for missing nonces
This test showed the logic in the queue was slightly flawed sending out
transactions to its peer it couldn't even resolve itself.
2015-06-09 00:41:47 +02: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
Felix Lange
6c27e2aaf6 core: add bad block for the 'missing nonce check' fork 2015-06-08 02:54:10 +02:00
Felix Lange
0b493910d3 core: fix the nonce check one more time
The block nonce verification was effectively disabled by a typo.
This time, there is an actual test for it.
2015-06-08 02:19:39 +02:00