Commit Graph

11827 Commits

Author SHA1 Message Date
Guillaume Ballet
c9326e098c eth: fix comment typo in handler.go (#20575) 2020-02-27 17:20:36 +03:00
Martin Holst Swende
906f989762 cmd: implement abidump (#19958)
* abidump: implement abi dump command

* cmd/abidump: add license
2020-02-27 17:20:36 +03:00
Felix Lange
5f7f638ac5 log, internal/debug: delete RotatingFileHandler (#20586)
* log: delete RotatingFileHandler

We added this for the dashboard, which is gone now. The
handler never really worked well and had data race and file
handling issues.

* internal/debug: remove unused RotatingFileHandler setup code
2020-02-27 17:20:36 +03:00
Péter Szilágyi
e7ef24cd4b params: begin Geth v1.9.11 release cycle 2020-02-27 17:20:36 +03:00
Igor Mandrigin
70d7274c4d prepare for merging 2020-02-27 17:20:35 +03:00
b00ris
e4d6e702e0
Merge pull request #332 from ledgerwatch/storage_changeset_encoding
Custom storage change set encoding
2020-02-26 11:38:51 +03:00
b00ris
5c2d4dba3a
Merge pull request #356 from ledgerwatch/change_thin_history_index_encoding
Change thin history index encoding
2020-02-26 11:15:35 +03:00
b00ris
71b355bb6b
Merge pull request #373 from ledgerwatch/migrations
migrations
2020-02-26 00:41:11 +03:00
b00ris
83e65fdd81 migrations
fix build

add storage mode check

add intermitiate migration state&snapshot migrations
2020-02-26 00:25:30 +03:00
b00ris
2b74b43678 History index encoding
save state

save state

remove old history index

fix lint

compress index
2020-02-24 23:29:46 +03:00
b00ris
958ace4088 split storage and account encoding for changeset 2020-02-24 22:36:16 +03:00
b00ris
e69f53db8d Merge branch 'master' of github.com:ledgerwatch/turbo-geth into split_cs_buckets_squash 2020-02-24 21:47:26 +03:00
b00ris
aedecfc820 split changeset bucket
fmt

badger changes

badget puts

fix shadowing

fix mutation test. restore DecodeChangeSet

fix pruner test
2020-02-24 20:56:32 +03:00
Alex Sharov
3e944cb4b8
bolt v1.4.3 (#379)
* test_bolt_version

* test_bolt_version

* test_bolt_version

* test_bolt_version

* test_bolt_version

* test_bolt_version

* trigger CI
2020-02-22 07:56:42 +00:00
Igor Mandrigin
ec559db1c8
Formal semantics: more instructions (#366) 2020-02-17 19:56:30 +03:00
Alex Sharov
21ce7b4c0d
check in trie.hook was transformed incorrectly (#372) 2020-02-17 13:24:07 +07:00
Andrew Ashikhmin
b541bff1eb
Enable GetNodeData by default (#368)
* Add a missing IsGetNodeData check

* Enable GetNodeData by default
2020-02-16 16:50:24 +00:00
Alex Sharov
fdbba5202b
Trie: store self-destructed accounts (#355)
* squash commits

* enable storage cache

* make linter happy

* fix subtree prefix len check

* save cahnges to test master

* remove restriction on prefix len

* fix comparison of last bits

* fix wrong alignment

* remove debug prints

* commit current state

* commit current state

* avoid changing state of resolver from multiwalk

* remove debug code

* remove debug code

* remove debug code

* remove unnecessary copy

* make code more readable

* reduce rebuildHashes initial resolution

* fix test after rebase to master

* make code more readable

* improve pruner

* pruner add IntermediateCache bucket

* fix panic in Walk on short keys

* reduce allocations for storage keys decompression by increasing default buffer size

* re-run CI

* fix iterator behaviour

* rename cache to hash for unification

* re-run ci

* avoid using underlying DB

* hash all subtree nodes before unload

* fix getNode method

* need to check node type, not parent - before put to hashBucket

* return back parent type check, doesn't work without it.

* don't recalculate hash again

* move unloadFunc from trie to pruner

* rename bucket to shorter name

* rename bucket to shorter name

* clean

* rebase to master
2020-02-12 13:52:59 +00:00
Andrew Ashikhmin
05a3483cb1
Fix hash map leaks (#367)
* Enable testGetNodeData by default

* Crude TestHashMapLeak

* nodeFlag ->nodeRef

* linter

* accountNode shouln't be in hashMap since only branch and short nodes are the standart ones

* Finalize hash eviction logic

* small changes to TestHashMapLeak

* Fix for the incorrect hash

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2020-02-12 11:34:44 +00:00
ledgerwatch
767a374c2e
Tx pool use triedbstate, fixes to GetNodeData and move it to experimental (#364)
* Use TrieDbState for tx pool

* Not initialise tx pool until state is loaded

* Add preimage

* Fix account

* Print codehash

* Print correct code hash

* Print incarnatin

* Print incarnatin

* Use proper incarnation

* Print dbValue

* Actually fix

* Actually fix

* Fix verifySnapshot

* readAccount to get code hash

* Next incarnation

* Print addrHashes with 0 incarnations

* Print storage history

* Print storage history

* Print storage history

* Print storage history

* Print all storage history

* print change set keys

* print change set keys

* print change set keys

* print change set keys

* Not print codebucket info

* Fixes

* Fix for incarnation

* Fix for storage history bucket

* Try to fix the leak

* Try to fix the leak

* Try to fix the leak

* Try to fix the leak

* Try to fix the leak

* Try to fix the leak

* Try to fix the leak

* Fix embedded nodes

* Hasher

* Fix

* Test fixes

* Add experimental debug flag

* Fix tx_pool_test

* Disable GetNodeData test unless in experiment

* Fix more tests

* Fix lint and revert some changes

* Fix lint

* Fix lint
2020-02-10 17:05:32 +00:00
Evgeny Danilenko
c7a10934d8
Mining data races (#361)
* data races

* log cencelation
2020-02-10 21:28:30 +07:00
Igor Mandrigin
aafacd04d7
Debug Web UI prototype (#362) 2020-02-09 13:31:52 +03:00
Andrew Ashikhmin
08e651c779 Add subtrie's nodes to the hash map when it's hooked (#360)
* log trie's hashMap size

* Add subtrie's nodes to the hash map when it's hooked
2020-02-08 22:18:20 +00:00
Igor Mandrigin
f4d0747949
stateless: flush the partial witnesses DB for every saved witness (#354)
* stateless: flush the partial witnesses DB for every saved witness.

it seems to fix to the out of memory error I had on blocks over 2.5M;

* fix linters

* simplify
2020-02-06 13:58:58 +03:00
Andrew Ashikhmin
8585516071
Serve GetNodeData for nodes in memory (Issue #300) 2020-02-06 11:53:09 +01:00
Igor Mandrigin
eb0a772070
BRANCH formal semantics (#337) 2020-02-06 13:39:31 +03:00
Richard Schumann
4f99f61268
adding some design assets including a new logo (#351)
* Create readme.MD

* update readme

* update readme

* update readme

* Update readme.MD

* update

* test

* Create test

* Create test

* Create readme.md

* masterfile logo turbo-geth

* Create readme.md

* turbo-geth logo rendered as png

* Create readme.md

* turbo-geth logo as svg

* Delete test

* colors

* colors preview + sketch library

* Delete test

* Create readme.md

* turbo-geth wallpapers + sketch file

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2020-02-03 14:17:23 +00:00
Evgeny Danilenko
17a4a56634
Refactor mining. Remove a few mining goroutines (#338)
* add context

* extract chain events

* run commit in goroutines

* mine only on canonical

* typo

* linters

* fmt

* mark unused methods

* restore stress test

* test single miner

* remove unsafe Trie storage

* remove locks from miner

* restore interrupt

* remove result goroutine

* remove unconfirmedBlocks

* cherry-pick 04a1d475ff1a36ad8f92fec80385df18c52bdc1f

* extract uncles

* one miner succeeded

* restore context cancel

* cleanup

* skip an unstable test

* remove pending state

* use context instead of interrupt func

* calculate sealHash only once

* comment out unstable test

* after merge

* fix after merge

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2020-02-03 15:02:26 +03:00
ledgerwatch
0cd4f65ffe
Copy values from the ChangeSet bucket during Rewind (#348)
* Fix rewinding

* Fix rewinding
2020-02-01 16:24:38 +00:00
Alex Sharov
ff23980dc6
Intermediate hash phase 2 (#341)
* add env INTERMEDIATE_TRIE_CACHE
* try to use assert.New() pattern
* Fix "maligned" linter warnings to reduce space consumption of structs:

core/types/accounts/account.go:18:14: struct of size 136 bytes could be of size 128 bytes (maligned)
type Account struct {
--
trie/node.go:44:10: struct of size 80 bytes could be of size 72 bytes (maligned)
	duoNode struct {
--
trie/resolve_set.go:28:17: struct of size 56 bytes could be of size 48 bytes (maligned)
type ResolveSet struct {
--
trie/resolver.go:34:15: struct of size 88 bytes could be of size 72 bytes (maligned)
type Resolver struct {
--
trie/visual.go:32:17: struct of size 104 bytes could be of size 96 bytes (maligned)
type VisualOpts struct {
2020-01-31 14:31:50 +07:00
Alex Sharov
0dd4386a37
Intermediate trie hashes phase 1 (#334)
* add intermediate trie hashes bucket
* update docs
* use version of CompressNibbles with buf pool (less GC) but without io.ByteWriter (slow)
2020-01-31 11:11:20 +07:00
ledgerwatch
dca36e8b29
Restore the functionality CalcTrieRoots (compute trie root without modifying the trie) (#327)
* Trace first block

* Fixes for CalcTrieRoots

* Timings of the CalcTrieRoot

* Fix lint

* Add memory profiling

* Reduce allocations in StreamHash

* Fix

* Fix

* Fix

* Optimise allocations

* Reuse streams

* Fixes

* Fix

* Unit test fix

* Fix lint

* Reuse hashbuilder

* No loop

* Reuse resolver

* Fixed tests

* Fix test

* Fix test

* Fix test

* Fix witness threshold

* Optimise allocations in RLP transform

* Optimise allocations in RLP transform

* Optimise branchHash

* 100 times again

* Replace ToStream with Iterator

* StreamMergeIterator

* No streams

* Amplification

* Minimise the use of hashOnly

* 100 times

* Reduce stack operations

* Reduce appends

* More optimisations

* More optimisations

* More optimisations

* local hex

* Small fix

* Remove test

* Fix lint

* Fix lint

* Fix lint

* Add test for empty

* Fix lint

* More tests

* Fix lint

* Add measurement of stateless exec
2020-01-30 13:16:12 +00:00
Igor Mandrigin
785d0eafd8 post-rebase fixups v1.9.10 2020-01-30 13:36:30 +02:00
Péter Szilágyi
ed26cc6fa6 params: release Geth v1.9.10 2020-01-30 13:36:30 +02:00
gary rong
05452032db core: fix chain indexer unit test (#20506) 2020-01-30 13:36:30 +02:00
Péter Szilágyi
7696d8f059 params: update CHTs for v1.9.10 release 2020-01-30 13:36:30 +02:00
Péter Szilágyi
c7bbffcd59 travis: bump Android builder to Go 1.13.6 2020-01-30 13:36:30 +02:00
Péter Szilágyi
f001bedd9f appveyor: bump Go to 1.13.6 on Windows 2020-01-30 13:36:30 +02:00
Martin Holst Swende
3bda450baa * trie: utilize callbacks instead of amassing lists in ref/unref (#20529)
* trie/tests: add benchmarks and update trie tests

* trie: update benchmark tests

* trie: utilize callbacks instead of amassing lists of hashes in database ref/unref

* trie: replace remaining non-callback based accesses
2020-01-30 13:36:30 +02:00
gary rong
f0f1b5237c core, light: write chain data in atomic way (#20287)
* core: write chain data in atomic way

* core, light: address comments

* core, light: fix linter

* core, light: address comments
2020-01-30 13:36:30 +02:00
Felix Lange
3558ce7af4 cmd/devp2p: submit Route53 changes in batches (#20524)
This change works around the 32k RDATA character limit per change
request and fixes several issues in the deployer which prevented it from
working for our production trees.
2020-01-30 13:36:30 +02:00
Felix Lange
64b1694578 p2p: ensure Server.loop is ticking even if discovery hangs (#20573)
This is a temporary fix for a problem which started happening when the
dialer was changed to read nodes from an enode.Iterator. Before the
iterator change, discovery queries would always return within a couple
seconds even if there was no Internet access. Since the iterator won't
return unless a node is actually found, discoverTask can take much
longer. This means that the 'emergency connect' logic might not execute
in time, leading to a stuck node.
2020-01-30 13:36:30 +02:00
Felix Lange
d1e8d99c59 p2p: wait for listener goroutines on shutdown (#20569)
* p2p: wait for goroutine exit, fixes #20558

* p2p: wait for all slots on exit

Co-authored-by: Martin Holst Swende <martin@swende.se>
2020-01-30 13:36:30 +02:00
Guillaume Ballet
ad90ec7acf build: upgrade golangci to 1.22.2 (#20566)
* build: upgrade golangci to 1.22.2

* .golangci.yml: don't fail on asset deadcode
2020-01-30 13:36:30 +02:00
Péter Szilágyi
ba1bd31773 travis, build: enable Ubuntu Focal and Go 1.13.6 on PPA 2020-01-30 13:36:30 +02:00
Felix Lange
fee4544f95 build: put GOPATH in /tmp on launchpad (#20564)
* build: put GOPATH in /tmp on launchpad

* build: don't remove GOPATH from go tool environment
2020-01-30 13:36:30 +02:00
Martin Holst Swende
d83dad614e eth: increase timeout to fix a spurious travis test failure (#20560) 2020-01-30 13:36:30 +02:00
Felix Lange
c4bae805f9 build: fix makefile HOME reference (#20562) 2020-01-30 13:36:30 +02:00
Felix Lange
b8cb7e5c26 build: attempt to fix debian build failure without GOPATH (#20561) 2020-01-30 13:36:30 +02:00
Felix Lange
bacc87593a build: remove env.sh (#20541)
* build: remove env.sh

This removes the dirty symlink-to-self hack we've had for years. The
script was added to enable building without GOPATH and did that job
reliably for all this time. We can remove the workaround because modern
Go supports building without GOPATH natively.

* Makefile: add GO111MODULE=on to environment
2020-01-30 13:36:30 +02:00