Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1545 second half #2075

Open
wants to merge 57 commits into
base: v4.0.0
Choose a base branch
from
Open

1545 second half #2075

wants to merge 57 commits into from

Conversation

kladkogex
Copy link
Collaborator

@kladkogex kladkogex commented Jan 13, 2025

Description

  1. Rewrote Unddos and stats implementation with a way simpler one since the previous one had lots of bugs and deadlocks.
    The new Unddos impelementation does not use any locks and can not cause a deadlock.

  2. Made sure that tracing calls are only enabled when tracing is enabled, previously tracing was affecting performance even if disabled.

  3. When forming a block proposal from the pending queue, If two transactions have the same gas price and height related to the current nonce, we currently give priority to the older transaction. Previously the behavior was undefined, so old transactions could stay in the pending queue for a long time.

Tests

There are now performance tests for all major read calls such as eth_call and eth_getBlock, as well as performance tests for transaction submission

The performance drastically improved.

@DmytroNazarenko DmytroNazarenko added this to the SKALE 4.0 milestone Jan 16, 2025
@kladkogex kladkogex self-assigned this Jan 22, 2025
@kladkogex kladkogex changed the title 1545 second half - DRAFT - DONT REVIEW YET! 1545 second half Feb 12, 2025
@@ -950,8 +950,8 @@ ImportRoute BlockChain::insertBlockAndExtras( VerifiedBlockRef const& _block,
}
pieceUsageBytes += writeSize;

LOG( m_loggerInfo ) << "Block " << tbi.number() << " DB usage is " << writeSize
<< ". Piece DB usage is " << pieceUsageBytes << " bytes";
LOG( m_loggerDetail ) << "BLOCK_DB+" << writeSize << ". Piece DB usage is " << pieceUsageBytes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this information may be used by qa team or monitoring service. we need to make sure that moving this log to a different log level doesn't break anything

@@ -2454,18 +2456,30 @@ int main( int argc, char** argv ) try {
// unddos
if ( joConfig.count( "unddos" ) > 0 ) {
nlohmann::json joUnDdosSettings = joConfig["unddos"];
clog( VerbosityInfo, "main" ) << "DDOS config :" << joConfig["unddos"].dump();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we keep this log? it dumps the entire ddos config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cleanup state locking and make JSON RPC calls like eth_call faster
3 participants