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

Wrong blocksizes and fees calculations for Monero #2

Open
Roman2K opened this issue Mar 8, 2024 · 6 comments
Open

Wrong blocksizes and fees calculations for Monero #2

Roman2K opened this issue Mar 8, 2024 · 6 comments

Comments

@Roman2K
Copy link
Collaborator

Roman2K commented Mar 8, 2024

[Cross-posting from this txstreet/txstreet issue by @HardenedSteel]

Buses are always loaded with maximum size even the transaction fees are not enough.

@Roman2K
Copy link
Collaborator Author

Roman2K commented Mar 8, 2024

Thanks @HardenedSteel for the report. Indeed prediction calculations for Monero seem wrong on various levels. I just watched 2 consecutive blocks (3100761 and 3100762) being filled and confirmed, with wrong sizes, number of transactions and fees distribution.

Both showed ~670 KB and ~70 transactions, with varying fees around the 20-320 Nanomonero range).
Both ended up confirmed with ~330 KB and ~210 transactions, with fees ranging 31-22817 Micromonero (note: micro not nano).

That said, buses being all fully loaded, does seem correct despite their contents being wrong. Though there should be a third as many lined up.

Suggestions, ideas or PRs are welcome 🙏


Other reports of flawed calculation:

@HardenedSteel
Copy link

This Python code can help: https://github.com/spackle-xmr/Dynamic_Block_Demo

@Roman2K
Copy link
Collaborator Author

Roman2K commented Mar 9, 2024

Nice, thanks!

Another cool project with charts: https://xmr-tw.org/xmr-eta/ (from a Reddit comment)
It's open-source: GitHub

@HardenedSteel
Copy link

HardenedSteel commented Mar 9, 2024

Thanks I looked up but they also have same issue with Txstreet, opened an issue at their repo.

If the issue isn't clear enough; Txstreet needs to calculate block size using dynamic block size algorithm. At this moment it simply just assumes block size is median block size * 2

@spackle-xmr
Copy link

This sort of visualization is a bit more art than science. I am no great artist, but I have a few ideas on what could be done...

Assuming:

  1. Buses must be shown as full during congestion.
  2. Block size growth is shown.
  3. The absolute limit of block growth is shown.
  4. Transactions should be ordered by fee per byte, then by age to show the correct expected order on the buses.

I might propose:

  1. Buses be shown as the size of the penalty median so they are always full during congestion.
  2. The block confirmation/"green light" animation is altered so that 'extra' transactions included the block (past the penalty median) board the bus (perhaps with a green plus over their head or the bus?) when the block is confirmed.
  3. I do not have a good idea for how this should be done that wouldn't also be a massive pain.
  4. This should be done.

I can offer my input on calculations if you want the buses to change size dynamically as transactions come in (or something similar). That would be a fairly perfect representation of what is happening. I have not looked at the code and I do not know how difficult such a change would be.

@HardenedSteel
Copy link

Changing the percentage values would be helpful; median block size should be 100% (instead 50%) and maximum allowed blocksize should be 200% (instead 100%).

as a result the user can understand blocks are getting bigger when they see the bus load is over 100%.

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

3 participants