1b1f293082
core/state, core, miner: handle missing root error from state.New
2015-10-16 02:22:06 +02:00
402fd6e8c6
core, eth, event, miner, xeth: fix event post / subscription race
2015-10-12 16:22:03 +03:00
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
b60a27627b
core: transaction nonce recovery fix
...
When the transaction state recovery kicked in it assigned the last
(incorrect) nonce to the pending state which caused transactions with
the same nonce to occur.
Added test for nonce recovery
2015-09-18 11:59:21 +02:00
db988a46dd
Merge pull request #1569 from obscuren/default-genesis
...
core: added default genesis block
2015-08-03 04:49:30 -07:00
7a75da63c6
core: added default genesis block
...
When a user runs a freshly setup geth w/o a database initialised the
default genesis block is decoded and inserted in to the database.
2015-08-02 01:23:02 +02:00
33efb3381c
Merge pull request #1461 from bas-vk/eth_resend
...
Old transaction after resend was not removed from pool
2015-08-01 16:18:54 -07:00
7e31df3987
bugfix, pending transaction was resend with new gas price/limit but not removed from transaction pool
2015-07-28 10:42:31 +02:00
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
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
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
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
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
1d42888d30
core/types: make blocks immutable
2015-06-29 18:51:47 +02:00
654564e164
core/types: make transactions immutable
2015-06-29 18:51:47 +02:00
a4a4e9fcf8
removed old rpc structure and added new inproc api client
2015-06-22 09:17:09 +02:00
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
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
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
6d817e16c1
core, miner: tx pool drops txs below ask price
2015-06-15 11:33:08 +02:00
4407524d13
core: fixed race condition for subscriptions
2015-06-10 17:13:32 +02:00
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
bc6031e7bb
core, xeth: moved nonce management burden from xeth to txpool
2015-06-09 21:01:02 +02:00
73c355591f
core, eth: document that result of GetTransactions is modifiable
2015-06-09 17:07:10 +02:00
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
912cf7ba04
core: added fork test & double nonce test
2015-06-04 19:28:39 +02:00
dcdb4554d7
core: documented changes in tx pool
2015-06-04 16:19:22 +02:00
cf5ad266f6
core: only change the nonce if the account nonce is lower
2015-06-04 15:44:42 +02:00
9dd12a64a7
core: renamed txs to pending
2015-06-04 13:16:31 +02:00
140d883901
core: test updates
2015-06-03 22:53:33 +02:00
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
5721c43585
core: update documentation comments for TxPool
2015-06-03 22:43:23 +02:00
ca31d71107
core: remove unused code from TxPool
2015-06-03 22:43:23 +02:00
08befff8f1
core: compute less transaction hashes in TxPool
2015-06-03 22:43:23 +02:00
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
147a699c65
Add missing err checks on From() (skip RPC for now)
2015-06-01 22:12:03 +02:00
32e1b104f8
Add EC signature validations before call to libsecp256k1
2015-06-01 21:06:52 +02:00
c37389f19c
core: check negative value transactions. Closes #1109
2015-05-26 20:38:26 +02:00
3c6c891680
core: optimise pending transaction processing
2015-05-11 11:39:33 +02:00
dcfecebe1f
core: get transaction by hash from transaction pool
2015-05-07 18:22:57 +02:00
92f998c7ef
core: use removeTx instead of delete
2015-05-06 18:30:55 +02:00
88292f35db
core: remove txs from queue in addition to removal of pending
2015-04-30 00:20:59 +02:00
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
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
7f14fbd579
core: pending txs now re-validated once every second
2015-04-23 11:50:12 +02:00
fba40e18d9
core: added accessor for queued transactions
2015-04-23 11:50:12 +02:00
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
7138404cb0
core: only post event once per tx & fixed test
2015-04-23 11:50:11 +02:00
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
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