Ricardo Catalinas Jiménez
436fc8d76a
all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
...
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00
Jeffrey Wilcke
b6d88a0e9f
core, core/vm, crypto: fixes for homestead
...
* Removed some strange code that didn't apply state reverting properly
* Refactored code setting from vm & state transition to the executioner
* Updated tests
2016-02-18 10:11:48 +01:00
Gustav Simonsson
371871d685
parmas, crypto, core, core/vm: homestead consensus protocol changes
...
* change gas cost for contract creating txs
* invalidate signature with s value greater than secp256k1 N / 2
* OOG contract creation if not enough gas to store code
* new difficulty adjustment algorithm
* new DELEGATECALL op code
2016-02-18 10:08:11 +01:00
Péter Szilágyi
a2dc074b1d
core, core/types, miner: fix transaction nonce-price combo sort
2016-01-22 12:33:34 +02:00
Felix Lange
1b89bd5d26
core/state, core/types use package rlp for state, receipt serialisation
2015-12-18 12:09:10 +01:00
Bas van Kervel
eae81465c1
rpc: new RPC implementation with pub/sub support
2015-12-14 16:34:05 +01:00
Jeffrey Wilcke
a1d9ef48c5
core, eth, rpc: split out block validator and state processor
...
This removes the burden on a single object to take care of all
validation and state processing. Now instead the validation is done by
the `core.BlockValidator` (`types.Validator`) that takes care of both
header and uncle validation through the `ValidateBlock` method and state
validation through the `ValidateState` method. The state processing is
done by a new object `core.StateProcessor` (`types.Processor`) and
accepts a new state as input and uses that to process the given block's
transactions (and uncles for rewords) to calculate the state root for
the next block (P_n + 1).
2015-11-18 14:24:42 +01:00
Péter Szilágyi
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
2015-10-21 16:49:55 +03:00
Péter Szilágyi
b97e34a8e4
eth/downloader: concurrent receipt and state processing
2015-10-19 10:03:10 +03:00
Péter Szilágyi
832b37c822
core, eth: receipt chain reconstruction
2015-10-19 10:03:09 +03:00
Péter Szilágyi
42c8afd440
core: differentiate receipt concensus and storage decoding
2015-10-19 10:03:09 +03:00
Péter Szilágyi
f186b39018
eth/downloader: add fast and light sync strategies
2015-10-19 10:03:09 +03:00
Péter Szilágyi
c33cc382b3
core: support inserting pure header chains
2015-10-19 10:03:09 +03:00
Jeffrey Wilcke
6dc14788a2
core, eth/filters, miner, xeth: Optimised log filtering
...
Log filtering is now using a MIPmap like approach where addresses of
logs are added to a mapped bloom bin. The current levels for the MIP are
in ranges of 1.000.000, 500.000, 100.000, 50.000, 1.000. Logs are
therefor filtered in batches of 1.000.
2015-10-16 21:28:59 +02:00
Jeffrey Wilcke
361082ec4b
cmd/evm, core/vm, test: refactored VM and core
...
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* core/vm: byte code VM moved to jump table instead of switch
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* Byte code VM now shares the same code as the JITVM
* Renamed Context to Contract
* Changed initialiser of state transition & unexported methods
* Removed the Execution object and refactor `Call`, `CallCode` &
`Create` in to their own functions instead of being methods.
* Removed the hard dep on the state for the VM. The VM now
depends on a Database interface returned by the environment. In the
process the core now depends less on the statedb by usage of the env
* Moved `Log` from package `core/state` to package `core/vm`.
2015-10-04 01:13:54 +02:00
Felix Lange
565d9f2306
core, trie: new trie
2015-09-22 22:53:49 +02:00
Jeffrey Wilcke
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
Jeffrey Wilcke
55ed8d108d
Merge pull request #1789 from Gustav-Simonsson/core_remove_unused_functions
...
core, core/vm, core/state: remove unused functions
2015-09-11 15:29:27 -07:00
Péter Szilágyi
cdc2662c40
core: split out TD from database and all internals
2015-09-11 17:42:25 +03:00
Péter Szilágyi
2b339cbbd8
core, eth: split the db blocks into headers and bodies
2015-09-11 17:42:25 +03:00
Gustav Simonsson
b81a6e6ab8
core, core/vm, core/state: remove unused functions
2015-09-10 21:10:58 +02:00
Felix Lange
6ec13e7e2b
Merge pull request #1701 from karalabe/eth62-sync-rebase
...
eth: implement eth/62 synchronization logic
2015-08-27 00:03:59 +02:00
Péter Szilágyi
47a7fe5d22
eth: port the synchronisation algo to eth/62
2015-08-25 17:48:47 +03:00
Gustav Simonsson
7324176f70
Add tests for uncle timestamps and refactor timestamp type
2015-08-25 04:46:11 +02:00
Jeffrey Wilcke
35f271b264
miner, core: sort txs by price, nonce
2015-08-05 17:44:19 +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
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
0cff61beda
Merge pull request #1510 from fjl/license-fixes
...
all: license fixes
2015-07-23 01:43:11 -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
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
Felix Lange
ec9620fb2f
core/types, xeth: separate tx hash and tx signature hash
2015-07-06 10:45:45 +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
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
Gustav Simonsson
4c490db6af
Use uint64 for block header timestamp
2015-06-30 10:52:11 +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
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
Felix Lange
7aefe123e9
core/types: add Transaction.Size
2015-06-09 17:06:31 +02:00
obscuren
0f51ee6c88
crypto: return common.Address rather than raw bytes
2015-06-04 19:28:39 +02:00
obscuren
b26f5e0bb7
types: block json unmarshal method added
2015-06-03 22:39:17 +02:00
Gustav Simonsson
32e1b104f8
Add EC signature validations before call to libsecp256k1
2015-06-01 21:06:52 +02:00
obscuren
e3253b5d5e
core: fixed an issue with storing receipts
2015-05-28 01:00:23 +02:00
obscuren
9e63798d03
core/types, eth: meassure and display propagation times
2015-04-29 19:55:30 +02:00
obscuren
af73d1d682
core/types: added fake parent hash / hash to String() output
2015-04-29 12:51:05 +02:00
Gustav Simonsson
4e0a2c8e8c
Validate block header UncleHash against calculated hash
2015-04-22 23:16:19 +02:00
obscuren
97b0c4b697
core: moved TD calculation from proc to chain
2015-04-20 12:01:20 +02:00
Felix Lange
574d5d6ae6
core/types: add rlp tag "nil" for Transaction.Recipient
2015-04-17 14:45:10 +02:00
obscuren
ccb4722a59
core/types: Changed bloom lookup to take anything bytes backed
2015-04-15 11:58:45 +02:00
zelig
262714fc6c
future queued block support
...
- queued bool // flag for blockpool to skip TD check
- set to true when future block queued
- in checkTD: skip check if queued
- TODO: add test (insertchain sets future block)
2015-04-09 13:58:35 +01:00
obscuren
1c872ddf4b
Changed how logs are being recorded
...
Logs are now recorded per transactions instead of tossing them out after
each transaction. This should also fix an issue with
`eth_getFilterLogs` (#629 ) Also now implemented are the `transactionHash,
blockHash, transactionIndex, logIndex` on logs. Closes #654 .
2015-04-08 17:15:45 +02:00
Gustav Simonsson
2591883a18
Use logger.Error instead of 0 with glog
2015-04-07 12:48:19 +02:00
Gustav Simonsson
3f306f63d4
Forward and log EC recover err and remove dup pubkey len check
2015-04-07 12:48:19 +02:00
obscuren
9c55576c7b
Block header changed & console miner control
...
* miner control moved to `admin.miner`
* miner option to set extra data
* block extra now bytes
2015-04-05 18:59:18 +02:00
obscuren
eb1c26746d
Changed R S to big int and fixed tests
2015-04-04 21:41:24 +02:00
obscuren
eb8f0b85f7
Changed R & S to *big.Int
2015-04-04 21:32:24 +02: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
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
505f1fbcbb
added tx tests and fixed block tests
2015-03-25 17:05:29 +01:00
obscuren
0ec171ccdf
Copy fix
2015-03-24 13:38:16 +01:00
obscuren
d8e21b39b3
Added copy function
2015-03-24 10:33:00 +01:00
obscuren
7b8a47f484
removed legacy code
2015-03-23 22:05:12 +01:00
obscuren
0330077d76
moved state and vm to core
2015-03-23 16:59:09 +01:00
obscuren
c28116cb3b
Fixed incorrect recipient derived
2015-03-21 14:46:50 +01:00
obscuren
62236dd95e
copy over loop
2015-03-19 23:20:41 +01:00
obscuren
b5a71d955c
merge
2015-03-19 16:59:13 +01:00
obscuren
14a2f42f37
fixed chain event. Closes #529
2015-03-19 16:19:54 +01:00
Felix Lange
d15f90645d
Merge remote-tracking branch 'ethereum/conversion' into conversion
2015-03-18 13:39:01 +01:00
Felix Lange
c298148a7f
core/types: use package rlp instead of common.Decode
2015-03-18 13:24:34 +01:00
obscuren
942980609f
conversions
2015-03-18 11:44:25 +01:00
obscuren
86661de077
Fixed tests and bloom
2015-03-17 18:00:03 +01:00
obscuren
c21293cd91
bloom
2015-03-17 16:05:17 +01:00
Felix Lange
ee7202fa00
Merge remote-tracking branch 'ethereum/conversion' into conversion
2015-03-17 12:01:40 +01:00
Felix Lange
e91ab84dbe
core/types: don't use Address zero value for invalid addresses
2015-03-17 11:58:31 +01:00
obscuren
515d9432fc
converted vm
2015-03-17 11:19:23 +01:00
Felix Lange
d5de6489d7
core/types: fix Transaction.Hash and add support for encoding with package rlp
2015-03-17 01:34:18 +01:00
obscuren
8ce6a36478
converted chain manager
2015-03-16 23:48:18 +01:00
obscuren
843db4978e
updated blockpool
2015-03-16 23:10:26 +01:00
obscuren
6aa390abfb
Merge branch 'conversion' of github.com-obscure:ethereum/go-ethereum into conversion
2015-03-16 18:43:09 +01:00
obscuren
91b0b14845
converted vm
2015-03-16 18:42:18 +01:00
Felix Lange
16df850af2
core/types: use common.{Hash,Address} in for transactions
2015-03-16 17:43:42 +01:00
obscuren
bfcd2cf132
block conversion
2015-03-16 17:27:23 +01:00
obscuren
f486c0ae56
new type + additional methods
2015-03-16 11:59:52 +01:00
obscuren
b523441361
Moved ethutil => common
2015-03-16 11:27:38 +01:00
obscuren
d9966d6158
merge
2015-03-14 23:37:21 +01:00
obscuren
387f6bba3e
POW fixes
2015-03-14 16:37:57 +01:00
Felix Lange
9326541820
core/types: make Block.{ParentHash,SeedHash,MixDigest} []byte
...
There is no reason to keep them as ethutil.Bytes.
2015-03-13 18:41:09 +01:00
obscuren
9fb52c517b
Changed V to byte. Closes #456
2015-03-12 00:18:03 +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
obscuren
c47866d251
Miner fixes and updates (including miner)
2015-03-05 09:14:58 +01:00
obscuren
d4d505c868
Fixed genesis
2015-03-03 21:48:05 +01:00
obscuren
26de12d9bf
Changed nonce to a uint64
2015-03-03 21:04:31 +01:00
obscuren
313fe3861b
fixed pow stuff
2015-03-03 17:55:23 +01:00
obscuren
22b132e28f
Merge branch 'publictests' of https://github.com/xcthulhu/go-ethereum into xcthulhu-publictests
2015-03-03 17:20:34 +01:00