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

Fix transaction route #2115

Closed
Qiao-Jin opened this issue Dec 3, 2020 · 0 comments
Closed

Fix transaction route #2115

Qiao-Jin opened this issue Dec 3, 2020 · 0 comments
Labels
discussion Initial issue state - proposed but not yet accepted

Comments

@Qiao-Jin
Copy link
Contributor

Qiao-Jin commented Dec 3, 2020

Summary or problem description
This is an issue similar to #1667. Currently incoming transactions will be handled in the following steps:

(1) Deserialized by RemoteNode

(2) Sent to Blockchain, check whether it's within mempool

(3) Sent to TransactionRouter to check witness

(4) Sent to Blockchain again to check fee, whether it's within mempool, and added to mempool

There are 2 porblems:

(1) There is a circled stream from step (2) to (4). Blockchain is called twice which would cause TPS drop.

(2) Func ContainsTransaction is called twice for a single transaction in step (2) and (4)

Do you have any solution you want to propose?

A new scenario for incoming transactions:

(1) Deserialized by RemoteNode

(2) Sent to TransactionRouter to check witness

(3) Sent to Blockchain to check fee, whether it's within mempool, and added to mempool

Neo Version

  • Neo 3
@Qiao-Jin Qiao-Jin added the discussion Initial issue state - proposed but not yet accepted label Dec 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Initial issue state - proposed but not yet accepted
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants