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

Aeon upstream 6 #175

Merged
merged 56 commits into from
Apr 25, 2020
Merged

Aeon upstream 6 #175

merged 56 commits into from
Apr 25, 2020

Conversation

stoffu
Copy link

@stoffu stoffu commented Apr 23, 2020

This PR merges a big upstream PR monero-project#4219 (merged on Sep 11, 2018) which is after the last upstream PR monero-project#4293 included in #167 (while ignoring PR monero-project#4218 for obvious reasons). While the main purpose of this upstream PR was to enable Bulletproofs which we don't adopt in Aeon, it comes with many other miscellaneous code changes that are worth adopting (in terms of both functionality and ease of maintenance due to higher code commonality). The commit https://github.com/monero-project/monero/pull/42185ffb2ff9b7c301eda5811a939c705f26627c4735 is of particular importance as it does a major variable renaming of block/tx size into block/tx weight (along with the introduction of per-byte fee and fixed ring size). This PR only takes the variable renaming part and ignores all the protocol changes.

stoffu and others added 30 commits April 8, 2020 18:21
Use double mults where possible, avoid conversions, simplify
- use a raw memory block to store cache
- use aligned memory
- use doubling API where appropriate
- calculate straus in bands
Also constrains bulletproofs to simple rct, for simplicity
Based on sarang's python code
…o#4219

Stats are: min, median, standard deviation
moneromooo-monero and others added 26 commits April 8, 2020 18:23
- fix integer overflow in n_bulletproof_amounts
- check input scalars are in range
- remove use of environment variable to tweak straus performance
- do not use implementation defined signed shift for signum
(AEON notes by stoffu)
Of course we don't want to make any changes at all to the consensus rules (including fee & ring size) with this patch; the sole purpose is to minimize the difference from upstream by adopting the same variable/function renaming (tx/block size -> tx/block weight), thereby reducing the chance of annoying merge conflicts due to this renaming in the future.

This patch also contains a typo fix found later:
monero-project#4685
Also try again when we're generate a proof with those characteristics

Reported by QuarksLab.
This avoids problems when the caller can't deal with a zero
walue, which happens often enough that it's worth nipping the
problem in the bud.
Apparently needed for openssl 1.1.x
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.

3 participants