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
d5327ddc5f
Merge pull request #1869 from Gustav-Simonsson/gpu_miner
...
all: Add GPU mining, disabled by default
2015-10-16 06:25:33 -07:00
Gustav Simonsson
1b1f293082
core/state, core, miner: handle missing root error from state.New
2015-10-16 02:22:06 +02:00
Jeffrey Wilcke
30f057aaf9
eth/filters: added benchmark
2015-10-15 19:45:44 +02:00
Péter Szilágyi
402fd6e8c6
core, eth, event, miner, xeth: fix event post / subscription race
2015-10-12 16:22:03 +03:00
Jeffrey Wilcke
1de796f101
cmd, core, eth: added official testnet
2015-10-08 22:01:39 +02:00
Gustav Simonsson
ec6a548ee3
all: Add GPU mining, disabled by default
2015-10-07 13:19:30 +02:00
Jeffrey Wilcke
5b34fa538e
Merge pull request #1756 from obscuren/core-refactor
...
core, core/vm: refactor
2015-10-05 07:14:01 -07:00
Jeffrey Wilcke
7c7692933c
cmd/geth, cmd/utils, core, rpc: renamed to blockchain
...
* Renamed ChainManager to BlockChain
* Checkpointing is no longer required and never really properly worked
when the state was corrupted.
2015-10-04 01:13:56 +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
Jeffrey Wilcke
f7a71996fb
core, event/filter, xeth: refactored filter system
...
Moved the filtering system from `event` to `eth/filters` package and
removed the `core.Filter` object. The `filters.Filter` object now
requires a `common.Database` rather than a `eth.Backend` and invokes the
`core.GetBlockByX` directly rather than thru a "manager".
2015-10-02 22:47:43 +02:00
Péter Szilágyi
47f62a67aa
eth/downloader: match capabilities when querying idle peers
2015-10-02 13:20:41 +03:00
Péter Szilágyi
f459a3f0ae
eth/downloader: always send termination wakes, clean leftover
2015-09-23 12:39:17 +03: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
58fbcaa750
Merge pull request #1810 from karalabe/pure-header-verifications-2
...
core, eth, miner: use pure header validation
2015-09-16 14:21:12 -07:00
Jeffrey Wilcke
985b5f29ed
Merge pull request #1801 from fjl/ethdb
...
all: move common.Database to ethdb and add NewBatch
2015-09-16 07:50:14 -07:00
Péter Szilágyi
821619e1c3
core, eth, miner: use pure header validation
2015-09-16 10:46:28 +03:00
Péter Szilágyi
99b62f36b6
eth/downloader: header-chain order and ancestry check
2015-09-15 14:45:53 +03:00
Péter Szilágyi
0a7d059b6a
eth, rpc: standardize the chain sync progress counters
2015-09-15 14:45:53 +03:00
Felix Lange
b252589960
ethdb: remove Flush
2015-09-14 23:36:30 +02:00
Felix Lange
8c4dab77ba
all: move common.Database to package ethdb
2015-09-14 23:36:30 +02: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
Jeffrey Wilcke
f04b3a6f29
cmd/geth, cmd/utils, eth: added dev mode flag
...
Dev mode enabled some debugging flags such as:
* VM debugging mode
* Simpler proof of work
* Whisper enabled by default
* Datadir to a tmp datadir
* Maxpeers set to 0
* Gas price of 0
* Random listen port
2015-09-09 08:53:05 +02:00
Péter Szilágyi
1f1d73ab74
eth/downloader: fix race causing occasional test failure
2015-09-01 16:11:14 +03: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
17f65cd1e5
eth: update metrics collection to handle eth/62 algos
2015-08-25 17:48:47 +03: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
Péter Szilágyi
ca88e18f59
eth: kill off protocol eth/60 in preparation for eth/62
2015-08-24 17:57:28 +03:00
Péter Szilágyi
42f44dda54
eth, eth/downloader: handle header requests, table driven proto tests
2015-08-24 17:57:28 +03:00
Péter Szilágyi
c51e153b5c
eth, metrics, p2p: prepare metrics and net packets to eth/62
2015-08-21 10:30:57 +03:00
Péter Szilágyi
941920f2aa
eth: fix an issue with pulling and inserting blocks twice
2015-08-19 15:14:26 +03:00
Jeffrey Wilcke
2497f28aa9
Merge pull request #1627 from zsfelfoldi/gpo
...
GPO update
2015-08-17 06:37:58 -07:00
zsfelfoldi
49ece3155c
GPO update
2015-08-17 15:20:33 +02:00
Taylor Gerring
80b294c3c7
Update CPP pubkey
2015-08-17 14:51:27 +02:00
Taylor Gerring
8884f856ef
Added SG bootnode
2015-08-17 14:36:57 +02:00
Jeffrey Wilcke
b8ca0a830e
eth, trie: removed key prefixing from state entries & merge db fix
...
Fixed database merge strategy to use the correct database. Due to a copy
paste fail when doing type evaluation the same database was being
iterated (chain), all others were ignored.
Removed state prefixing because {H(code): code} is stored in the same
database as the rest of the state.
2015-08-13 20:44:03 +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
785b3e7a57
cmd/geth, eth: added canonical extra data
...
Implemented canonical extra data according to
https://github.com/ethereum/wiki/wiki/Extra-Data
2015-08-07 12:24:32 +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
dcdb7059cc
cmd, core, eth: support for the olympic network
...
Added a --olympic flag which initialiser the olympic protocol settings
2015-08-03 18:15:48 +02:00
Péter Szilágyi
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
2015-07-29 15:39:08 +03:00
Jeffrey Wilcke
a281df783d
Merge pull request #1533 from ethersphere/frontier/etherbase
...
Etherbase defaults to first account even if it is created during the session
2015-07-28 05:11:43 -07: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
zelig
1356daad27
etherbase defaults to first account even if created during the session
2015-07-27 10:50:29 +02:00
Jeffrey Wilcke
1e241e84f7
params: reduce extra data to 32 bytes
2015-07-26 12:47:57 +02:00
Jeffrey Wilcke
73a576c9af
Merge pull request #1524 from obscuren/default-extra
...
eth: set default miner extra to client name
2015-07-25 08:58:08 -07:00
Jeffrey Wilcke
3adaeb1dbc
eth: set default miner extra to client name
2015-07-25 17:36:56 +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
0cff61beda
Merge pull request #1510 from fjl/license-fixes
...
all: license fixes
2015-07-23 01:43:11 -07: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
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
4c62ce831b
Merge pull request #1451 from karalabe/handle-potential-TD-forge-attack
...
eth/downloader: drop peer if advertised TD but won't delvier
2015-07-09 07:23:50 -07:00
Jeffrey Wilcke
b041aed660
Merge pull request #1450 from karalabe/fix-propagation-td
...
eth: calculate the correct TD, only update if better
2015-07-09 07:23:16 -07:00
Péter Szilágyi
492d5454b1
eth/downloader: drop peer if advertised TD but won't delvier
2015-07-09 14:40:18 +03:00
Péter Szilágyi
4f95e2f9ec
eth: calculate the correct TD, only update if better
2015-07-09 13:55:06 +03:00
Péter Szilágyi
eb2d168710
eth, ethdb: fix a data race during startup/shutdown
2015-07-09 12:44:07 +03: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
e5fba8fd70
Merge pull request #1428 from obscuren/coinbase-fixes
...
cmd,eth,rpc,tests: default coinbase
2015-07-07 02:55:33 -07:00
Jeffrey Wilcke
37c1a8f69d
eth,miner,rpc: set coinbase
2015-07-07 10:58:47 +02:00
zelig
83ee39448e
Registrar and contractInfo handling
...
* resolver -> common/registrar
* global registrar name registry interface
* add Call to resolver backend interface
* the hashReg and UrlHing contracts now initialised from global registry
* initialization of contracts uniform
* improve errors and more econsistent method names
* common/registrar/ethreg: versioned registrar
* integrate new naming and registrar in natspec
* js console api: setGlobalRegistrar, setHashReg, setUrlHint
* js test TestContract uses mining - tests fixed all pass
* eth/backend: allow PoW test mode (small ethash DAG)
* console jsre refers to resolver.abi/addr,
* cmd/geth/contracts.go moved to common/registrar
2015-07-07 10:43:31 +02:00
Jeffrey Wilcke
35cd355c14
cmd,eth,rpc,tests: default coinbase
2015-07-07 10:32:05 +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
9bb575be7d
Merge pull request #1283 from ethersphere/frontier/accounts
...
Account management improvements
2015-07-04 03:40:23 -07: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
Péter Szilágyi
f857fb7600
eth/downloader: fix a rare test race on the OSX CI
2015-07-03 13:01:22 +03:00
zelig
65a26e40a8
require explicit etherbase address for mining. Falling back to primary is risky given it is inconsistent if keys are imported/merged/created or copied/transfered
2015-07-02 23:28:12 +01:00
zelig
fc2e33c594
unlock multiple passes and obsolete primary
...
* multiple passwords allowed in password file
* split on "\n", sideeffect: chop trailing slashes. fixes common mistake <(echo 'pass')
* remove accounts.Primary method
* do not fall back to primary account for mining
2015-07-02 23:28:11 +01:00
Péter Szilágyi
d6f2c0a76f
eth, eth/downloader: fix #1231 , DOS vulnerability in hash queueing
2015-07-01 15:21:35 +03:00
Péter Szilágyi
1ae80aaf64
eth: fix #1371 , double lock during block/txn known set limitation
2015-07-01 11:12:05 +03:00
Péter Szilágyi
60454da650
eth/downloader: reduce hash fetches in prep for eth/61
2015-07-01 01:20:49 +03:00
Péter Szilágyi
f43c07cb3c
eth, eth/downloader: transition to eth 61
2015-06-30 19:05:06 +03:00
Péter Szilágyi
af51dc4d63
eth, eth/downloader: pass the eth protocol version through
2015-06-30 19:00:01 +03:00
Péter Szilágyi
aac2b6ae4c
eth: add the blocks from numbers protocol message
2015-06-30 19:00:01 +03:00
Péter Szilágyi
5db8f447d5
eth: fix #1319 , put an upper limit on the known txns and blocks
2015-06-30 19:00:01 +03:00
Péter Szilágyi
6fc85f1ec2
eth: clean up peer struct a bit, fix double txn bcast
2015-06-30 19:00:01 +03:00
Péter Szilágyi
2c8ed76e01
eth: start cleaning up old protocol implementation, add metrics
2015-06-30 19:00:00 +03:00
Péter Szilágyi
393d675690
cmd/geth, cmd/utils, eth: advertise both eth/60 and eth/61
2015-06-30 19:00:00 +03:00
Péter Szilágyi
01fe972113
cmd, core, eth, metrics, p2p: require enabling metrics
2015-06-30 00:51:46 +02:00
Péter Szilágyi
ccbb56b4f2
cmd/geth, eth, ethdb: monitor database compactions
2015-06-30 00:51:29 +02:00
zsfelfoldi
5d9df7348d
gpo non-existent block checks
2015-06-29 18:53:04 +02:00
Felix Lange
76821d167a
core, eth, rpc: avoid unnecessary block header copying
2015-06-29 18:51:48 +02:00
Felix Lange
e0e5f74776
eth/downloader, eth/fetcher: use core.GenerateChain in tests
...
TestMadeupParentBlockChainAttack has been deleted because it was too
hard to port and the attack that it checks the prevention of is being
averted in a different way (through a protocol change).
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
Péter Szilágyi
a7d22658ad
eth/fetcher: don't drop on future blocks, just not propagate
2015-06-29 14:20:13 +03:00
Péter Szilágyi
29d53b2073
eth/fetcher: don't double filter/fetch the same block
2015-06-29 13:49:04 +03:00
Péter Szilágyi
803b3c4a82
eth, ethdb: measure database operation latencies too
2015-06-24 18:34:05 +03:00
Péter Szilágyi
0609fcf030
eth: make sure dbs are lvldb before instrumenting
2015-06-24 18:34:04 +03: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
6260b86c15
eth/fetcher: fix failed merge
2015-06-24 18:34:04 +03:00
Péter Szilágyi
b426301467
cmd/geth, eth/fetcher: polish metrics reporting, add some more
2015-06-24 18:34:04 +03:00
Péter Szilágyi
821e01b013
cmd/geth, eth/fetcher: initial metrics support
...
Conflicts:
cmd/geth/admin.go
2015-06-24 18:33:33 +03:00
Péter Szilágyi
3ce17d2862
eth/fetcher: fix a closure data race
2015-06-22 20:13:18 +03:00
Péter Szilágyi
99ca4b619b
eth/fetcher: clean up test assertions
2015-06-22 18:28:38 +03:00