Commit Graph

11771 Commits

Author SHA1 Message Date
Alex Sharov
b0f962e3ba
auto-format code by prettier (similar to gofmt) (#405) 2020-03-25 12:45:21 +07:00
Alex Sharov
b490192e67
Use KV Abstraction in RestAPI (#400)
* Introduce NoValuesCursor. From() method is useless because can be replaced by Seek().`
* implement NoValueCursor interface
* use abstract db in restapi
* cleanup .md
2020-03-24 09:12:55 +07:00
Alex Sharov
1fb8749638
Make AccountCreation do determined amount of operations and Move .Put out of .View (#402)
* move .Put out of .View and remove deletion of all tombstones when delete acc

* move .Put out of .View and remove deletion of all tombstones when delete acc
2020-03-23 22:14:05 +00:00
Igor Mandrigin
4f4b395aa4
Introduce code node & get rid of code map (#398)
* introduce code node

* replace codeMap with code touches

* fix a comment

* fixups to tests

* fix compile error

* fix getnodedata tests

* add tests and test stubs

* add more test stubs

* add test method bodies

* add and fix more tests on trie for new codenode

* add test change code between blocks

* fix crash in stateless

* remove unneded files

* remove comment

* fix deleted account code

* fix resolve set builder for code nodes
2020-03-23 22:10:36 +00:00
ledgerwatch
b07ae7667d
Optimise tombstones (#399)
* Optimise tombstones

* Replace Update with View

* remove 1 allocation

* Copy keys

* Fix 1 test (perhaps)

* Fix test

Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2020-03-22 17:37:55 +00:00
Alex Sharov
965d1101f4
Intermediate hash phase 4 (#396)
* another way to check if account has storage

* cleanup

* v0 of walk by db version

* save progress, to switch to another task. Put tombstone is still not correct.

* place tombstone only if exists something to hide

* db-based implementation

* db-based implementation

* db-based implementation

* fix prop check

* improve prop check logic

* Need custom logic to skip subtree for account and storage buckets because storage bucket has incarnation in key

* rebase to master

* remove all tombstones when account deleted

* remove all tombstones when account deleted

* added db integrity check

* don't rely on account.Root because it valid only about last incarnation

* remove all tombstones when account deleted

* dial with incarnation in MultiWalk2

* dial with incarnation in MultiWalk2

* when fixedbytes=40 resolver did compare cacheKey with storageKey without removing incarnation

* rebase to master

* rebase to master

Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-20 11:30:14 +00:00
Andrew Ashikhmin
abadbdfb80
[Issue 340] Preserve the original when a contract is self-destructed and then its address is touched in the same block (e.g. # 156634) (#397)
* root was unused in BlockChain.StateAt

* TestDoubleAccountRemoval

* Preserve the original when a contract is self-destructed and then its address is touched in the same block (e.g. #
156634)
2020-03-20 10:08:13 +00:00
Alex Sharov
2d7dd025cf
Update AbstractKV.md 2020-03-20 17:08:00 +07:00
Alex Sharov
84ae2eb1f8
Intermediate Hashes UI (#395)
* implement NoValueCursor interface

* cleanup

* fix tests

* add more stats data to ui

* can't display error

* re-open DB low-level net interface when changing db

* re-open DB low-level net interface when changing db

* fix problem with displaying errors

* run ci

* improve prop check logic

* storage tombstones integrity checks UI

* storage page

* make DB configurable

Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-20 10:06:14 +00:00
Alex Sharov
5f8b1b75d5
Storage Tombstones UI (#394)
* implement NoValueCursor interface

* cleanup

* fix tests

Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-16 22:00:48 +00:00
Igor Mandrigin
34890543e8 post-rebase: go mod tidy 2020-03-16 16:40:19 +03:00
Igor Mandrigin
8dfcb25e84 post-rebase: remove file 2020-03-16 16:40:19 +03:00
Péter Szilágyi
70d7ef88f8 params: release Geth v1.9.12 2020-03-16 16:40:19 +03:00
winsvega
36b2e89ce8 geth retesteth: increase retesteth default http timeouts (#20767) 2020-03-16 16:40:19 +03:00
Péter Szilágyi
bb6fb321d3 go.mod: update golang.org/x/crypto to fix a Go 1.14 race rejection 2020-03-16 16:40:19 +03:00
Péter Szilágyi
2ad0e192cf eth: fix transaction announce/broadcast goroutine leak 2020-03-16 16:40:19 +03:00
gary rong
455cf1b7de eth, les: fix time sensitive unit tests (#20741) 2020-03-16 16:40:19 +03:00
Felix Lange
27180454fe rpc: improve cancel test (#20752)
This is supposed to fix the occasional failures in 
TestCancel* on Travis CI.
2020-03-16 16:40:19 +03:00
meowsbits
cfe9f342a0 tests: update tests/testdata@develop, include EIP2384 config (#20746)
Includes difficulty tests for EIP2384 aka MuirGlacier.
2020-03-16 16:40:19 +03:00
Ali Atiia
56559c5565 core/vm: fix method doc (#20730)
typo in func name in the comment
2020-03-16 16:40:19 +03:00
rene
dbbef06bb9 rpc: correct typo and reword comment for consistency (#20728) 2020-03-16 16:40:19 +03:00
Felix Lange
47350cae41 p2p/discv5: fix test on go 1.14 (#20724) 2020-03-16 16:40:19 +03:00
Adam Schmideg
db46be2883 mobile: add CallOpts.SetFrom (#20721)
This was missing because I forgot to wrap it when bind.CallOpts.From
as added.
2020-03-16 16:40:19 +03:00
gary rong
4817b0a327 les: separate peer into clientPeer and serverPeer (#19991)
* les: separate peer into clientPeer and serverPeer

* les: address comments
2020-03-16 16:40:19 +03:00
Martin Holst Swende
ef75aff5c6 internal/ethapi: default to zero address for calls (#20702)
This makes eth_call and eth_estimateGas use the zero address
as sender when the "from" parameter is not supplied.

Co-authored-by: Felix Lange <fjl@twurst.com>
2020-03-16 16:40:19 +03:00
Boqin Qin
92f415e6aa eth/downloader: fix possible data race by inconsistent field protection (#20690) 2020-03-16 16:40:19 +03:00
Chris Chinchilla
b7415664d4 docs: correct clef typo (#20705) 2020-03-16 16:40:19 +03:00
gary rong
11b53b12bc les, miner, accounts/abi/bind: fix load-sensitive unit tests (#20698) 2020-03-16 16:40:19 +03:00
Guillaume Ballet
973552ba76 go.mod: upgrade goja to latest (#20700)
The new goja version supports the 'escape' and 'unescape' built-in functions.
This fixes #20693
2020-03-16 16:40:19 +03:00
Gregory Markou
848a9749fd core/vm: use dedicated SLOAD gas constant for EIP-2200 (#20646) 2020-03-16 16:40:19 +03:00
Péter Szilágyi
8d8c45d4f3 params: begin v1.9.12 release cycle 2020-03-16 16:40:19 +03:00
Igor Mandrigin
d9f70be2b3 add to-merge.txt 2020-03-16 16:40:19 +03:00
ledgerwatch
2a04d5bfef
Cleanup and fix the bug in the block 258217 (#392)
* Cleanup in blockchain.go

* Fix

* Fix

* Update hack

* Test fix
2020-03-15 17:15:16 +00:00
dependabot[bot]
03543f8a1b
build(deps): bump acorn from 5.7.3 to 5.7.4 in /debug-web-ui (#391)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-15 16:10:35 +00:00
Alex Sharov
f9f54f012d
Tester phase 2 (#390)
* Add revive and phoenix

* store enode address to file, then read it from tester

* store enode address to file, then read it from tester

* rebase master

* fix miss-type

* dbg p2p-sub-protocol, add self-destruct test case

* re-create blockFetcher

* exit syncer loop and start new one

* rebase to master

* use core.GenerateChain

* root miss-match

* introduce reduceComplexity flag

* fix transfer to 0 account

* cleanup

* test-case for intermediate cache

* clean

* clean

* clean

* fix handler panic

Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-15 16:10:07 +00:00
Andrew Ashikhmin
2866bc5448
Fix erroneous incarnation for accounts created and called in the same block (e.g. 0x2c785fa15498fe27f1fc5f809bcd9c10c9481752) (#389) 2020-03-12 15:22:23 +00:00
Andrew Ashikhmin
aeed1657c7
Issue #340: Re-execute all historical transaction in read-only mode and check ChangeSets (#388)
* Clean up code duplication between IntraBlockState's FinalizeTx & CommitBlock

* checkChangeSets command

* linter

* First attempt at checking account changes

* Reuse runBlock in CheckChangeSets

* linter

* linter

* Optionally include no-changes in the ChangeSets

* linter

* Detect storage changes for account change sets

* Fix post-merge compilation errors

* Use database format compatible with !debug.IsThinHistory()

* PrintChangedAccounts in ChangeSetWriter

* Avoid out-of-bounds access

* Storage changes

* hack FirstContractIncarnation

* Call ChangeSetWriter only once per block
2020-03-11 16:54:09 +01:00
Giulio rebuffo
cc7e34274c
removed repetitions in 'l' bucket (#383) 2020-03-11 12:06:29 +00:00
Alex Sharov
c5ffc971c5
[WIP] Badger v2 (#378)
* badger v2 investigation

* buf pool - use native New method and avoid double checks

* db.Open prototype

* db.Tx/Bucket/Cursor prototypes

* Chained config

* Item concept added

* save changes to test on master

* make hack resumable

* Design document v0

* Cursor concept

* less brackets syntax of cursor builder

* benchmarks

* cleanup fs

* test for context cancelations

* test for context cancelations

* test for cursor.Prefix option

* add ForEachKey method

* add ForEachKey method

* add naming explanation

* experiment of non-pointers cursor/bucket

* .Bucket() and .Cursor() doesn't returns error

* .Bucket() and .Cursor() doesn't returns error

* .Bucket() and .Cursor() doesn't returns error

* remove CursorOpts concept

* more test-cases

* simplify open api

* Tx, Bucket, Cursor - now are interfaces

* Tx, Bucket, Cursor - now are interfaces

* switch to interfaces

* rebase master

Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-11 11:02:37 +00:00
Alex Sharov
ce96cf75b2
Intermediate hash phase 3 (#377)
* #remove debug prints

* remove storage-mode="i"

* minnet re-execute hack with checkpoints

* minnet re-execute hack with checkpoints

* rollback to master setup

* mainnet re-exec hack

* rollback some changes

* v0 of "push down" functionality

* move all logic to own functions

* handle case when re-created account already has some storage

* clear path for storage

* try to rely on tree structure (but maybe need to rely on DB because can be intra-block re-creations of account)

* fix some bugs with indexes, moving to tests

* tests added

* make linter happy

* make linter happy

* simplify logic

* adjust comparison of keys with and without incarnation

* test for keyIsBefore

* test for keyIsBefore

* better nibbles alignment

* better nibbles alignment

* cleanup

* continue work on tests

* simplify test

* check tombstone existence before pushing it down.

* put tombstone only when account deleted, not created

* put tombstone only when account has storage

* make linter happy

* test for storage resolver

* make fixedbytes work without incarnation

* fix panic on short keys

* use special comparison only when working with keys from cache

* add blockNr for better tracing

* fix: incorrect tombstone check

* fix: incorrect tombstone check

* trigger ci

* hack for problem block

* more test-cases

* add test case for too long keys

* speedup cached resolver by removing bucket creation transaction

* remove parent type check in pruning, remove unused copy from mutation.put

* dump resolving info on fail

* dump resolving info on fail

* set tombstone everytime for now to check if it will help

* on unload: check parent type, not type of node

* fix wrong order of checking node type

* fix wrong order of checking node type

* rebase to new master

* make linter happy

* rebase to new master

* place tombstone only if acc has storage

* rebase master

* rebase master

* rebase master

* rebase master

Co-authored-by: alex.sharov <alex.sharov@lazada.com>
2020-03-11 10:31:49 +00:00
ledgerwatch
f210116e65
Semantics: Integrate Z3 into the build (#370)
* Just files

* Fix lint

* First attempt at linking

* More semantics

* Add more arguments

* Added z3 dependency

* Added integration with z3

* Try to fix build

* Add m library

* Try to fix ints

* Separate init/destroy, create sorts
2020-03-06 08:54:21 +00:00
ledgerwatch
48d4ac202c
Revive devp2p tester for further simulation testing (#387)
* First fixes

* Fixes in the tester

* fix hash announcement

* Tester fixes

* Fix lint

* After-merge fixes

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Clean up fetchers in the test

* Make tests not run forever

* Fix test

* Fix tester

* Increase time a bit

* Fix lint

* Fix tests

* Removed log

* Fix test

* Remove commented out code
2020-03-04 22:25:40 +00:00
ledgerwatch
80f06b279a
Fix --download-only mode (#374)
* Fix download only

* Fix lint

* Reset references

* Only reset on error

* Potential fixes

* no NPE

* no NPE

* Not use multi-put

* Reduce ideal batch size for download only

* Handle tds == nil

* remove nested mutation

* Return multiput

* Better reporting

* Reduce batch size for download only

* Avoid extra copying

* Avoid extra copying

* IdealBatchSize

* Not write tx lookup entries

* Larger batches

* Go back to normal batch size

* Fix lint

* Gen tx lookup

* print progress

* Add filling up the lookup array

* Show tx count

* Introduce second round

* Add generating tx lookup

* Fix lint

* properly stop at specified block

* measure the duration of the last phase

* not to fail if the bucket is not found

* Fix lint

* Alternative tx generation

* Fix out of memory

* Fix out of memory

* Split in parts to conserve memory

* Copy keys

* Fix lint

* Fix lint
2020-03-01 09:00:14 +00:00
b00ris
179acf936b
fix log (#386) 2020-02-29 20:37:53 +00:00
b00ris
b67174019c
Merge pull request #331 from ledgerwatch/split_changeset_bucket
Split changeset bucket
2020-02-29 14:05:46 +03:00
b00ris
ffacacf6fa fix lint 2020-02-28 22:48:52 +03:00
b00ris
1658fd6f4f Merge branch 'master' of github.com:ledgerwatch/turbo-geth into split_changeset_bucket_final 2020-02-28 14:57:03 +03:00
b00ris
ad8011c423 new storage encoding 2020-02-27 22:40:58 +03:00
Igor Mandrigin
6e928124cc
Merge pull request #385 from ledgerwatch/geth-1.9.11 2020-02-27 17:42:09 +03:00
Igor Mandrigin
edcd16c7ab post-merge fixups 2020-02-27 17:22:25 +03:00