Commit Graph

769 Commits

Author SHA1 Message Date
Alex Sharov
993fde4d92
E3: par logs (#5839) 2022-10-23 18:51:14 +07:00
Alex Sharov
606ce5c99a
add logging cli flags to various cmd (#5816) 2022-10-21 12:36:17 +07:00
Levi Aul
e85d4b76aa
Return bor receipts correctly in getTransactionReceipt and getBlockReceipts (#5787)
Fixes a nil-pointer dereference in Decode when attempting to call
`getTransactionReceipt` / `getBlockReceipts` on blocks containing
stateSync events.
2022-10-20 19:25:46 +01:00
Max Revitt
07ffa36d44
File system logging (#5812)
- lives in internal/logging
- all log flags moved to internal/logging/flags
- allows continued use of root logger via log.Info etc.
- update logger to take change allowing string to lvl for 'trace'

Verbosity flag is overridden by log.console.verbosity. Logs will be
colocated if all run as one process, only split where progs are run as
separate processes, in a future update this will be addressed so for
example rpcdeamon will always log to it's own file
2022-10-20 19:25:06 +01:00
a
d697b6fe7c
large performance optimization for filterLogs (getLogs) when doing queries with many addresses and logs. (#5805)
this pr changes filterLogs to use a pre computed hashset of addresses,
instead of iterating across the list of addresses once per log.

this greatly increases the speed of filter queries that use many
addresses and also return a large number of logs. In our case, we are
performing a query for all the trades performed in a uniswap v3 pool in
a 250 block range.
 
my benchmarks were performed with the data & code below:
 
address list gist is here
[addrs](2c30b0df43/gistfile1.txt)

 ```
 c := NewRpcClient()
 addrs := []common.Address{AddressListGist}
logs, err := c.FilterLogs(context.TODO(), ethereum.FilterQuery{
	FromBlock:big.NewInt(15640000),
	ToBlock:   big.NewInt(15640250),
	Addresses: addrs,
	Topics: [][]common.Hash{
		{

common.HexToHash("c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67"),
		},
	},
```
the query contains 8442 addresses, while the response contains 1277 logs

On average, current devel averages a 15.57 second response time on my machine after 10 runs, while the new filterLogs averages 1.05 seconds.

for CURRENT DEVEL, the profile is here: https://pprof.aaaaa.news/cd8dkv0tidul37sctmi0/flamegraph 

for the filterLogs branch, the profile is here: https://pprof.aaaaa.news/cd8dlmgtidul37sctmig/flamegraph

while the tests pass with this branch, I am not really sure why filterLogs was originally programmed the way it was. Is there some sort of edge case / compatibility thing that I am missing with this change?

Co-authored-by: a <a@a.a>
2022-10-20 17:34:20 +07:00
Alex Sharov
14493d5a8d
e3: eth_getLogs fix (#5780) 2022-10-18 14:42:00 +07:00
Alex Sharov
dcf6216591
e3: tests (#5779) 2022-10-18 13:06:25 +07:00
Alex Sharov
c6faa9fca3
e3: tests (#5776) 2022-10-18 11:53:54 +07:00
Alex Sharov
b8dbb53d3b
e3: write history and indices to etl (#5742) 2022-10-15 08:20:58 +07:00
Enrique Jose Avila Asapche
81cec4dd68
checking if bor log (#5739)
Fixing this err= ```EROR[10-13|08:27:56.405] RPC method eth_getLogs
crashed: runtime error: index out of range [289] with length 289
[service.go:217 panic.go:838 panic.go:93 eth_receipts.go:222
value.go:556 value.go:339 service.go:222 handler.go:494 handler.go:444
handler.go:392 handler.go:223 handler.go:316 asm_amd64.s:1571]```
2022-10-13 22:14:50 +01:00
Alex Sharov
b12b0d4627
e3: history bsc and mainnet snapshots (#5725) 2022-10-13 09:46:32 +07:00
Alex Sharov
4795217e4e
e3: prevent files ranges overlap (#5684) 2022-10-12 10:18:55 +07:00
net.wyman
00276ce7ab
add pendingTransactionWithBody subscription method (#5675)
Co-authored-by: dc <dctrlbox@gmail.com>
2022-10-11 16:52:07 +01:00
Alex Sharov
a2e51a2469
e3: prune limited amount before commit #675 (#5693) 2022-10-11 11:25:13 +07:00
ledgerwatch
1bc0a796d2
fix for rpcdaemon crash if there is no datadir (#5686)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-10-10 12:40:21 +01:00
Alex Sharov
ee76a4f490
e3: getLogsV3 fix history txnum (#5676) 2022-10-09 18:29:35 +07:00
Alex Sharov
6a52007c69
e3: always created dir (#5638) 2022-10-06 09:18:37 +07:00
Alex Sharov
ca9aa4723c
Compress params change (#5631)
as of https://github.com/ledgerwatch/erigon-lib/pull/651
2022-10-05 17:54:54 +07:00
Alex Sharov
2011dd806a
erigon3: fix stuck test (#5629) 2022-10-05 12:54:31 +07:00
ledgerwatch
94f4ea805d
Fixing hive SideChain reorg test (#5620)
the root cause is that when `inMemoryExecution` lambda gets created in
the `eth/backend.go`, it captures the reference of
`backend.notifications`, and so the execution of side-forks actually
adds notifications to there, and it all gets sent out to tx pool (and
RPC daemon) at the end of the stage loop (regardless of whether there
was forkchoice update or not)

so we can create a separate notification, but then somehow flush it to
the "main" nofitications when the in-memory exec state is flushed

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2022-10-05 05:42:38 +01:00
Alex Sharov
afcd605fc5
remote rpcdaemon to create snapshots/history dir at startup #5594 2022-10-02 14:48:26 +07:00
Alex Sharov
37f76c9a9e
bitmapdb (#5593) 2022-10-02 10:54:40 +07:00
a
7c8b3c2ba1
[rpcdaemon] greatly increase speed of {eth,erigon}_getLogs (#5572) 2022-10-02 10:51:19 +07:00
Alex Sharov
1b17a3226a
agg print stats at startup (#5586) 2022-10-01 09:29:28 +07:00
Enrique Jose Avila Asapche
c2a1558923
changed erigon logs fields (#5476)
* changed erigon logs fields

* lint

* Update erigon_receipts.go (#5485)

* lint

Co-authored-by: a <edward9.lee@gmail.com>
2022-09-28 20:46:42 +01:00
Enrique Jose Avila Asapche
f4c6e45f45
returning validator in POS trace (#5477) 2022-09-28 20:45:52 +01:00
Håvard Anda Estensen
23d21f3b44
Enable unconvert linter (#5566) 2022-09-28 15:10:38 +01:00
bgelb
c28b1d230b
run traceCall on top of state resulting from fully executed baseblock a.k.a. starting state of blockNumber+1 (#5555) 2022-09-28 08:30:58 +01:00
Alex Sharov
6d07443ca5
erigon3: remote rpcdaemon used wrong agg dir #5562 2022-09-28 12:36:53 +07:00
Enrique Jose Avila Asapche
a968c7ed5b
cleaned up storage and retrieval of state sync receipts (#5379)
* cleaned up storage and retrieval of state sync receipts

* added ctx to the error and got rid of unused var

* missing one

* small change

* log error

* ops

* read header number

* checking if status is succesful

* nil ptr err
2022-09-27 11:39:58 +01:00
Alex Sharov
4c2611c03e
erigon3: eth_getLogs support logIndex field (#5544) 2022-09-27 16:08:45 +07:00
Alex Sharov
c64e7fe7ab
erigon3 test fix (#5522) 2022-09-26 13:34:46 +07:00
Alex Sharov
cb60382e6d
erigon3: rename "history.v2" to "history.v3" to avoid naming miss-match with "erigon3" (#5519) 2022-09-26 10:54:42 +07:00
Alex Sharov
fdb83de6f5
erigon22: authapi to use aggregator22 (#5506)
* save

* save
2022-09-26 09:09:30 +07:00
jiang
09db0c8d43
open erigon_blockNumber API (#5454)
open `erigon_blockNumber`  feature API that has been implemented
2022-09-21 19:30:01 +07:00
Alex Sharov
54343d1d69
save (#5439) 2022-09-20 13:09:24 +01:00
Alex Sharov
c782064582
erigon22: rpc fixes (#5437) 2022-09-20 14:01:54 +07:00
Enrique Jose Avila Asapche
e53fec1977
appending log into erigonLogs (#5419)
* appending log into erigonLogs

* Revert "appending log into erigonLogs"

This reverts commit 37ceb2fa3da156977bba764d7d9e77f27ae360d7.

* ops
2022-09-19 16:25:10 +03:00
Andrew Ashikhmin
775d4a225b
Don't check TerminalBlockHash in exchangeTransitionConfiguration (#5428) 2022-09-19 13:05:45 +02:00
Andrew Ashikhmin
7561a74af3
Remove terminal PoW block overrides (#5420) 2022-09-19 10:33:18 +02:00
Alex Sharov
9fb8a190bc
erigon22: folder snapshots/history (#5351) 2022-09-18 17:41:01 +07:00
Enrique Jose Avila Asapche
7b1bf44ce6
dont check for block reward or uncles if we are tracing POS (#5410)
* dont check for block reward or uncles if we are tracing POS

* comparing chainConfig to header difficulty

* fixed test

* difficulty == 0 then we are POS
2022-09-17 22:04:37 +01:00
ledgerwatch
43f592ed0e
Fixes for trace_block (#5402)
* Fixes for trace_block

* Print

* Print

* extra bodies

* extra bodies

* Add canonical check

* First fix for bodies mismatch

* More cleanup

* Advance progress

* Reset snapshots in integration

* Cleanup

* Way to reset snapshots stage

* Not reset sequence if not needed

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-09-17 12:53:27 +01:00
Temirlan
44266a9237
rcpdaemon, erigon: add --rpc.evmtimeout flag (#5395) 2022-09-17 13:25:27 +07:00
Amit Panghal
15ad43e100
fix trace_block response for post merge blocks (#5361)
* fix trace_block response for post merge blocks

* fix difficulty call

* fix types and other compile issues

* run go fmt
2022-09-15 12:20:41 +01:00
Enrique Jose Avila Asapche
0c64c3f2c7
added a way to get latest executed block post POS (#5343)
* added a way to get latest executed block post POS

* added erigon_ExecutedBlockNumber into readme

* optional rpc.BlockNumber

* better message

* updated readme
2022-09-14 13:56:31 +03:00
Alex Sharov
d1ddb5ee82
erigon22: fix txn overlap (#5327)
* save

* save
2022-09-10 11:26:58 +07:00
Chase
927f9e1c56
Add eth_callMany and debug_traceCallMany to README (#5319)
* Add eth_callMany to README

Should have been included in https://github.com/ledgerwatch/erigon/pull/4567

* Update README.md

* Update README.md
2022-09-09 11:18:23 +07:00
Igor Mandrigin
a0c80ccbee
Fix compatibility of eth_getBlockTransactionCountByHash (#5297)
* fix compatibility of eth_getBlockTransactionCountByHash

* fixup
2022-09-07 12:11:48 +07:00
Alex Sharov
25e615a878
erigon22: historyReader22 and more tests (#5281)
* save

* save
2022-09-05 21:31:00 +07:00