Commit graph

16448 commits

Author SHA1 Message Date
Pratik Patil
d53c2e7902
Block stm miner dependency (#561)
* added support for dependencies (executor_tests)

* added a function to get dependency map

* getting all dependencies in the GetDep function

* updated GetDep function

* changed the type of AllDeps

* added a function to get dependency map

* updated GetDep function

* generate and get dependencies from block producer

* optimized getDep function

* bug fix regarding txn index and dep structure

* fixed gas bug

* optimized getDep function

* tests updated/added

* few updates regarding dependencies

* added channel to calculate the dependencies in a separate go routine

* minor changes in the executor which uses latest changes of dependecies + removed metadata flag/argument

* Use channel when metadata is available

* small bug fix

* getting reads and writes only when the transaction succeeds

* fixed bug in adding dependencies

* updated logic for delay/not delay

* bug fix (shouldDelayFeeCal) in parallel state processor

* lint fix

* using EnableMVHashMap flag

* fixed worker and stateProcessor and removed SetMVHashMapNil fumction from stateDB

* addredded few comments and fixed bug in executor tests

* commented executor tests with metadata (panic: test timed out after 5m0s)

* added a check to check len(mvReadMapList) > 0 in miner

* addressed comments, minor refactoring in dag.go

* moved blockContext out of Execute and adding it in execution task

* removed Author() from Settle() and added  in execution task

* not calling block.Header() again and again, using  instead

* removed EnableMVHashMap flag, and updated applyTransaction function

* addressed comments

* added unit test to check dependencies in the block header

Co-authored-by: Jerry <jerrycgh@gmail.com>
2022-12-23 09:14:09 +05:30
Arpit Temani
4aa56c543a
Merge pull request #627 from builder90210/faster_tx_fetch
Reduce txArriveTimeout to 100ms
2022-12-22 11:54:55 +05:30
rjl493456442
01808421e2
core/state: return error when storage trie can't be opened (#26350)
This changes the StorageTrie method to return an error when the trie
is not available. It used to return an 'empty trie' in this case, but that's
not possible anymore under PBSS.
2022-12-21 10:21:21 +01:00
Martin Holst Swende
b818e73ef3
tests: update tests (#26314)
This PR builds on #26299, but also updates the tests to the most recent version, which includes tests regarding TheMerge.

This change adds checks to the beacon consensus engine, making it more strict in validating the pre- and post-headers, and not relying on the caller to have already correctly sanitized the headers/blocks.
2022-12-20 09:56:52 -05:00
SHIVAM SHARMA
d8fcda36f3
Merge pull request #640 from maticnetwork/shivam/POS-1041
Shivam/pos 1041
2022-12-20 17:49:01 +05:30
Shivam Sharma
7b52c93c1b chg : logging strings 2022-12-20 11:39:11 +05:30
Shivam Sharma
513127cd8f chg : use standard logging 2022-12-20 10:54:03 +05:30
Shivam Sharma
828801f9d8 lint : fix linters 2022-12-19 18:36:10 +05:30
Shivam Sharma
43cafc0415 add : multiple keystore tolerance 2022-12-19 18:08:18 +05:30
rjl493456442
79a478bb61
core/rawdb: implement resettable freezer (#26324)
This PR implements resettable freezer by adding a ResettableFreezer wrapper.

The resettable freezer wraps the original freezer in a way that makes it possible to ensure atomic resets. Implementation wise, it relies on the os.Rename and os.RemoveAll to atomically delete the original freezer data and re-create a new one from scratch.
2022-12-19 04:59:12 -05:00
rjl493456442
d3411b9f67
trie: wrap deletion in case trie.root is nil (#26365)
This PR fixes an error in trie commit. If the trie.root is nil, it can be two possible scenarios:

-  The trie was empty, and no change happens
-  The trie was non-empty and all nodes are dropped

For the latter one, we should collect the deletions and apply them into database(e.g. in PBSS).
2022-12-19 04:56:13 -05:00
Shivam Sharma
9cba79edee init : remove exit on keystore err 2022-12-19 13:57:18 +05:30
Daniel Jones
205930ef30
Merge pull request #639 from maticnetwork/djpolygon/3.2-beta_control
Bumping control file versions
2022-12-18 20:44:03 -06:00
Daniel Jones
b7b15456fb Bumping control file versions 2022-12-18 17:27:49 -06:00
Felix Lange
f53ff0ff4a
eth/filters, eth/tracers: add request cancellation checks (#26320)
This ensures that RPC method handlers will react to a timeout or
cancelled request soon after the event occurs.


Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2022-12-15 07:52:07 -05:00
Arpit Temani
7217f79767
Merge pull request #630 from maticnetwork/arpit/master-to-qa
RPC fix for coinbase address
2022-12-15 14:40:33 +05:30
Jerry
9b2407a58f Minor wording fix in prune state description 2022-12-14 21:49:11 -08:00
Jerry
b7ed9de45b Add state pruning to new CLI 2022-12-14 15:49:43 -08:00
Daniel Jones
5eebbfa307
Merge pull request #634 from maticnetwork/djpolygon/packagerDepUpdate
Djpolygon/packager dep update
2022-12-14 13:43:55 -06:00
Arpit Temani
660677b646 Merge branch 'master' of github.com:maticnetwork/bor into arpit/master-to-qa 2022-12-14 23:26:01 +05:30
Daniel Jones
2e45f3badc Updating packager as binutils changed version so that apt-get installs current versions 2022-12-14 11:06:17 -06:00
Jerry
5e145283c1
Merge pull request #632 from cffls/master
Add default values to CLI helper and docs
2022-12-14 07:50:22 -08:00
Ikko Ashimine
f51f6edb40
core: fix typo in blockchain_snapshot_test.go (#26357)
correspnding -> corresponding
2022-12-14 11:48:12 +02:00
Martin Holst Swende
502fa829a6
signer/core: handle gnosis safe problem with missing chain id (#26309)
This PR adds a check that the safetxhash that we sign corresponds to the one that is expected by the input. If it differs, it tries again with the configured chainid.
2022-12-14 04:33:57 -05:00
Jerry
ddf1a4db8c Add a summary of new CLI in docs 2022-12-13 23:46:43 -08:00
Jerry
a37af35c36 Add default values to CLI helper and docs
This commit adds default values to CLI helper and docs. When the default value of a string flag, slice string flag, or map string flag is empty, its helper message won't show any default value.
2022-12-13 23:23:10 -08:00
Arpit Temani
b1776698cf Merge branch 'arpit/master-to-qa' of github.com:maticnetwork/bor into arpit/master-to-qa 2022-12-14 01:00:09 +05:30
Arpit Temani
7364f940ba revert change for release for go1.19 2022-12-14 00:59:54 +05:30
Arpit Temani
a8eb21f80d
Merge pull request #631 from maticnetwork/manav/revert-pos-533
Revert "Adding correct miner address on API at the RPC level (POS-553)"
2022-12-14 00:49:19 +05:30
Arpit Temani
0b89983fa4 merge latest master to qa 2022-12-14 00:46:19 +05:30
Manav Darji
6d11117edc Revert "Merge pull request #435 from maticnetwork/POS-553"
This reverts commit 657d262def, reversing
changes made to 88dbfa1c13.
2022-12-14 00:44:01 +05:30
Arpit Temani
b7f37c7ce3
Merge pull request #603 from maticnetwork/arpit/v0.3.1-mumbai-candidate
v0.3.1 mumbai candidate
2022-12-14 00:43:26 +05:30
Martin Holst Swende
fa97788c75
eth/tracers/native: fix possible crash in prestate tracer (#26351) 2022-12-13 08:32:29 -05:00
rjl493456442
cda051eba7
core, cmd: fill blockNumber in logs (#26345)
* core, cmd: fill blockNumber in logs

* Update core/state/statedb.go

Co-authored-by: Martin Holst Swende <martin@swende.se>

* core/types: revert

* core/state: improve comments

Co-authored-by: Martin Holst Swende <martin@swende.se>
2022-12-13 07:54:16 -05:00
Alex Stokes
250a80a50e
core: fix comment about recipient for contract creation (#26349)
A comment suggests that contract creation happens if the recipient of a call is 0x00..00 ("zero address") but in fact the sender must be nil. The zero address is a regular valid address that is commonly used as a "burn" address.
2022-12-13 03:33:40 -05:00
builder90210
243d231fe4 Reduce txArriveTimeout to 100ms 2022-12-12 22:43:29 -08:00
Arpit Temani
19fe8b41d2
Merge pull request #546 from maticnetwork/block-commit-stats
Add logs for transactions while committing a block
2022-12-12 13:31:35 +05:30
SHIVAM SHARMA
b1d86bd6ea
Shivam/txpool tracing (#604)
* lock, unlock to rlock, runlock

* add : tracing Pending() and Locals()

* Log time spent in committing a tx during mining

* Remove data from logging

* Move log into case where a tx completes without error

* profile fillTransactions

* fix conflict

* bug fixes

* add logs

* txpool: add tracing in Pending()

* rearrange tracing

* add attributes

* fix

* fix

* log error in profiling

* update file mode and file path for profiling

* full profiling

* fix log

* fix log

* less wait

* fix

* fix

* logs

* worker: use block number for prof files

* initial

* txList add

* fix gas calculation

* fix

* green tests

* linters

* prettify

* allocate less

* no locks between pending and reorg

* no locks

* no locks on locals

* more tests

* linters

* less allocs

* comment

* optimize errors

* linters

* fix

* fix

* Linters

* linters

* linters

* simplify errors

* atomics for transactions

* fix

* optimize workers

* fix copy

* linters

* txpool tracing

* linters

* fix tracing

* duration in mcs

* locks

* metrics

* fix

* cache hit/miss

* less locks on evict

* remove once

* remove once

* switch off pprof

* fix data race

* fix data race

* add : sealed total/empty blocks metric gauge

* add : RPC debug_getTraceStack

* fix : RPC debug_getTraceStack

* fix : RPC debug_getTraceStack for all go-routines

* linters

* add data race test on txpool

* fix concurrency

* noleak

* increase batch size

* prettify

* tests

* baseFee mutex

* panic fix

* linters

* fix gas fee data race

* linters

* more transactions

* debug

* debug

* fix ticker

* fix test

* add cacheMu

* more tests

* fix test panic

* linters

* add statistics

* add statistics

* txitems data race

* fix tx list Has

* fix : lint

Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
2022-12-12 12:34:02 +05:30
Arpit Temani
469bd2918c add ignore rule for net/http2 2022-12-12 12:26:12 +05:30
Arpit Temani
f261c933d5 upgrade grpc version 2022-12-12 12:07:27 +05:30
Arpit Temani
a75eb71e48 fix linters 2022-12-12 02:52:50 +05:30
Arpit Temani
abed2a501a Merge branch 'develop' of github.com:maticnetwork/bor into block-commit-stats 2022-12-12 02:48:55 +05:30
Michael de Hoog
262bd38fce
eth/tracers: return proper error from debug_TraceTransaction when tx not found (#26211)
Currently calling `debug_TraceTransaction` with a transaction hash that doesn't exist returns a confusing error: `genesis is not traceable`. This PR changes the behaviour to instead return an error message saying `transaction not found`

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2022-12-10 08:34:43 -05:00
Felix Lange
3775e198df
event: add FeedOf[T] (#26310)
This PR adds a new type event.FeedOf[T], which is like event.Feed but parameterized
over the channel element type. Performance is unchanged, and it still uses reflect. But
unlike Feed, the generic version doesn't need to type-check interface{} arguments.
All panic cases are gone from the API.
2022-12-09 16:20:46 +01:00
Felix Lange
3315bad256
core: pass block into collectLogs (#26335)
While investigating another issue, I found that all callers of collectLogs have the
complete block available. rawdb.ReadReceipts loads the block from the database,
so it is better to use ReadRawReceipts here, and derive the receipt information using
the block which is already in memory.
2022-12-09 16:14:33 +01:00
Sina Mahmoodi
711afbc7fd
core,eth: add debug_setTrieFlushInterval to change trie flush frequency (#24785)
This PR makes it possible to modify the flush interval time via RPC. On one extreme, `0s`, it would act as an archive node. If set to `1h`, means that after one hour of effective block processing time, the trie would be flushed. If one block takes 200ms, this means that a flush would occur every `5*3600=18000`  blocks -- however, if the memory size of the cached states grows too large, it will flush sooner. 

Essentially, this makes it possible to configure the node to be more or less "archive:ish", and without restarting the node while reconfiguring it.
2022-12-09 07:40:17 -05:00
rjl493456442
890e2efca2
eth, cmd: remove syncTarget from eth config (#26330)
--syncTarget is a feature for development purpose in post-merge world. Previously
it's added into eth.Config. But it turns out that's a stupid idea.

- syncTarget is a block object, which is hard to be put in config file(large)
- syncTarget is just a dev feature, doesn't make too much sense to add it in config file

So I remove it from the eth config object. And it also fixes the #26328
2022-12-08 14:40:43 +01:00
zhiqiangxu
a9dfac0332
p2p/discover: improve nodesByDistance.push code (#26019)
This improves readability of function 'push'.

sort.Search(N, ...) will at most return N when no match, so ix should be compared
with N. The previous version would compare ix with N+1 in case an additional item
was appended. No bug resulted from this comparison, but it's not easy to understand
why.

Co-authored-by: Felix Lange <fjl@twurst.com>
2022-12-07 23:31:47 +01:00
Sina Mahmoodi
6891288787
core: fix state flushing for catalyst mode (#26319)
The gcproc field tracks the amount of time spent processing blocks,
and is used to trigger a state flush to disk when a certain threshold is
reached. After the merge, single block insertion by CL is the most
common source of block processing time, but this time was not added
into gcproc.
2022-12-07 17:36:54 +01:00
Seungbae Yu
42212808f0
p2p/nat: handle responses with alternative port in NAT-PMP (#26321)
Co-authored-by: Felix Lange <fjl@twurst.com>
2022-12-07 16:22:04 +01:00