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

Enable high concurrency with same ethereum account in different nodes #403

Closed
mikiquantum opened this issue Nov 5, 2018 · 1 comment
Closed

Comments

@mikiquantum
Copy link
Contributor

At the moment we are accessing tx_pool API to get the latest pending transactions per account, so we can increase the account nonce in high concurrency phases.
This has a major downside:

  • Rely on tx_pool API to be available by the ethereum client is incomplete as same eth account in different nodes sending txs at the same time will end up in stuck transactions anyway as one node cannot know about pending txs in another one in the tx pool. In addition this API is not exposed by the main ethereum client services like infura for reasons stated above.

We should propose a smarter state machine for requested transactions, that will:

  • Request (to the best of the network knowledge) txs uniquely without compromising concurrency at the centrifuge node level.
  • Allow resending txs when a nonce collision has been identified (if still applicable)
  • Update txs states in the centrifuge node based on uncaught events/timeouts ...
@mikiquantum
Copy link
Contributor Author

We can implement the first bullet point now from 1.8.21 go-ethereum version. Fixed by: ethereum/go-ethereum#2880

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

No branches or pull requests

2 participants