Jeffrey Wilcke
32395ddb89
core/vm: fixed jit error & added inline docs
...
opNumber did not create a new big int which could lead to the block's
number being modified.
2015-08-11 00:16:38 +02:00
Jeffrey Wilcke
2fcf7f1241
Merge pull request #1604 from obscuren/db-merge
...
core, eth, trie, xeth: merged state, chain, extra databases in one
2015-08-09 05:16:37 -07:00
Jeffrey Wilcke
07cb8092e7
Merge pull request #1611 from obscuren/expdiff-olympic-fix
...
cmd/utils, core: disable exp diff for olympic net
2015-08-09 05:15:13 -07:00
Jeffrey Wilcke
eec38c5853
cmd/geth, core/vm: setup vm settings and defaulted JIT disabled
2015-08-09 02:06:16 +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
ac697326a6
core/vm: reduced big int allocations
...
Reduced big int allocation by making stack items modifiable. Instead of
adding items such as `common.Big0` to the stack, `new(big.Int)` is
added instead. One must expect that any item that is added to the stack
might change.
2015-08-07 12:52:23 +02:00
Jeffrey Wilcke
184e9ae9a8
core, tests: reduced state copy by N calls
...
Reduced the amount of state copied that are required by N calls by doing
a balance check prior to any state modifications.
2015-08-07 12:52:23 +02:00
Jeffrey Wilcke
846f34f78b
core/vm, tests: implemented semi-jit vm
...
* changed stack and removed stack ptr. Let go decide on slice reuse.
2015-08-07 12:52:17 +02:00
Jeffrey Wilcke
74f6d90153
cmd/utils, core: disable exp diff for olympic net
2015-08-06 13:29:06 +02:00
Jeffrey Wilcke
35f271b264
miner, core: sort txs by price, nonce
2015-08-05 17:44:19 +02:00
Jeffrey Wilcke
71d32f54f7
core, miner: added difficulty bomb
2015-08-05 13:09:09 +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
cc6c5846e5
Merge pull request #1568 from obscuren/issue-1559
...
core: added a running flag to prevent panics in the chainmanager
2015-08-03 07:15:19 -07:00
Jeffrey Wilcke
db988a46dd
Merge pull request #1569 from obscuren/default-genesis
...
core: added default genesis block
2015-08-03 04:49:30 -07:00
Jeffrey Wilcke
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
Jeffrey Wilcke
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
Jeffrey Wilcke
a8b39b5cc0
Merge pull request #1541 from bas-vk/issue1518
...
Improved error handling for NewTransactionFromBytes
2015-08-01 08:47:32 -07:00
Jeffrey Wilcke
acd2c4e520
core: added a running flag to prevent panics in the chainmanager
...
The running flag will determine whether the chain manager is still
running or not. This will prevent the quit channel from being closed
twice resulting in a panic. This PR should fix this issue.
Closes #1559
2015-08-01 12:32:28 +02:00
Jeffrey Wilcke
f715547fc7
core/state: Set log index. Closes #1226
2015-07-29 15:08:59 +02:00
Bas van Kervel
81e2124ea2
improved error detection and handling for NewTransactionFromBytes
...
integrated review comments
2015-07-29 10:30:00 +02: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
Bas van Kervel
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
Jeffrey Wilcke
3530acb9e2
core: genesis extra data field fix
2015-07-26 14:44:54 +02:00
Jeffrey Wilcke
c1c895a36b
core: fixed genesis write out to write only canon number
2015-07-25 21:48:53 +02:00
Jeffrey Wilcke
665eaff9b9
Merge pull request #1520 from obscuren/reward-5eth
...
core: 5 ether block reward
2015-07-25 08:57:33 -07:00
Jeffrey Wilcke
9afda6ab8c
core: 5 ether block reward
2015-07-25 17:47:20 +02:00
Jeffrey Wilcke
0efcd7ed05
Merge pull request #1521 from obscuren/client-update
...
cmd/geth, core, eth: Version 1.0.0
2015-07-25 08:36:04 -07:00
Jeffrey Wilcke
0c718afe90
core: check genesis block before writeout
2015-07-25 16:53:35 +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
8fc9830971
cmd/core,xeth: removed unneeded states & added batch writes
2015-07-23 10:45:31 +02:00
Jeffrey Wilcke
0cff61beda
Merge pull request #1510 from fjl/license-fixes
...
all: license fixes
2015-07-23 01:43:11 -07:00
Jeffrey Wilcke
b403b9e4c3
Merge pull request #1508 from karalabe/database-caching
...
cmd, core, eth, ethdb: cache flag to allocate memory for db internal use
2015-07-23 01:17:18 -07:00
Péter Szilágyi
04bb89604e
core: fix an RLP encoding data race due to deep struct copy
2015-07-22 20:54:53 +03: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
Vitalik Buterin
8160b8618d
Fixed canary to require 2+ nonzero, not sum 2+
2015-07-20 16:28:28 +02:00
Jeffrey Wilcke
e17d8ddbeb
core: during chain reorg rewrite receipts and transactions
...
Added PutBlockReceipts; storing receipts by blocks. Eventually this will
require pruning during some cleanup cycle. During forks the receipts by
block are used to get the new canonical receipts and transactions.
This PR fixes #1473 by rewriting transactions and receipts from the point
of where the fork occured.
2015-07-14 18:40:03 +02: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
8b5a65c14a
core/vm: added str to op
2015-07-09 17:08:33 +02:00
Jeffrey Wilcke
97d22be318
Merge pull request #1441 from obscuren/logs-return-fix
...
miner, xeth: fire log event during mining. Fix return raw tx
2015-07-09 07:24:35 -07:00
Jeffrey Wilcke
819ecd4508
miner, xeth: fire log event during mining. Fix return raw tx
2015-07-08 15:34:11 +02:00
Gustav Simonsson
5d6d40f329
Use uint64 on ts in chain_manager, block_processor
2015-07-08 13:21:06 +02:00
Felix Lange
4fb28e0dab
all: goimports -w
2015-07-07 14:12:45 +02: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
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
e6bb9c1cad
core, miner: removed vm errors from consensus err checking
...
Removed VM errors from the consensus errors. They now used for output
only.
2015-07-06 12:43:05 +02:00
Jeffrey Wilcke
aa4502060b
Merge pull request #1400 from obscuren/badblock-reporting
...
core, miner, tests: added test, implemented bad block reporting
2015-07-06 02:03:50 -07:00
Jeffrey Wilcke
b533aaa765
Merge pull request #1409 from fjl/fix-tx-hash
...
core/types, xeth: separate tx hash and tx signature hash
2015-07-06 01:59:41 -07:00
Felix Lange
ec9620fb2f
core/types, xeth: separate tx hash and tx signature hash
2015-07-06 10:45:45 +02:00
Jeffrey Wilcke
bcc1660abc
core, miner, tests: added test, implemented bad block reporting
2015-07-05 15:14:31 +02:00
Gustav Simonsson
0f04af5916
Fix core error forwarding, unify OOG VM err
2015-07-04 09:27:42 +02:00
Jeffrey Wilcke
ab16ce70fc
core, miner, tests: renamed state methods
...
* Update => SyncIntermediate
* Added SyncObjects
SyncIntermediate only updates whatever has changed, but, as a side
effect, requires much more disk space.
SyncObjects will only sync whatever is required for a block and will not
save intermediate state to disk. As drawback this requires more time
when more txs come in.
2015-07-04 02:51:36 +02:00
Jeffrey Wilcke
08caeedd84
core, core/state: only write necessary state. Skip intermediate
2015-07-04 02:51:36 +02: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
1cbab291a9
Merge pull request #1389 from obscuren/txpool-issues
...
core, miner: miner header validation, transaction & receipt writing
2015-07-03 07:50:30 -07:00
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