Commit Graph

2290 Commits

Author SHA1 Message Date
Andrew Ashikhmin
094ab5e77d
[EIP-4399] Remove newly added Header.Random (reuse mixHash instead) (#3069)
* [EIP-4399] Remove newly added Header.Random (reuse mixHash instead)

* add a TODO

* Update mock payload hashes
2021-12-01 13:41:31 +01:00
TBC Dev
36fabdb69c
Change eth.Peer.ID() type from string to enode.ID (#3063)
* Change eth.Peer.ID() type from string to enode.ID

* Misc enode.ID.String() usage
2021-11-30 22:55:51 +00:00
Dmitry Savelev
d4f6ceff1c
Add NodeInfo implementation (#3046)
* Add NodeInfo implementation

* replace magic value with a constant.

* update dependencies

* bump minor version

* add nodes deduplication logic.

* shuffle values in test cases a little.
2021-11-30 22:42:12 +00:00
Giulio rebuffo
d7ee2b1447
Merge pull request #2997 from ledgerwatch/enginev1
Added ExecutePayloadV1 to engine_ namespace [the merge]
2021-11-30 19:21:17 +01:00
TBC Dev
5eca3beea9
Avoid redundant BitLen() (#3056)
* Prefer uint256.IsZero() or big.Sign() for 0-testing over BitLen()

* Avoid redundant BitLen()
2021-11-29 22:35:51 +00:00
Giulio Rebuffo
e76bc807bb better api 2021-11-29 15:47:08 +01:00
ledgerwatch
0e6e47e913
Create access list (#3048)
* Create access list

* CreateAccessList compiles

* fixes

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-11-29 09:28:35 +00:00
Giulio Rebuffo
5f31aef79e fixed compilation 2021-11-29 10:07:40 +01:00
Giulio rebuffo
cfed35921c
Merge branch 'devel' into enginev1 2021-11-29 09:57:56 +01:00
TBC Dev
57d641b6f9
Avoid redundant Block.Header() deep-copy (#3050)
* Add separate Block.Nonce() and Block.NonceU64()

* Add Block.Seal()

* Avoid redundant Block.Header() deep-copy

* Add warning comment for Block.Header()
2021-11-29 08:52:36 +00:00
Alex Sharov
8104a90993
Snapshot: exec and trie to support snapshot files (#3033) 2021-11-29 10:43:19 +07:00
Giulio rebuffo
38548e28fb
Merge branch 'devel' into enginev1 2021-11-26 15:42:36 +01:00
ledgerwatch
6910e18e7f
[txpool] Introduce PriceBump, change tx replacement logic, add test (#3039)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-11-26 14:39:26 +00:00
Giulio Rebuffo
768617f412 added proper errors 2021-11-24 23:19:40 +01:00
Giulio Rebuffo
435d1d1519 channels implemented 2021-11-24 23:00:00 +01:00
Alex Sharov
0ccae84583
remove block_fetcher and tx_fetcher (#3024) 2021-11-23 07:12:56 +00:00
Alex Sharov
6d24a30a01
Drop txpool v1 (#3017)
* drop_txpool_v1

* drop_txpool_v1

Co-authored-by: Alex Sharp <alexsharp@alexs-macbook-pro.home>
2021-11-22 18:38:51 +00:00
Giulio Rebuffo
af4caf4459 fixed compilation 2021-11-22 16:17:01 +01:00
Giulio Rebuffo
bac85f854b added getPayloadV1 2021-11-22 16:12:34 +01:00
TBC Dev
e1c44cd19b
Change sentry peer_id from H512 pubkey to H256 keccak256(pubkey) (#3013)
* Rename protoHandshake.ID to protoHandshake.Pubkey

* Fix enode.ID comment descriptions

* Change sentry peer_id from H512 pubkey to H256 keccak256(pubkey)

* Simplify PeerInfo helpers
2021-11-22 05:39:31 +00:00
Giulio Rebuffo
1267d540b1 added engine_executePayloadV1 2021-11-21 22:47:33 +01:00
Giulio Rebuffo
23883d9104 merge 2021-11-21 21:55:41 +01:00
Giulio Rebuffo
4eb650fb0c payload manipulation 2021-11-21 21:52:36 +01:00
ledgerwatch
b073787f1d
eth_getTransactionReceipt not to return unrelated txs (#2998)
* Cleanup

* Restore

* Fix for existing tx

* Cleanup

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-11-21 09:22:29 +00:00
Alex Sharov
e55256296b
snapshots: read block from snapshots, add sender to txs file (#2996) 2021-11-21 10:32:14 +07:00
Giulio Rebuffo
6dd2d67121 Added ExecutePayloadV1 method to engine_ namespace 2021-11-20 22:53:03 +01:00
Giulio Rebuffo
224441cb07 initial commit2 2021-11-20 17:27:11 +01:00
Alex Sharov
5b634a790e
Canonical tx ids (#2986)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save
2021-11-18 14:07:55 +00:00
Giulio rebuffo
e6916d4d00
[EIP-4399 2/3] Added total difficulty stage and transition logic (#2964)
* added diff stage

* added td stage

* improvements + more tests

* added err check

* added err check

* transition raw interfaces

* interface for transition

* unwind updates

* maybe this fix

* now fixed?

* fixes

* better db-format

* better db-format

* sum and mod

* sum and mod

* fixed headers unwind
2021-11-17 15:50:41 +00:00
Alex Sharov
861ef7a6c1
Open blocks snapshots (#2957) 2021-11-16 15:33:41 +07:00
Alex Sharov
aad0d0c777
grpc GetBlock api (#2955) 2021-11-14 11:08:52 +07:00
Alex Sharov
95c0e45cfa
Check existence before write - because WriteRawBody isn't idempotent (it allocates new sequence range for transactions on every call) (#2941) 2021-11-11 10:17:33 +07:00
Giulio Rebuffo
e4ab9b6793 lint 2021-11-09 20:40:48 +01:00
Giulio Rebuffo
02d3c697d1 removed eth64/65 tests 2021-11-07 22:16:49 +01:00
Giulio Rebuffo
f34ccb75e5 refactor downloader 2021-11-07 20:25:37 +01:00
Andrei Ivasko
65400b241f
HashState stage genesis sync - read PlainState only once (#2884) 2021-11-06 16:37:33 +07:00
alex.sharov
5d0f081a9c save 2021-11-04 15:45:55 +07:00
Alex Sharov
702631bf6f
prohibit change prune mode (#2908) 2021-11-03 20:05:52 +07:00
ledgerwatch
9aea0bba81
Revert "Correct initial sync in no p2p discovery mode (#2877)" (#2881)
This reverts commit 810c004d65.
2021-10-28 08:55:02 +01:00
Alex Sharov
84da57f62c
revert run only stage.Headers at first cycle (#2879) 2021-10-28 10:13:00 +07:00
ledgerwatch
810c004d65
Correct initial sync in no p2p discovery mode (#2877)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-10-27 18:47:51 +01:00
Alex Sharov
5d7904c133
erl.collector - move logPrefix to constructor (#2866) 2021-10-25 15:09:43 +07:00
alex.sharov
9c6a552a1e save 2021-10-22 08:41:16 +07:00
Alex Sharov
a28a0b7744
PoolV2: set default limit to sub-pools 10K (#2855) 2021-10-21 15:59:39 +07:00
Alex Sharov
a4d314719b
all chains to start txpool in same time (#2854) 2021-10-21 15:24:35 +07:00
ledgerwatch
1cbde9a5ef
More robust preverification of headers and remove kludge for header download (#2833)
* Update header_algos.go

* Update stage_headers.go

* Update header_algos.go
2021-10-17 19:13:34 +01:00
Alex Sharov
a470da8c2c
enable London in mining, fix pre-london gasPool in mining (#2821) 2021-10-13 11:04:59 +07:00
e-danko
19b7354a1d
#2658: eliminated HeadersSeal function (#2731)
* #2658: removed using HeadersSeal function from experiments module

* #2658: lint issues

* #2658: fix typo
2021-10-13 08:31:04 +07:00
Alex Sharov
da00e949c4
RemoteRPC: coherentCache for kv.Code; LocalRPC: enable small blocksLRU (#2815) 2021-10-12 12:04:04 +07:00
Alex Sharov
2d64584d4f
Better prune logs (#2812) 2021-10-11 11:58:57 +07:00
Alex Sharov
bd099e4e3e
Run first cycle in one db transaction if it's small enough (#2809) 2021-10-10 19:00:13 +07:00
Eugene
177aff8260
fix eth_subscribe (#2801) 2021-10-09 08:39:40 +07:00
Alex Sharov
5ca558c667
Move lengths to erigon-lib other packages depend on it (#2799)
* move lengths to erigon-lib

* move lengths to erigon-lib
2021-10-08 10:20:45 +07:00
Alex Sharov
54cdf74394
Rpcdaemon: add --tevm flag to enable experiment (#2788) 2021-10-06 16:09:47 +07:00
Alex Sharov
a6a63e8b0e
Integration to print right stage in logs (#2785) 2021-10-06 14:02:50 +07:00
alex.sharov
ff00efa911 reduce_bach_concurrency_default 2021-10-06 13:10:46 +07:00
Alex Sharov
21785780bf
IntermediateHash stage - switch from incremental to re-generate mode - if jump > 100K blocks (#2781) 2021-10-05 15:32:18 +07:00
Enrique Jose Avila Asapche
3c0cb82454
Decoding incarnation implemented (#2764)
* WIP decoding incarnation specifically

* Changed decodeIncarnation to be an external function

* added tests to for decoding incarnations

* ran gofmt -w -s

* changed test name, and changed incarnations to 4

* Created a test which tests if it returns an error when there is one

* ran gofmt

* Capitalized all tests and made breaking test

* added an error check

* changed decodingForStorage for decodingIncarnationFromStorage

* ran gofmt -w -s
2021-10-05 08:14:57 +07:00
Andrea Lanfranchi
3bc3be4b5f
Clean up DEBUG category logs (#2776)
- move many DEBUG logs into TRACE category
2021-10-05 08:14:04 +07:00
Andrea Lanfranchi
c913f35c2e
Inner errors (#2774) 2021-10-04 22:16:52 +07:00
Alex Sharov
044aa6748c
eip 1559 in miner (#2773) 2021-10-04 19:47:52 +07:00
Alex Sharov
de16cb9e23
add logs in recoverFromDb func (#2769) 2021-10-04 19:46:05 +07:00
Andrea Lanfranchi
f70dd63a30
Update stage_finish.go : notifications to rpc daemon (#2755) 2021-10-04 07:30:42 +07:00
Alex Sharov
83555c2255
Pool v2: --txpool.accountslots flag support (#2765) 2021-10-03 13:27:37 +07:00
Alex Sharov
d61a9ad073
Pool v2: --txpool.pricelimit support (#2763) 2021-10-02 17:34:57 +07:00
Andrea Lanfranchi
859a4fca3e
Wrong notifyFrom value in NotifyNewHeaders (#2750)
* Wrong notifyFrom value

* Move log.info line after possible error

* Better wording
2021-09-30 21:40:37 +07:00
alex.sharov
fc44197f06 fix merge conflict 2021-09-29 14:48:19 +07:00
e-danko
7d338f5e1c
#2660: added Kovan network (#2733) 2021-09-27 19:56:17 +07:00
Alex Sharov
a148e71d9d
Pool: switch to pendingBaseFee (#2732) 2021-09-26 23:09:36 +07:00
Alexandr Borodulin
d7159cd8bd
More convenient pruning for non-PoW consensus: add --prune.*.before flags (#2714) 2021-09-23 09:13:19 +07:00
Alex Sharov
0b776eead4
flag --txpool.v2 to enable --state.stream flag (#2718) 2021-09-22 15:39:51 +07:00
Alex Sharov
3de50637cd
remove changeset.Walk func (#2716) 2021-09-22 07:54:29 +07:00
Alex Sharov
a0321e2f3a
Pool: return lost error, fix race of 2 sentries, more friendly logs (#2707) 2021-09-20 20:16:50 +07:00
Alex Sharov
1f8937fdd1
Pool: discard reasons, lru, start pool even if no --mine flag (#2704) 2021-09-20 13:20:50 +07:00
ledgerwatch
836d7e07f9
Recreate bitmap in call traces (#2700)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-09-18 22:41:27 +01:00
Alex Sharov
8d9e058eb7
Pool: chain config, non-mainnet (#2702) 2021-09-18 20:58:23 +07:00
Alex Sharov
b30ccd2ddf
Revert "Add prune before parameters" (#2701)
This reverts commit 49a98ad4b6.
2021-09-18 08:37:39 +07:00
Alexandr Borodulin
49a98ad4b6
Add prune before parameters 2021-09-17 19:01:15 +07:00
Alex Sharov
165fe1696f
Pool: readme (#2699) 2021-09-17 18:21:21 +07:00
Alex Sharov
400c71b7ce
Pool: txID-based cache (#2697) 2021-09-17 10:31:20 +07:00
e-danko
70ff9bb0bb
#2371: added saving Erigon version in database (#2683) 2021-09-15 20:44:22 +07:00
Alex Sharov
76dd448c70
Pool: switch cache to tx.ID(), add blockNum to tx info to drop from full pool old txs first (#2688) 2021-09-15 19:34:05 +07:00
Alex Sharov
ad1682cf40
Expose mdbx's txID to remote_kv (#2686) 2021-09-15 14:22:57 +07:00
Alex Sharov
ec14cba611
Remote Pool: add mining rpc, test pending txs stream (#2685) 2021-09-15 09:09:19 +07:00
Alex Sharov
77db993cfc
Pool: add coherent cache (#2678) 2021-09-13 14:58:25 +07:00
Alex Sharp
16a02d0987 Merge branch 'more-generalised-pruneReceipts' of https://github.com/enriavil1/erigon into enriavil1-more-generalised-pruneReceipts 2021-09-12 10:20:39 +01:00
Giulio rebuffo
e0c14c9a25
Update stage_execute.go 2021-09-12 10:16:53 +02:00
ledgerwatch
15b4095718
Move ETL to erigon-lib (#2667)
* Move ETL to erigon-lib

* Update link in the readme

* go mod tidy

* Use common/chan.go from erigon-lib

* Clean up

* Fix lint

* Fix test

* Fix compilation

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-09-12 08:50:17 +01:00
Giulio rebuffo
3354a29eb9
Update stage_execute.go 2021-09-12 09:48:41 +02:00
Giulio rebuffo
4fb89ad735
Update stage.go 2021-09-12 09:47:53 +02:00
Enrique Avila Asapche
1eefb72934 'ran gofmt -w -s . to format' 2021-09-11 17:41:29 +03:00
Alex Sharov
ed33b651cd
Print goroutines trace to STDOUT without app stop on SIGUSR1 (#2663) 2021-09-11 18:16:39 +07:00
Enrique Avila Asapche
1786e44269 fixed bug in stages to refactor the code into two reusable functions PruneTableMultiCursor and PruneTable 2021-09-11 13:09:18 +03:00
Enrique Avila Asapche
d14b894f07 deleted kv.log section and instead call it in cfg.prune.Receipts.Enabled 2021-09-10 15:59:22 +03:00
Alex Sharov
71ec0938b5
fix wrong order of constructor (#2657) 2021-09-10 10:06:23 +07:00
Enrique Avila Asapche
20f10ca95a Added identifier instead of kv.Receipts 2021-09-09 18:58:34 +03:00
Alex Sharov
3193f95152
Apply mined block (#2650) 2021-09-09 14:26:58 +07:00
jt9897253
b958d49587
Fix typo (#2648)
Change `Preload headedrs` to `Preload headers`
2021-09-09 08:50:42 +07:00
Alex Sharov
798c2d64a4
Pool: no state presistance (#2646) 2021-09-08 19:33:14 +07:00
alex.sharov
bd017a06d4 save 2021-09-08 16:17:52 +07:00
Alex Sharov
fd69b509a5
Senders prune logging (#2645) 2021-09-08 16:11:05 +07:00
Alex Sharov
0d79c19f21
clean ipc string (#2644) 2021-09-08 15:25:10 +07:00
Alex Sharov
2d8941a845
Pool: built-in v2 (#2643) 2021-09-08 12:31:51 +07:00
Alex Sharov
99317663f8
No open db in main, right clique sign, periodically release write tx on devnet (#2642) 2021-09-08 11:13:34 +07:00
Giulio rebuffo
b85c5f40e2
added senders pruning (#2634) 2021-09-08 08:38:58 +07:00
Alex Sharov
dd7f197db3
Devnet private key (#2639) 2021-09-07 16:12:49 +07:00
Alex Sharov
28480a36ec
Pool: add --txpool.v2 flag to rpcdaemon (#2624) 2021-09-03 11:19:35 +07:00
Alex Sharov
4c1dbdf50e
Pool: add --txpool.v2 flag to erigon (it just disabling existing machinery for now) (#2620) 2021-09-02 17:04:30 +07:00
ledgerwatch
12cbf4d6fa
Ropsten to find correct chain (#2614)
* Ropsten to find correct chain

* Cleanup and compile fix

* Compile fix

* Print duration of the unwind, not the timestamp

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-09-01 22:21:57 +01:00
racytech
fd357f034d
bad.hash flag added to exclude block by hash and not by number (#2612)
* BadHashFlag added

* bad.hash to bad.block
2021-09-01 22:16:25 +01:00
Alex Sharov
edb83d1ed9
Roaring bitmap lib version up (#2606) 2021-09-01 12:09:04 +07:00
ligi
d798d239f6
Fix typos (#2602) 2021-08-31 14:50:39 +07:00
Alex Sharov
017b460b99
CallTraces prune to use ETL (#2592) 2021-08-30 09:13:30 +07:00
Alex Sharov
abd2e2de2e
Sentry: clients can't slow down each-other, dedicated stream for sending headers (#2558) 2021-08-20 19:48:18 +07:00
Alex Sharov
f5c6def4bc
close db (#2548) 2021-08-18 15:50:22 +07:00
Alex Sharov
b7ada2a595
create new Change object if incarnation increased (#2539)
* create new Change object if incarnation increased

* create new Change object if incarnation increased
2021-08-18 09:41:07 +07:00
Alex Sharov
5e6549ac7d
Better logs prune (#2543)
* prune log prefix

* prune log prefix
2021-08-17 18:51:08 +01:00
Alex Sharov
6c7edb0d34
state diff send to txpool (#2532) 2021-08-17 15:52:55 +07:00
Alex Sharov
c7c3a5932a
rename ReadBody to ReadBodyWithTransactions to make it obvious that it's heavier then just ReadBody (#2534)
* rename ReadBody to ReadBodyWithTransactions

* rename ReadBody to ReadBodyWithTransactions
2021-08-15 17:08:28 +07:00
Alex Sharov
98e60b5b4b
Separate handshake from set_status - because txpool can't set any sentry status but need to handshake (#2529)
* sentry handshake

* move sentry clients to erigon-lib

* correct grpc retry

* correct grpc retry

* correct grpc retry
2021-08-14 15:11:46 +07:00
Alex Sharov
f01a71a696
feehistory fix types to be compatible with spec (#2518) 2021-08-13 10:47:43 +07:00
Evgeny Danilenko
4cd72c8328
Keep readonly value while changing interpreters back and forth (#2508)
* restore TEVM

* fuzzing and property based

* comment

* lint

* stack callback into defer ater checking an error

* sequential tests
2021-08-10 09:48:56 +07:00
ledgerwatch
65a9a265c2
Prevent frequent commits to the node DB in sentries (#2505)
* Prevent frequent commits to the node DB in sentries

* Commit when btree goes over limit

* iterator for SeedQuery

* Fixing test

* Fix tests

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-08-09 09:52:42 +01:00
ledgerwatch
350d7fe7a9
Adding support for vmTrace into trace_ routines (#2497)
* VmTrace

* Fixes to gasCall, beginning of vmTrace

* Fix opcode tracer

* Add mem and store, enable vmTrace for all methods

* Fix lint

* More nuances and debugging|

* More fixes

* Fix for trace_callMany

* Fix for trace_callMany

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-08-08 13:28:03 +01:00
Alex Sharov
b666c67ea0
Remove concurrency from fee history and support request cancelation (#2504)
* remove fee history concurrency

* remove fee history concurrency

* add concext cancel support
2021-08-08 19:15:22 +07:00
Alex Sharov
6bf34b5cb8
RPC: eth_feeHistory (#2501)
* eth_FeeHistory

* eth_FeeHistory

* eth_FeeHistory

* lint

* lint
2021-08-08 14:27:47 +07:00
Alex Sharov
29380e4b46
parse dynFee tx corner case (#2500)
* parse dyn fee tx error

* parse dyn fee tx error

* lint
2021-08-08 14:27:34 +07:00
Alex Sharov
72e9660b74
RPC: eth_MaxPriorityFeePerGas (#2498) 2021-08-08 09:18:41 +07:00
alex.sharov
62c026e25a fix txpool key 2021-08-07 14:34:36 +07:00
alex.sharov
2c45a561f5 simplify logs 2021-08-07 14:07:59 +07:00
Alex Sharov
b718e46c0a
Grafana to show all stages progress, less spooky logs, no runtime logPrefix calculation (#2493)
* better logs, label-based metrics

* no runtime log prefix calculation

* clean

* dashboard to show all stages metrics
2021-08-07 11:11:45 +07:00
The-Coomer
c46540f56f
Update README to list all current 18 stages (#2486) 2021-08-04 10:33:37 +07:00
canepat
38a31cecb7
RPCDaemon: eth_gasPrice add baseFee if any to suggested gas price (#2484)
* Avoid decreasing gasFeeCap at each GetEffectiveGasTip call
Add baseFee if any to suggested gas price

* Move add before GPO caching
2021-08-03 11:48:09 +07:00
Alex Sharov
aeb2426b8c
etl call traces (#2481) 2021-08-02 11:26:42 +07:00
Alex Sharov
5444e70038
allow to run stages once if --nodiscover (#2470) 2021-07-31 12:25:56 +07:00
Alex Sharov
3ed0f5c83d
better prune error message (#2475) 2021-07-31 12:24:20 +07:00
Alex Sharov
286572e99f
Remove some unused code related to metrics (#2469) 2021-07-29 22:37:48 +07:00
Alex Sharov
6bd44eb26c
move kv to erigon-lib (#2467) 2021-07-29 18:53:13 +07:00
Alex Sharov
69dc2776dc
MIT licensed metrics lib (#2462) 2021-07-29 17:27:46 +07:00
Alex Sharov
5069558752
Apache licensed logger (#2460) 2021-07-29 17:23:23 +07:00
Alex Sharov
21cb7befa4
finish remove bucket suffix (#2458) 2021-07-28 10:43:51 +07:00
Alex Sharov
838e5f9ef2
Move bucket constants into kv package, move kv interface to kv package (#2455) 2021-07-28 09:47:38 +07:00
Alex Sharov
63a6c45ef1
Remove some db interfaces (#2452) 2021-07-27 19:35:32 +07:00
Alex Sharov
ec49dc786e
truncate timings in logs (#2451) 2021-07-27 09:50:57 +07:00
Alex Sharov
733991018b
port active precompiles activation (#2448) 2021-07-27 09:39:41 +07:00
Alex Sharov
054581f507
staged syncs automatically add error prefix about stage number and name (#2445) 2021-07-26 13:19:01 +07:00
Alex Sharov
12c578b84d
less alloc at hash state key transformation #2441 (#2441) 2021-07-24 18:14:10 +07:00
Alex Sharov
6bf54c951a
Sokol v0: unwind support (#2439) 2021-07-24 16:50:42 +07:00
Alex Sharov
6801208497
move some tests to kv interface (#2438) 2021-07-24 14:14:11 +07:00
Alex Sharov
d58752f67d
RPC: eip1559 in getTxByHash (#2436) 2021-07-24 11:55:32 +07:00
Alex Sharov
a36a613e61
move migrations to kv interfaces (#2430) 2021-07-24 11:28:05 +07:00
Alex Sharov
f735997fa1
Sokol v0: remove unused parameters and methods (#2435) 2021-07-24 11:04:07 +07:00
Alex Sharov
4129918276
prune log index by wrong distance (#2434) 2021-07-24 10:36:05 +07:00
ledgerwatch
026c4e9d02
Reorg ropsten solution (#2419)
* Reorg ropsten solution

* Add option

* Print TD recalc

* Correct fix for eip1559

* Try to fix the unwind

* Print header progress and hash

* Not insert descendants of bad headers

* Print some more

* Print less

* Better way of marking bad headers

* Disable inSync

* Penalise peers who give incorrect chain pieces

* better fix for initial cycle

* Clean up

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-07-22 16:49:36 +01:00
Alex Sharov
5dc0884f27
add stop point of tx_lookup unwind (#2413) 2021-07-22 12:40:00 +07:00
Alex Sharov
f3474dc9ba
Limit non-genesis jump for prune node (#2412) 2021-07-21 18:44:47 +07:00
Alex Sharov
d2552196ad
Sokol v0: support for first epoch-set transition (#2411) 2021-07-21 18:13:26 +07:00
Alex Sharov
33b122424c
clean logs (#2410) 2021-07-21 08:18:21 +01:00
Alex Sharov
c3e1cfdac8
Pruning for: exec, log_index, tx_lookup, history stages (#2399)
* Pruning for: exec, log_index, tx_lookup, history stages

* Pruning for: exec, log_index, tx_lookup, history stages

* Pruning for: exec, log_index, tx_lookup, history stages

* Pruning for: exec, log_index, tx_lookup, history stages

* add tvm flag

* save

* db migration for storage mode
add flag --prune=
remove flag --storage-mode=
add flag --experiments=tevm,...
rename integration set_storage_mode to set_prune

* fix

* forward move of stages must skip everything before PruneTo

* keep in db progress of prune method

* keep in db progress of prune method

* simplify logs

* simplify logs

* simplify logs

* fix test

* simplify logs

* simplify logs

* simplify logs

* simplify logs

* remove callTraceSet as dupsort
use etl transform for txlookup prune
remove some logs

* cleanup tests a bit

* print_stages and eth_sync to show prune progress

* fix print_stages

* add readme about --prune.to flag

* more docs

* add --prune.history.older and other flags support

* fix migration on empty db

* better toString

* better toString
2021-07-20 21:03:19 +01:00
Artem Vorotnikov
0026cb8faa
Remove checkpoints (#2402)
* Remove checkpoints

* Remove more dead flags
2021-07-20 09:11:42 +07:00
Alex Sharov
5dbb14b219
fix notifications range (#2400) 2021-07-19 17:53:04 +07:00
Alex Sharov
13b29abcce
Make UnwindOrder variable non-inverted (#2395)
* revert unwind stages list

* revert unwind stages list
2021-07-18 16:42:50 +07:00
Alex Sharov
d9c5ef3eb9
Pruning stages order support (#2393) 2021-07-18 15:59:05 +07:00
Alex Sharov
58e22c5bc3
remove stage.Done() method (#2390) 2021-07-18 09:23:25 +07:00
Alex Sharov
766655205f
Remove sync.Prepare() func (#2389) 2021-07-17 23:07:09 +07:00
Alex Sharov
4c53f51767
Remove "persistent unwind" concept (#2388) 2021-07-17 21:14:51 +07:00
Alex Sharov
499b5ce6ce
remove reader/writer builder (#2386)
* remove builder

* remove builder
2021-07-17 13:38:53 +07:00
Alex Sharov
8d320aee07
add pruning stage concept, but not enable yet (#2385) 2021-07-17 13:38:44 +07:00
Alex Sharov
a79b3cd6eb
unify stage params (#2384) 2021-07-17 09:09:56 +07:00
Alex Sharov
5f55b6b89c
Remove stage builder and use ID's in unwindOrder (#2381) 2021-07-16 20:17:40 +07:00
Artem Vorotnikov
a49b920659
Remove preimages (#2370) 2021-07-15 09:06:07 +07:00
Alex Sharov
356567676a
less allocs at call trace (#2363) 2021-07-14 21:34:23 +07:00
alex.sharov
34ba380087 print better log 2021-07-13 15:47:05 +07:00
Alex Sharov
08590211e6
Add defer collector.Close() (#2351)
* add defer collector.Close

* add defer collector.Close
2021-07-13 09:17:21 +07:00
Alex Sharov
623a3feeee
RPC: return all stages progress inside eth_syncing (#2353) 2021-07-13 09:17:05 +07:00
Alex Sharov
557d082c51
Sokol v0: epoch support (#2348)
* remove ctx from state writer interface

* call me baby

* save

* save

* can process block 1

* can process block 1

* can process block 1

* can process block 1

* save

* save

* parse logs logic

* cleans

* cleans

* cleans
2021-07-12 16:27:25 +01:00
Alex Sharov
2a8f1959a5
cleans (#2349) 2021-07-12 15:56:20 +07:00
Alex Sharov
188dfb14b8
txPool: propagate on peer connect (#2335) 2021-07-11 14:01:16 +07:00
Alex Sharov
5eaf4c8cc3
rpc: 1559 in call and tracing (#2327) 2021-07-11 04:05:56 +00:00
Alex Sharov
2ec64aee1d
Simplify mining (#2339)
* save

* save
2021-07-11 04:05:33 +00:00
Alex Sharov
43af5d42b8
simplify staged sync world (#2336)
* simplify world

* simplify world

* simplify world
2021-07-10 16:43:58 +07:00
Marin Ivanov
c89ec2047e
Add parameter for minimum time between sync loop iterations (#2332)
* Add parameter for minimum time between sync loop iterations

* Rename cli parameter --throttle.minLoopTime => --sync.loop.throttle
2021-07-10 09:19:44 +07:00
Alex Sharov
e98340d806
Simplify stagedsync.Prepare (#2317) 2021-07-08 20:52:22 +07:00
Alex Sharov
5ceaac53f6
batch cancel (#2314) 2021-07-08 19:40:49 +07:00
Alex Sharov
7c60cc0fee
step towards kv interface (#2313) 2021-07-08 09:56:09 +07:00
Alex Sharov
a78cb54132
step towards kv interface (#2311) 2021-07-07 23:15:49 +07:00
Alex Sharov
a68b5ba361
Replace ChainConfig.WithEIPsFlags by go-ethereum's ChainConfig.Rules (#2304)
* use chainRules

* use chainRules

* use chainRules

* use chainRules

* use chainRules
2021-07-05 19:52:50 +01:00
Alex Sharov
9683b26483
remove ctx from state writer interface (#2302) 2021-07-05 15:42:44 +07:00
Alex Sharov
afd8674c4b
Peer log (#2294)
* Revert "Revert "better handshake""

This reverts commit 4141c54c95.

* better peers logs

* better peers logs
2021-07-04 08:51:08 +01:00
Alex Sharov
ba902f7ef3
separate_config_from_node_and_eth (#2289) 2021-07-04 08:50:32 +01:00
Alex Sharov
6a5f86423c
Remove "numgc" from logs (#2275) 2021-07-03 14:44:23 +07:00
Alex Sharov
8e00da2035
Sokol v0: preparations for contracts run, proofs support (#2270) 2021-07-02 15:00:41 +07:00
ledgerwatch
a05d1be531
Pull grpc bindings into erigon-lib (#2265)
* Pull grpc bindings into erigon-lib

* Remove mdbx dist

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-07-01 22:31:14 +01:00
Mark Tyneway
17adaf5f87
config: add block downloader window flag (#2259) 2021-07-01 10:14:10 +07:00
Alex Sharov
6df7230108
Sokol v0 - better header rlp, steps to generate blocks (#2256) 2021-06-30 16:30:21 +07:00
Alex Sharov
8f6aa2f7ae
propagate new tx to p2p (#2254) 2021-06-29 17:00:22 +07:00
Alex Sharov
a6f4b08716
Revert "Propagate new txs to P2P (#2249)" (#2253)
This reverts commit e9ae6d688f.
2021-06-29 15:46:00 +07:00
Alex Sharov
e9ae6d688f
Propagate new txs to P2P (#2249) 2021-06-29 14:40:23 +07:00
ledgerwatch
7baf3ec484
Move secp256k1 into a separate go module, hook up erigon-lib (#2239)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-06-26 15:03:05 +01:00
Alex Sharov
605d7a8d59
Sokol v0 (#2228)
* handle chain flag in integration

* handle chain flag in integration

* handle chain flag in integration

* save

* save

* merge devel

* save

* noopWriter - one is enough

* chain spec parser

* chain spec parser

* embed

* embed

* embed

* embed

* embed

* embed

* embed

* clean

* clean

* correct alloc after reset state

* correct alloc after reset state

* correct alloc after reset state

* integration reset state now does re-apply genesis and chainConfig

* eips summary

* eips summary

* eips summary
2021-06-25 19:13:40 +01:00
Evgeny Danilenko
80c2fc6a0c
Remove stacked defers (#2149)
* rewrite everything

* remove stacked defers

* debug

* fix panic on nil tx

* use db.View

* panic

* block based progress

* errors

* - assume that batches are big  enough to not worry about saving carefully logTime
- use only 1 digit as progress indicator
- log only if processing > 16 blocks

* - update metric when printing logs

* remove excluded

Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2021-06-23 10:30:53 +03:00
Alex Sharov
24a76a002d
correct iterate over items when goroutine inside loop (#2219) 2021-06-22 14:33:22 +01:00
Alex Sharov
59d05dc5fe
hide file exists err (#2218) 2021-06-22 11:09:45 +01:00
Alex Sharov
2b59b45216
Do log tables size, db metrics - avoid concurrency, check stale readers hourly (#2216)
* add table size logs and metrics

* log stale readers

* - don't collect db metrics in background
- do check stale readers once an hour

* execution to update metrics when print logs

* hide file exists err

* hide file exists err
2021-06-22 11:08:47 +01:00
Artem Vorotnikov
989a8305f2
Print Mgas/second during execution (#2204) 2021-06-20 09:36:42 +03:00
Alex Sharov
4533b59724
flag to stop before stage (#2194) 2021-06-19 16:01:33 +07:00
Alex Sharov
bc271f92ce
To break dependency to db implementation - move all db classes to "ethdb/kv" and leave in "ethdb" only interfaces (#2195) 2021-06-19 15:21:53 +07:00
Alex Sharov
de24b427bf
save (#2196) 2021-06-19 13:32:35 +07:00
mempirate
ca926ce94d
net_peerCount for remote sentries (#2192)
* net_peerCount for remote sentries

* cleanup

* Simplify NetPeerCount using SentryClient

* Refactor id -> count
2021-06-18 14:34:15 +01:00
mempirate
e51b09da0d
Implements net_peerCount RPC call for internal sentries (#2172)
* Implement API and protobuf

* Squashed 'interfaces/' content from commit cd3eca28e

git-subtree-dir: interfaces
git-subtree-split: cd3eca28e50367af9de52fca863b1d7528bff774

* Implement net_peerCount RPC call

* Squashed 'interfaces/' content from commit cd3eca28e

git-subtree-dir: interfaces
git-subtree-split: cd3eca28e50367af9de52fca863b1d7528bff774

* Fixing merge conflicts

* Remove p2p.Server from Ethereum backend

* Fix peerCount calculation for internal sentries

* Bump eth backend API version

* Update rpcdaemon README

* Document version change
2021-06-17 22:55:20 +01:00
Alex Sharov
f63d12405a
Sender stage hangs (#2177)
* - add context for goroutines shutdown
- use 1 select for all channels to avoid deadlock

* - add context for goroutines shutdown
- use 1 select for all channels to avoid deadlock
- integration: senders to use right chainconfig
2021-06-16 14:04:44 +01:00
Artem Vorotnikov
af836a6200
Nuke LMDB (#2167) 2021-06-16 13:57:58 +03:00
Alex Sharov
dcf850dd75
fix fieldalignment linter warnings (#2171) 2021-06-16 11:00:35 +07:00
Alex Sharov
d7f7445a5e
fix concurrent badHeaders map writes crush (#2175)
* fix concurrent map writes crush

* fix concurrent map writes crush
2021-06-16 10:58:45 +07:00
BitBaseBit
159777db29
Changed gas price oracle to use effective tip and ignoreUnder parameter for 1559. (#2173)
* added temp file in crashreports because git is stupid and wont add empty folders

* implemented ignoreUnder + EffectiveGas for legacy and dynamic txs

* implemented changes to gas price oracle for 1559

* switched Cmp to Lt/Gt
2021-06-15 21:45:34 +01:00
Artem Vorotnikov
9a8c0f9669
Always enable eth65 (#2166)
* Always enable eth65

* Add ListenAddr65 to defaults
2021-06-15 17:57:26 +01:00
Alex Sharov
b160e30652
Send GetBlockHeaders immediately if TD of connected peer >= our TD (#2169)
* empty engine

* start sync from peer right after handshake if it's TD is higher

* fixCanonicalChain to print logs

* clean

* >
2021-06-15 13:43:55 +01:00
Artem Vorotnikov
0a4e0d1fa1
Various code simplificaitons (#2165)
* simplify randomaccount

* simplify execution unwind

* Remove standalone account accessors
2021-06-14 19:52:30 +01:00
ledgerwatch
2c1fe2a3a7
Restore TD records (#2164)
* Insert missing TD values

* Print missing TD records

* Fix typo

* Apply fix

* Fixes in execution stage

* Fix tx/sec output

* Advance exec

* Reset unwind

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-14 19:51:57 +01:00
ledgerwatch
c4cfd84b6d
Not to remove TD records on failed blocks (#2155)
* Not to remove TD records on failed blocks

* Commit tx when stopped

* Not to mess up stageloop commits

* Stop

* Fix header unwinds

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-06-13 21:48:40 +01:00
BitBaseBit
7ed337cdcc
Implemented panic handling, graceful shutdown and reporting for all goroutines that don't explicitly handle them. (#2153)
* implemented crash reporting for all goroutine panics that aren't handled explicitly

* implemented crash reporting for all goroutine panics that aren't handled explicitly

* changed node defaults back to originals after testing

* implemented panic handling for all goroutines that don't explicitly handle them, outputting the stack trace to a file in crashreports

* handling panics on all goroutines gracefully

* updated missing call

* error assignment

* implemented suggestions

* path.Join added

* implemented Evgeny's suggestions

* changed path.Join to filepath.Join for cross-platform

* added err check

* updated RecoverStackTrace to LogPanic

* updated closures

* removed call of common.Go to some goroutines

* updated scope capture

* removed testing files

* reverted back to original method, I feel like its less intrusive

* update filename for clarity
2021-06-13 17:41:39 +01:00
ledgerwatch
e29e76988b
Update backend.go (#2152) 2021-06-12 14:58:44 +01:00
ledgerwatch
b5edbe272f
Update stage_tevm.go (#2144) 2021-06-11 10:11:23 +01:00
Alex Sharov
7b08a3b138
tevm_open_cursor_after_commit (#2141) 2021-06-11 09:35:00 +01:00
Alex Sharov
ba56e7a139
extract p2p config out of sentry (#2126)
* extract p2p config out of sentry

* extract p2p config out of sentry

* extract p2p config out of sentry

* rebase devel

* rebase devel

* add bootnodes to sentry

* add bootnodes to sentry
2021-06-11 09:34:37 +01:00
Evgeny Danilenko
de26634d8d
TEVM status pruning (#2034)
* use trace for TEVM status

* restore testdata

* fix getting contract from plain state

* unwind

* linters

* reproducible build debug

* debug

* debug

* remove debug
2021-06-11 09:34:25 +01:00
Andrew Ashikhmin
d848685c8e
More tests for Intermediate Hashes: storage, extension node exclusion (#2128)
* Test trie_storage layout as well

* FromHex instead of Hex2Bytes

* TestAccountTrieAroundExtensionNode

* Expand TestAccountTrieAroundExtensionNode
2021-06-10 09:19:57 +01:00
Alex Sharov
77aba80d8b
fix p2p nodeName (#2129) 2021-06-10 08:53:06 +07:00
ledgerwatch
657a8b13df
Do not remove headers when unwinding (#2122)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-06-08 16:16:27 +01:00
Alex Sharov
338fc0df26
move snapshot config to constructor (#2121) 2021-06-08 09:43:41 +07:00
ledgerwatch
c2c63a3715
Clean up DefaultStages (#2114)
* Clean up DefaultStages

* Fix compile

* Fix compile

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-07 12:00:16 +01:00
ledgerwatch
73bb98f686
Move tests 6 (#2107)
* Move tests 6

* Compile fixes

* Fix lint

* Compile fixes

* Fix compile

* compile fixes

* Compile fix

* Fix consesus/clique

* Cleanup

* Add gas limit

* Print

* Prints

* More print

* Fix

* Reinstate TestGetBlockReceipts66

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-06 22:44:14 +01:00
Alex Sharov
35fd972a9e
move sync.Run() to kv (#2112)
* less objdb in tests

* move sync.Run to tx

* move

* move

* move
2021-06-06 10:32:55 +01:00
Artem Vorotnikov
231a130e2d
Remove remnants of silkworm integration (#2110) 2021-06-06 09:06:06 +01:00
Alex Sharov
5ba3ea162a
Simulated backend and genesis to kv (#2104)
* move to kv

* move to kv

* move to kv

* move to kv

* move to kv

* move to kv

* merge

* merge

* merge

* merge

* merge

* merge

* merge

* merge
2021-06-05 16:17:04 +01:00
ledgerwatch
f7fc4d66ec
Move tests 5 (#2069)
* Remove silkworm and reader builders

* Switch tests

* Stop from hanging

* Update tests to 9.0.0

* Move tests back

* Moving code around

* Fix lint

* More fixes

* Intermediate

* Fix compile

* Fix compile errors

* Compile errors

* Fix lint

* Comment out more printing

* More simplifications

* Compile fixes

* Compile fix

* More replacements

* More fixes

* More muddling through

* lint

* Exclude dao split test

* Restore sidechains after unwind

* Errors in senders stage, stopped in bodies stage

* Fix compile

* Fix compile

* Fix tests

* More fixes

* More fixes

* Code cleanup

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2021-06-05 11:00:21 +01:00
Alex Sharov
1f13f73045
up version of uint256 lib (#2082)
* eip 1559_tx_constraints

* eip 1559_tx_constraints

* return error on uint256 overflow

* up uint256 version

* merge master

* fix master

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2021-06-04 17:25:28 +01:00
Alex Sharov
eee871aedf
Add db label (later will add txpool db) (#2081)
* add db label - later will add txpool db

* move commit marker to kv_mdbx behind Chain label

* Update migrations.go

* clean

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2021-06-04 15:56:49 +01:00
Alex Sharov
70a404fe2e
fix master (#2098) 2021-06-04 21:12:29 +07:00
Alex Sharov
7cd8046c35
Enable p2p receipts (#2080)
* enable receipts

* enable receipts

* return error on uint256 overflow

* wait for subscription

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2021-06-04 14:33:10 +01:00
Alex Sharov
ccac3c6566
Add tx.Append method for ergonomic (#2088)
* close cursor

* stateless append

* stateless append

* faster pruning del and close cursor

* faster pruning del and close cursor

* less wrappers

* less wrappers

* less wrappers

* clean

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2021-06-04 14:32:48 +01:00
b00ris
66c7c669fb
Snapshot builder simplification (#2064)
* fix test

* get rid of ObjectDatabase

* sn_builder_prototype2

* save state

* save state

* integration step1

* fix lint

* fix

* fix test

* integrate migrator.finish

* fix lint

* fix build

* fix typo

* fix
2021-06-04 13:30:02 +01:00
Alex Sharov
38ba14a92a
faster pruning del and close cursor (#2087) 2021-06-04 13:26:26 +01:00
Artem Vorotnikov
3a86048af6
Remove block number from PlainStateWriter (#2091) 2021-06-04 11:13:19 +03:00
ledgerwatch
67d0a2d3ab
Reproduce and fix trace_filter index problem (#2084)
* Intermediate

* Test for trace_filter

* Clean up

* Clean up

* clean up

* More to the test

* Hack

* Block parameter

* Block parameter

* use mdbx

* Print number of records

* Print keys

* Print index records

* Print block numbers

* Print values in tracecallset

* Print some more

* More printing

* Print froms and tos

* Print startBlock and endBlock

* Tests and fixes

* Cleanup

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-04 09:09:57 +01:00
Alex Sharov
759af6a15d
cli param to enable eth65 and counfigure it's port (#2075)
* cli param to enable eth65

* save

* save
2021-06-02 08:43:24 +01:00
Andrew Ashikhmin
4ecd6e07ca
[Fix doc] Compute State Root Stage follows Hashed State Stage, not the other way round (#2073) 2021-06-01 19:12:10 +01:00
Alex Sharov
29fa1aa35a
sentry join streams (#2059) 2021-06-01 17:41:10 +07:00
ledgerwatch
26904a1851
Remove silkworm and reader builders (#2068)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-05-31 18:13:10 +01:00
Alex Sharov
a6dfafd5cd
rename headers to sentry (#2060) 2021-05-31 17:20:56 +07:00