Commit Graph

146 Commits

Author SHA1 Message Date
alex.sharov
7e93a08155 Revert "save"
This reverts commit 5ad09bfef3.
2022-02-02 09:58:34 +07:00
alex.sharov
5ad09bfef3 save 2022-02-02 09:58:16 +07:00
Alex Sharov
304b40dd0a
Snapshot: prohibit to change cli flags (#3311) 2022-01-22 11:18:24 +07:00
Michelangelo Riccobene
89258fe24f
Enable Sentry to send "peer disconnected" event (#3317) 2022-01-21 10:50:48 +00:00
Alex Sharov
1e3228124a
Move cli root context to erigon-lib (#3294)
* save

* save

* save
2022-01-19 10:49:07 +07:00
Alex Sharov
d8aa5d2d86
[wip] penalize peer for invalid rlp (#3232)
* save

* log

* save
2022-01-13 14:45:23 +00:00
Alex Sharov
4ef541f5dc
Snapshots: tx lookup in RPC from snapshots (#3214) 2022-01-07 20:52:38 +07:00
Alex Sharov
156287a982
Sanity check p2p block (#3197) 2022-01-04 15:46:22 +07:00
ledgerwatch
3ac87a07d5
Downgrade messages to Debug (#3139)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-12-16 23:39:06 +00:00
ledgerwatch
feb79883ac
Txpool: broadcast transaction along with announcements (#3135)
* Txpool: broadcast transaction along with announcements

* Fix panic

* Add TransactionMsg

* Change terminology in the logs

* Fixes from erigon-lib

* Rebroadcast txs promoted to pending subpool

* Deduplicate promoted hashes, fix basefee promotion

* Make sending more resilient, fix promoted

* Split Broadcast and Announce

* Downgrade to Debug messages

* Limit number of retries in SendMessageByMinBlock

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-12-16 22:32:05 +00:00
Alex Sharov
ecb10e8548
Snapshots download and seed (#3117)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* Squashed 'interfaces/' content from commit e5b1945d0

git-subtree-dir: interfaces
git-subtree-split: e5b1945d02da7a7f00e2289034ee90a6edd60184

* 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-12-14 10:13:17 +00:00
Giulio rebuffo
23b3c1d9bc
Added reversed for proof-of-stake syncing (#3092)
* reverse sync slow but working

* progress

* p

* close request

* backwards refactoring

* cleanup 1

* added RequestAssembler

* remove trash code and spaghetti

* efficient

* fix

* refactor

* tf

* refact

* final refactoring

* headers forward restored

* test fixed

* make CI happy

* resolved comments

* not using insertList anymore

* oops

* better collectors

* removed debug config

* avoid pointers

* added sleep

* use of channels

* sleeping

* added logs for ETL

* added more cleanup

* correct glacier

* some refactoring

* maxRequests

* tweaks

* config.go

* config conflicts

* renamed functions
2021-12-13 17:46:15 +01:00
ledgerwatch
5413a4db91
Header download simplifications (#3106)
* Header download simplifications

* Fixes

* Reuse headerRaw for inserting into DB

* Fix tests

* Fix test

* Revert to the loop in RequestMoreHeaders

* Change Warn to Debug

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-12-10 07:04:04 +00:00
primal_concrete_sledge
d89e5d2603
Issue/2710 add grpc health check (#3091)
* ISSUE-2710: Add standard grpc health check to services with grpc server

* Go import changed files

* Add flags for healthcheck

* Add grpc healthcheck option to rpcdaemon

* Remove grpc port info if grpc is not enabled

* Resolve merge issues
2021-12-06 12:03:46 +00:00
Giulio rebuffo
918c42ce20
Dropped more ETH65 Code (#3094)
* dropped more eth65 code

* dropped more eth65 code
2021-12-06 08:46:18 +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
TBC Dev
2f0758e817
ChainSegment efficiency (#3042)
* De-dup blockHeaders66() and blockHeaders65()

* Simplify loops and EOL detection

* Add ChainSegmentHeader struct and refactor

* Add RawRlpHash() to avoid re-encode for header hash

* Avoid multiple redundant rlpHash()

* Sort headers by height,hash to make dups consecutive

* Flip condition to reduce map lookups

* Remove redundant check

* Use rlp.RawValue rather than []byte to help self-document
2021-11-27 17:28:17 +00:00
TBC Dev
905818f4e2
Simplify SentPeers replies (#3028) 2021-11-24 17:17:08 +00:00
Alex Sharov
67c49cf1c3
Pool: support multi sentry (#3030)
* save

* save

* save

* save

* save

* save

* save

* save
2021-11-24 17:15:14 +00:00
Alex Sharov
9d46c80046
save (#3031) 2021-11-24 17:09:14 +00:00
TBC Dev
8b4bc39e5d
Fix atomic peer height update (#3019) 2021-11-22 18:40:57 +00: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
Dmitry Savelev
77a31a8b36
Fix Sentry server initialization (#3008) 2021-11-21 19:36:26 +00:00
TBC Dev
a902880e99
Refactor sentry peers (#2961) 2021-11-15 10:07:57 +07:00
TBC Dev
669b5dd3ab
Add trusted peers flag (#2958)
* Refactor and consolidate enode-list config parsing

* Add trustedpeers flag
2021-11-14 18:44:44 +07:00
TBC Dev
484c8eed91
Fix SendHeaderRequest peer minBlock (#2946) 2021-11-11 08:34:13 +00: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
Alex Sharov
4dbf025fb5
suppress some p2p errors (#2914)
* save

* save
2021-11-04 11:14:49 +00:00
alex.sharov
f1a493914f save 2021-11-04 16:05:33 +07:00
Alex Sharov
e6bd6fbfcc
Add p2p msg to panic (#2861) 2021-10-22 09:51:49 +07:00
Alex Sharov
752f76847d
propagate all promoted txs when add local tx (#2841) 2021-10-20 10:40:23 +07:00
Alex Sharov
64178ff80d
Checkpoint challenge timeout: remove td check after handshake (#2807)
* remove td check after handshake

* save
2021-10-10 22:14:50 +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
Alex Sharov
d61a9ad073
Pool v2: --txpool.pricelimit support (#2763) 2021-10-02 17:34:57 +07:00
e-danko
0c93c314d4
added Fermion network (#2737) 2021-09-29 08:35:43 +07:00
e-danko
7d338f5e1c
#2660: added Kovan network (#2733) 2021-09-27 19:56:17 +07:00
Alex Sharov
400c71b7ce
Pool: txID-based cache (#2697) 2021-09-17 10:31:20 +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
a3cd1d3df4
fix sentry forks slice race (#2676) 2021-09-13 13:54:12 +07:00
Alex Sharov
d7c929411b
fix sentry discover race (#2675) 2021-09-13 13:39:48 +07:00
Eugene
4bd8721d49
sentry/download: (#2672)
*Use atomics for `PeerInfo.Height()` and `PeerInfo.SetHeight(uint64)`
2021-09-12 17:51:15 +07: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
Alex Sharov
b5a6046fc3
sentry peerInfo race (#2666) 2021-09-11 16:12:03 +01: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
Zachinquarantine
5e713d6da6
Remove calaveras testnet (#2600)
* Remove calaveras

* Remove Calaveras testnet
2021-09-01 08:16:30 +07:00
Alex Sharov
caa1122dd3
consuming is slow (#2580) 2021-08-25 09:07:50 +07:00
Alex Sharov
289e434b87
Pool: senders cache object, reject known tx before senders recover, fix lock contention (#2562)
* save

* save
2021-08-21 08:25:42 +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
Andrea Lanfranchi
00d627bdb0
Remove config.name (const "erigon") from paths (#2531)
* Remove config.name (const "erigon") from paths

* Fix unit test

* Safety check

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-08-18 16:24:03 +07:00
Alex Sharov
6c7edb0d34
state diff send to txpool (#2532) 2021-08-17 15:52:55 +07:00
Alex Sharov
5278ef4224
experimental: txpool cmd (#2530)
* save

* sentry handshake

* move sentry clients to erigon-lib

* move sentry clients to erigon-lib

* move sentry clients to erigon-lib

* move sentry clients to erigon-lib

* correct grpc retry

* correct grpc retry

* correct grpc retry

* save

* save

* save

* save
2021-08-14 20:47:11 +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
ledgerwatch
1135e2b4fb
[sentry] Enforce max protocol version as well as min protocol version (#2525)
* Print data

* E

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-08-13 16:51:18 +01: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
Alex Sharov
d617fca739
remove devp2p cmd - if we will support it then need do it in another repo (because it depends on account manager). (#2496)
* up cobra lib

* remove devp2p cmd - if we will support it then need do it in another repo (because it depends on account manager).
2021-08-08 09:17:08 +07:00
Richard Patel
7767b4df88
rpcdaemon: add txpool_status() (#2407)
perfecto
2021-08-06 09:45:44 +07:00
Alex Sharov
6bd44eb26c
move kv to erigon-lib (#2467) 2021-07-29 18:53:13 +07:00
Alex Sharov
5069558752
Apache licensed logger (#2460) 2021-07-29 17:23:23 +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
054581f507
staged syncs automatically add error prefix about stage number and name (#2445) 2021-07-26 13:19:01 +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
031b0b177e
remove mutexes use (#2406) 2021-07-20 15:34:11 +07:00
Alex Sharov
499b5ce6ce
remove reader/writer builder (#2386)
* remove builder

* remove builder
2021-07-17 13:38:53 +07:00
Alex Sharov
c9e4e0bd3d
broadcast local txs (#2354) 2021-07-15 11:17:48 +07:00
alex.sharov
a389cb0a00 hide "peer not found" err 2021-07-15 09:40:07 +07:00
Alex Sharov
855e9220fa
print better log (#2358) 2021-07-13 18:03:32 +07:00
ledgerwatch
336515124b
Sentry handshake fix (?) and not overwriting statusData with zero block (#2355)
* Not overwrite statusData from txpool status

* Report error when doing sentry handshake

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-07-13 10:33:04 +01:00
Alex Sharov
b38d3fc34b
don't print peer logs on shutdown (#2341) 2021-07-11 16:16:17 +07:00
Alex Sharov
188dfb14b8
txPool: propagate on peer connect (#2335) 2021-07-11 14:01:16 +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
4baad9f4b9
Sentry: better handshake (#2293) 2021-07-04 11:30:31 +07:00
Alex Sharov
b9be0cadad
don't stop iterate over peers on error (#2274) 2021-07-03 08:03:27 +01: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
Alex Sharov
ea81761991
enable private rpc by default in Erigon, better logs in the beginning (#2262) 2021-07-01 22:30:55 +01: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
Alex Sharov
59d05dc5fe
hide file exists err (#2218) 2021-06-22 11:09:45 +01: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
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
ledgerwatch
535ce8fb9c
Try to solve sentry hanging problem + p2p impovement from geth (#2191)
* Try to solve sentry hanging problem + p2p impovement from geth

* Fix import

* Finer stream lock

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-18 12:47:46 +01:00
ledgerwatch
8a166204b4
Fix for peer not found messages (#2181)
* Fix for peer not found messages

* Print proto on disconnects too

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-06-16 17:18:19 +01:00
Alex Sharov
dcf850dd75
fix fieldalignment linter warnings (#2171) 2021-06-16 11:00:35 +07: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
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
Alex Sharov
eedabfca85
txpool_content (#2127)
* txpool_content

* txpool_content

* txpool_content

* txpool_content

* Squashed 'interfaces/' content from commit 1e916d013

git-subtree-dir: interfaces
git-subtree-split: 1e916d0137aff7bd9e9356cc203cea5f0ea9c7f1

* add test

* add test

* add test

* merge devel

* save
2021-06-11 09:34:47 +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
Alex Sharov
77aba80d8b
fix p2p nodeName (#2129) 2021-06-10 08:53:06 +07:00
Alex Sharov
40eaf77eb8
Sokol genesis and chainconfig (#2116)
* sokol init

* test

* precompiles

* precompiles

* add code

* sokol test

* save

* save

* save

* save

* save

* save
2021-06-07 12:01:54 +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
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
50dd17f36c
switch from baikal to calaveras (#2078) 2021-06-02 08:42:52 +01:00
Alex Sharov
29fa1aa35a
sentry join streams (#2059) 2021-06-01 17:41:10 +07:00
Alex Sharov
a6dfafd5cd
rename headers to sentry (#2060) 2021-05-31 17:20:56 +07:00