Skip to content

Conversation

@natanasow
Copy link
Member

@natanasow natanasow commented Oct 28, 2025

Description

The transaction pool (txpool) is where pending transactions reside before being submitted to a node. Current APIs require full-pool scans or repeated RPC calls to track transactions, creating unnecessary overhead and inconsistent results.

Adding txpool_* methods will improve observability, developer usability, and operational efficiency. Richer structured data, better filtering, and optimized access patterns will enable faster, more reliable insights into transaction states and mempool health.

Tasks:

  • Implement txpool_content
  • Implement txpool_contentFrom
  • Implement txpool_status

PS: more info can be found in the epic #4488 and in the design doc.

Related issue(s)

Fixes #4488

Testing Guide

Changes from original design (optional)

N/A

Additional work needed (optional)

N/A

Checklist

  • I've assigned an assignee to this PR and related issue(s) (if applicable)
  • I've assigned a label to this PR and related issue(s) (if applicable)
  • I've assigned a milestone to this PR and related issue(s) (if applicable)
  • I've updated documentation (code comments, README, etc. if applicable)
  • I've done sufficient testing (unit, integration, etc.)

natanasow and others added 30 commits September 30, 2025 13:52
…olService` interface (#4405)

Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: Simeon Nakov <simeon.nakov@limechain.tech>
Co-authored-by: Simeon Nakov <simeon.nakov@limechain.tech>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Co-authored-by: Nikolay Atanasow <n.atanasow94@gmail.com>
Signed-off-by: Simeon Nakov <simeon.nakov@limechain.tech>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Co-authored-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Co-authored-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
# Conflicts:
#	packages/relay/src/lib/precheck.ts
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
…dded a new log

Signed-off-by: Simeon Nakov <simeon.nakov@limechain.tech>
Signed-off-by: Konstantina Blazhukova <konstantina.blajukova@gmail.com>
Signed-off-by: Simeon Nakov <simeon.nakov@limechain.tech>
Base automatically changed from 4500-save-rlp-decoded-txn to main November 10, 2025 16:11
@natanasow natanasow dismissed stale reviews from simzzz and quiet-node November 10, 2025 16:11

The base branch was changed.

# Conflicts:
#	.env.http.example
#	.env.ws.example
#	docs/configuration.md
#	packages/config-service/src/services/globalConfig.ts
#	packages/relay/src/lib/relay.ts
#	packages/relay/src/lib/services/ethService/transactionService/TransactionService.ts
#	packages/relay/src/lib/services/transactionPoolService/LocalPendingTransactionStorage.ts
#	packages/relay/src/lib/services/transactionPoolService/RedisPendingTransactionStorage.ts
#	packages/relay/src/lib/services/transactionPoolService/transactionPoolService.ts
#	packages/relay/src/lib/types/transactionPool.ts
#	packages/relay/tests/lib/openrpc.spec.ts
#	packages/relay/tests/lib/services/nonceManagement/RedisPendingTransactionStorage.spec.ts
#	packages/relay/tests/lib/services/transactionPoolService/LocalPendingTransactionStorage.spec.ts
#	packages/relay/tests/lib/services/transactionPoolService/transactionPoolService.spec.ts
Signed-off-by: nikolay <n.atanasow94@gmail.com>
@github-actions
Copy link

github-actions bot commented Nov 11, 2025

Test Results

 20 files  ± 0  272 suites  +3   21m 37s ⏱️ -1s
791 tests +13  787 ✅ +14  4 💤 ±0  0 ❌  - 1 
807 runs  +13  803 ✅ +14  4 💤 ±0  0 ❌  - 1 

Results for commit fbff203. ± Comparison against base commit 7bf6405.

♻️ This comment has been updated with latest results.

Signed-off-by: nikolay <n.atanasow94@gmail.com>
simzzz
simzzz previously approved these changes Nov 11, 2025
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
@natanasow natanasow marked this pull request as ready for review November 11, 2025 15:06
@natanasow natanasow requested review from a team as code owners November 11, 2025 15:06
Copy link
Contributor

@quiet-node quiet-node left a comment

Choose a reason for hiding this comment

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

LGTM ready to approve after unused imports removal

Signed-off-by: nikolay <n.atanasow94@gmail.com>
@natanasow natanasow requested a review from quiet-node November 11, 2025 16:06
Copy link
Contributor

@quiet-node quiet-node left a comment

Choose a reason for hiding this comment

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

LGTM! Great work as always!

@natanasow natanasow merged commit 4a2706c into main Nov 12, 2025
66 of 67 checks passed
@natanasow natanasow deleted the 4488-add-txpool-related-rpc-methods branch November 12, 2025 07:40
@codecov
Copy link

codecov bot commented Nov 12, 2025

Codecov Report

❌ Patch coverage is 99.56897% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/relay/src/lib/txpool.ts 99.50% 0 Missing and 1 partial ⚠️
@@           Coverage Diff            @@
##             main    #4544    +/-   ##
========================================
  Coverage   95.41%   95.42%            
========================================
  Files         128      129     +1     
  Lines       20658    20888   +230     
  Branches     1762     1773    +11     
========================================
+ Hits        19711    19932   +221     
- Misses        928      936     +8     
- Partials       19       20     +1     
Flag Coverage Δ
config-service 98.82% <100.00%> (+<0.01%) ⬆️
relay 90.91% <95.41%> (+0.05%) ⬆️
server 88.85% <ø> (ø)
ws-server 98.04% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...ckages/config-service/src/services/globalConfig.ts 100.00% <100.00%> (ø)
packages/relay/src/index.ts 100.00% <100.00%> (ø)
packages/relay/src/lib/relay.ts 98.64% <100.00%> (+0.04%) ⬆️
packages/relay/src/lib/txpool.ts 99.50% <99.50%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[EPIC] Add txpool_* related RPC methods

5 participants