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
Taylor Gerring
4ab0cedf42
Export should start with block 0
2015-06-06 10:59:56 -04:00
Taylor Gerring
ed621aae33
Cleanup
2015-06-06 09:50:23 -04:00
Taylor Gerring
89c9320d80
Allow exporting subset of chain
2015-06-05 23:01:54 -04:00
obscuren
7ab87f9f6e
wip
2015-06-05 17:33:30 +02:00
obscuren
912cf7ba04
core: added fork test & double nonce test
2015-06-04 19:28:39 +02:00
obscuren
0f51ee6c88
crypto: return common.Address rather than raw bytes
2015-06-04 19:28:39 +02:00
obscuren
dcdb4554d7
core: documented changes in tx pool
2015-06-04 16:19:22 +02:00
obscuren
cf5ad266f6
core: only change the nonce if the account nonce is lower
2015-06-04 15:44:42 +02:00
obscuren
9dd12a64a7
core: renamed txs to pending
2015-06-04 13:16:31 +02:00
obscuren
140d883901
core: test updates
2015-06-03 22:53:33 +02: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
ec7a2c3442
core: don't remove transactions after block processing
...
The transaction pool drops processed transactions on its own
during pool maintenance.
2015-06-03 22:43:23 +02:00
Felix Lange
5721c43585
core: update documentation comments for TxPool
2015-06-03 22:43:23 +02:00
Felix Lange
ca31d71107
core: remove unused code from TxPool
2015-06-03 22:43:23 +02:00
Felix Lange
08befff8f1
core: compute less transaction hashes in TxPool
2015-06-03 22:43:23 +02:00
obscuren
770a0e7839
wip
2015-06-03 22:39:17 +02:00
obscuren
b26f5e0bb7
types: block json unmarshal method added
2015-06-03 22:39:17 +02:00
obscuren
fa4aefee44
core/vm: cleanup and renames
2015-06-03 22:39:17 +02:00
Jeffrey Wilcke
8610314918
Merge pull request #1167 from Gustav-Simonsson/check_ec_recover_err
...
Add missing err checks on From()
2015-06-03 10:29:47 -07:00
Jeffrey Wilcke
71d9367edc
Merge pull request #1151 from fjl/parallel-nonce-2
...
core: re-add parallel nonce checks
2015-06-03 09:12:06 -07:00
Jeffrey Wilcke
122d2db095
Merge pull request #1150 from fjl/fix-jumpdest
...
core/vm: improve JUMPDEST analysis
2015-06-03 09:11:56 -07:00
Jeffrey Wilcke
02f785af70
Merge pull request #1166 from Gustav-Simonsson/add_ec_sig_validations
...
Add EC signature validations before call to libsecp256k1
2015-06-03 08:11:24 -07:00
Felix Lange
48fb0c3213
core/vm: check for 'no code' before doing any work
2015-06-03 16:25:06 +02:00
Felix Lange
ea2718c946
core/vm: improve JUMPDEST analysis
...
* JUMPDEST analysis is faster because less type conversions are performed.
* The map of JUMPDEST locations is now created lazily at the first JUMP.
* The result of the analysis is kept around for recursive invocations
through CALL/CALLCODE.
Fixes #1147
2015-06-03 16:25:05 +02:00
Gustav Simonsson
55bf5051ad
Unsupport bruncles
2015-06-01 22:43:05 +02:00
Gustav Simonsson
147a699c65
Add missing err checks on From() (skip RPC for now)
2015-06-01 22:12:03 +02:00
Gustav Simonsson
32e1b104f8
Add EC signature validations before call to libsecp256k1
2015-06-01 21:06:52 +02:00
Felix Lange
55b60e699b
core: insert less length zero chains
...
This reduces the amount of queueEvents that are sent internally.
2015-06-01 12:48:12 +02:00
Felix Lange
e7e2cbfc01
core: re-add parallel nonce checks
...
In this incancation, the processor waits until the nonce
has been verified before handling the block.
2015-06-01 12:47:13 +02:00
Felix Lange
a906a84950
Merge pull request #1155 from karalabe/fix-chainmanager-datarace
...
core: fix #1154 , sort out data race accessing the future blocks
2015-05-30 01:21:09 +02:00
Péter Szilágyi
b7fc85d68e
core: fix #1154 , sort out data race accessing the future blocks
2015-05-29 23:46:10 +03:00
obscuren
12b90600eb
core: moved guards
2015-05-28 18:18:23 +02:00
Jeffrey Wilcke
b6e137b2b4
Merge pull request #1141 from obscuren/parallelisation-issue
...
Parallelisation issue
2015-05-28 07:37:37 -07:00
Jeffrey Wilcke
03178a77b6
Merge pull request #1132 from obscuren/log_optimisations
...
core: log optimisations
2015-05-28 07:35:07 -07:00
obscuren
16038b4e67
core: added bad block
2015-05-28 16:26:19 +02:00
obscuren
109f995684
core: log block hash during nonce error
2015-05-28 15:46:36 +02:00
obscuren
75f5ae80fd
core: partially removed nonce parallelisation and added merge error chk
...
Invalid forks are now detected
Current setup of parellelisation actually inserts bad blocks. This fix
is tmp until a better one is found
2015-05-28 15:35:50 +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
obscuren
e3253b5d5e
core: fixed an issue with storing receipts
2015-05-28 01:00:23 +02:00
obscuren
7595716816
core: adjust gas calculation
2015-05-27 17:01:28 +02:00
Jeffrey Wilcke
8951a03db3
Merge pull request #1121 from obscuren/miner_time_fix
...
Miner time fix
2015-05-27 04:51:42 -07:00
obscuren
12650e16d3
core, miner: fixed miner time issue and removed future blocks
...
* Miner should no longer generate blocks with a time stamp less or equal
than it's parent.
* Future blocks are no longer processed and queued directly.
Closes #1118
2015-05-27 13:30:52 +02:00
Gustav Simonsson
bf5f0b1d0c
Update ValidateHeader comments
2015-05-27 13:30:24 +02:00
Gustav Simonsson
14955bd454
Revert "core: block.gasLimit - parent.gasLimit <= parent.gasLimit / GasLimitBoundDivisor"
...
This reverts commit be2b0501b5
.
2015-05-27 13:01:06 +02:00
obscuren
be2b0501b5
core: block.gasLimit - parent.gasLimit <= parent.gasLimit / GasLimitBoundDivisor
2015-05-27 01:52:03 +02:00
obscuren
b2f2806055
cmd/geth, core: Updated DB version & seedhash debug method
2015-05-27 01:38:41 +02:00
obscuren
c37389f19c
core: check negative value transactions. Closes #1109
2015-05-26 20:38:26 +02:00
obscuren
eae0927597
core: prevent crash when last block fails
2015-05-26 15:35:51 +02:00
obscuren
a6b46420d0
core: ban hash 38f5bb...a714bc
...
Hash 38f5bbbffd74804820ffa4bab0cd540e9de229725afb98c1a7e57936f4a714bc
ignored.
2015-05-26 13:48:10 +02:00
obscuren
f6f81169fe
core/vm: Fork fix. Removal of appending 0 bytes in memset
2015-05-26 13:48:10 +02:00
Jeffrey Wilcke
5044eb4b26
Merge pull request #1101 from obscuren/issue-1096
...
core/vm: Cleanups & SUB output fix. Closes #1096
2015-05-26 03:50:27 -07:00
obscuren
b419e2631a
core/vm: Cleanups & SUB output fix. Closes #1096
2015-05-26 12:42:33 +02:00
obscuren
7381be8edb
core/vm, rpc: added disasm to ext_
RPC
2015-05-22 15:38:46 +02:00
Jeffrey Wilcke
90b672f1af
Merge pull request #1062 from Gustav-Simonsson/tests_updates
...
Tests updates
2015-05-21 04:49:23 -07:00
obscuren
ef8744d9fc
core: switched back to set.Set
for uncle verification
2015-05-21 11:36:39 +02:00
Jeffrey Wilcke
9bde7fd72e
Merge pull request #1043 from obscuren/test_fixes
...
core/vm: optimisation on RETURN and updated tests
2015-05-20 03:06:04 -07:00
zsfelfoldi
00ec4132f8
Storing tx receipts in extraDb
2015-05-20 06:41:50 +02:00
obscuren
f5af1fdca8
core/vm: RETURN op code returns pointer to memory rather than copy
2015-05-20 00:21:23 +02:00
obscuren
8dac28f2e3
core: block cache Has method thread safe
2015-05-19 21:50:56 +02:00
obscuren
87a05c8f38
core: skipped tests while cache disabled
2015-05-19 21:50:26 +02:00
obscuren
7d9a13e0d5
core: disable cash tmp
2015-05-19 12:59:58 +02:00
Jeffrey Wilcke
bd0c0a633b
Merge pull request #1022 from obscuren/parallel_nonce_checks
...
Parallelise nonce checks
2015-05-18 11:13:53 -07:00
obscuren
40717465bc
core: fixed tests
2015-05-18 18:16:53 +02:00
obscuren
59c0d01418
core: chain manager no longer exports genesis block
2015-05-18 18:16:53 +02:00
Gustav Simonsson
1d51cada3c
Handle call depth exception for CREATE
2015-05-18 16:23:20 +02: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
67d44519ce
core: bugfix test 2. set => hash map
2015-05-18 10:49:09 +02:00
obscuren
54f0f82dd1
ret
2015-05-18 10:14:48 +02:00
obscuren
e323f0e831
core: tmp diagnostic logs
2015-05-18 10:13:50 +02:00
obscuren
27782bbade
core: global chain insert lock
2015-05-17 00:55:02 +02:00
obscuren
d98a6f85fc
core: further improved uncle error messages
2015-05-16 13:02:30 +02:00
obscuren
7ea76fcf99
core, cmd/geth, cmd/mist: cleanup. bump version 0.9.21
2015-05-16 00:26:36 +02:00
obscuren
5cec1aad15
core, miner: fork resolving and restart miner after sync op
...
Fork resolving fixes #940
2015-05-15 20:26:15 +02:00
Gustav Simonsson
32276e8b01
Update StateTests and nil create return on failed code deposit
2015-05-15 18:49:31 +02:00
obscuren
cfb2b51b74
eth/downloader: fixed test
2015-05-15 12:47:32 +02:00
obscuren
f6669db001
core: fixed mining strategy
2015-05-15 12:24:29 +02:00
obscuren
b71091e337
eth, eth/downloader, miner: use download events to check miner start
2015-05-15 00:43:10 +02:00
obscuren
0f76a1c6df
core: changed how head events are checked
2015-05-15 00:42:06 +02:00
obscuren
580bae0a86
core: improved uncle messages
2015-05-15 00:40:07 +02:00
obscuren
b19bf3ec78
core: changed log message for forks. closes #952
2015-05-14 17:16:46 +02:00
Vitalik Buterin
bc83761996
Fixed max uncle count error message
2015-05-13 20:29:57 -04:00
Bas van Kervel
95773b9673
removed redundant newlines in import block
2015-05-12 15:20:53 +02:00
Bas van Kervel
b79dd188d9
replaced several path.* with filepath.* which is platform independent
2015-05-12 14:24:11 +02:00
obscuren
3c6c891680
core: optimise pending transaction processing
2015-05-11 11:39:33 +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
Jeffrey Wilcke
45c070fc8b
Merge pull request #833 from ethersphere/frontier/solidity
...
solidity compiler and contract metadocs integration
2015-05-08 03:43:31 -07:00
obscuren
dcfecebe1f
core: get transaction by hash from transaction pool
2015-05-07 18:22:57 +02:00
obscuren
7e160a677d
xeth, core, event/filter, rpc: new block and transaction filters
2015-05-07 14:44:32 +02:00
zelig
009b221692
solidity compiler and contract metadocs integration
...
* common/compiler: solidity compiler + tests
* rpc: eth_compilers, eth_compileSolidity + tests
* fix natspec test using keystore API, notice exp dynamically changes addr, cleanup
* resolver implements registrars and needs to create reg contract (temp)
* xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath)
* ethereumApi: implement compiler related RPC calls using XEth - json struct tests
* admin: make use of XEth.SetSolc to allow runtime setting of compiler paths
* cli: command line flags solc to set custom solc bin path
* js admin api with new features debug and contractInfo modules
* wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
2015-05-07 12:58:21 +02:00
Gustav Simonsson
2808409fbd
Add genesis block total difficulty in tests
2015-05-06 23:22:49 +02:00
Jeffrey Wilcke
323216ed85
Merge pull request #861 from obscuren/transaction_pool_fixes
...
core: transaction pool fixes & resending transactions
2015-05-06 11:23:58 -07:00
obscuren
92f998c7ef
core: use removeTx instead of delete
2015-05-06 18:30:55 +02:00
Gustav Simonsson
b1cc9cdc74
Integrate new ethash API and change geth makedag cmd
2015-05-05 08:24:15 +02:00
obscuren
37770ed0d3
core: added unix timestamp to debug output for block proc
2015-05-03 21:49:19 +02:00
obscuren
c5b8acbaf0
core: print ignored blocks
2015-05-03 14:09:50 +02:00
obscuren
c6ad3aec05
eth,core: changed NewTicker to Tick
2015-05-03 13:27:37 +02:00
obscuren
b298928c49
core: added 'ignored' status
2015-05-01 16:00:30 +02:00
obscuren
15873fafc0
core: added a wait group to chain manager for graceful shutdown
2015-04-30 17:50:47 +02:00
obscuren
e4dba36892
core: check for parent in calc TD. TD = (N != 0 == parent.TD) || (== D)
2015-04-30 14:55:21 +02:00
obscuren
28b39267d9
core, eth: verify td of received blocks
2015-04-30 13:50:59 +02:00
obscuren
88292f35db
core: remove txs from queue in addition to removal of pending
2015-04-30 00:20:59 +02:00
obscuren
2590a7dabb
core: added some additional chain tests for shortest chain
2015-04-30 00:14:41 +02:00
obscuren
9e63798d03
core/types, eth: meassure and display propagation times
2015-04-29 19:55:30 +02:00
obscuren
c930045834
core: fixed tetst to reflect (int, error) return by insertChain
2015-04-29 15:27:04 +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
4e07967711
core: fixed chain reorg during splits
...
Chain reorgs weren't properly handled when a chain was further ahead.
Previously we'd end up with mixed chains in our canonical numbering
sequence. Added test for this type of forking.
```
/-o-o-o A
o-C-+
\-o-o-o-o B
```
Ends up with with C A1, A2, A3, B4
2015-04-29 12:51:05 +02:00
obscuren
af73d1d682
core/types: added fake parent hash / hash to String() output
2015-04-29 12:51:05 +02:00
obscuren
7ac24d551b
core: seperated proccing mutex and getting mutex
2015-04-29 12:51:04 +02:00
obscuren
9f32117457
core: bump database version
2015-04-29 12:51:04 +02:00
obscuren
a4b79f1dac
core: moved mutex locks in insert blocks to start of function
...
Insert blocks will no longer allow processing of multiple chains at the
same time. The block lock has been moved to start of the function.
2015-04-29 12:51:04 +02:00
obscuren
04a09b7e2d
core: set min gas price at startup
2015-04-29 12:51:04 +02:00
obscuren
145e02fc54
core, miner: added value check on tx validation
...
* Changed CalcGasLimit to no longer need current block
* Added a gas * price + value on tx validation
* Transactions in the pool are now re-validated once every X
2015-04-26 11:19:40 +02: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
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
obscuren
cd2782f59c
core: fixed wildcard topic filters. Closes #725
2015-04-24 13:45:21 +02: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
7f14fbd579
core: pending txs now re-validated once every second
2015-04-23 11:50:12 +02:00
obscuren
fba40e18d9
core: added accessor for queued transactions
2015-04-23 11:50:12 +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
888ece0cb2
core: fixed test
2015-04-23 11:50:12 +02:00
obscuren
7edbb0110f
core: set the state for the managed tx state
...
Set the state for the managed tx state instead of creating a new
managed state.
2015-04-23 11:50:12 +02:00
obscuren
1506e00a23
core: improved error message for invalid nonce txs
2015-04-23 11:50:11 +02:00
obscuren
7138404cb0
core: only post event once per tx & fixed test
2015-04-23 11:50:11 +02:00
obscuren
498b24270a
core: implemented a queued approach processing transactions
...
Implemented a new transaction queue. Transactions with a holes in their
nonce sequence are also not propagated over the network.
N: 0,1,2,5,6,7 = propagate 0..2 -- 5..N is kept in the tx pool
2015-04-23 11:50:11 +02:00
Gustav Simonsson
4e0a2c8e8c
Validate block header UncleHash against calculated hash
2015-04-22 23:16:19 +02:00
obscuren
ed0817c55d
core/rpc: fix for null entries in log filters. Closes #725
...
You can now specify `null` as a way of saying "not interested in this
topic, match all". core.Filter assumes the zero'd address to be the
wildcard. JSON rpc assumes empty strings to be wildcards.
2015-04-21 12:00:57 +02:00
obscuren
093d6d5074
core: removed nonce resetting from the block processor.
...
All nonce error handling has been moved to the worker
2015-04-21 11:27:12 +02:00
obscuren
b8160cc6d4
core: shuffled some code
2015-04-20 20:37:40 +02:00