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

Upstream merge 4 #106

Merged
merged 53 commits into from
Jun 16, 2019
Merged

Upstream merge 4 #106

merged 53 commits into from
Jun 16, 2019

Conversation

stoffu
Copy link

@stoffu stoffu commented Mar 12, 2019

I had a private chat with @camthegeek and made some arguments which can be summarized as follows:

  • Merging upstream patches is in itself not a too difficult task, but it's also quite easy to make mistakes since there are many instances of merge conflicts. Also, some patches require adapting the changes to Aeon (e.g. replacing string literals).

  • While I do feel happy to see people's willingness to contribute to the effort of merging upstream patches, I'd necessarily feel uneasy about blindly trusting the work offered by them, especially when they seem to have relatively limited experience with the Monero codebase and development in general. Therefore, I'd have to redo the same merging task myself again and compare the result with the offered one in order to be sure that the patches were merged properly. This seems wasteful since the same work is repeated by two people.

  • I know this sounds arrogant, but I believe I'm the most familiar with the codebase and thus the most suitable for the task of merging upstream patches among the Aeon community members. For the time being, I'll be able to keep working on merging upstream patches on a regular basis; i.e. I'll make sure to submit the next upstream merge PR as soon as possible after the previous one gets merged. If the situation around me changes and I become unable to keep working on Aeon in the future, I'll announce as such.

  • I don't mean to discourage people from working on the development. One important way of contributing (in addition to testing) is to review the upstream merge PRs and find out any mistakes I make. Such reviewing will also be very helpful for familiarizing yourself more with the codebase. More people becoming familiar with the codebase is crucially important since the development shouldn't be dependent on a small number of people who can suddenly disappear for various reasons (car accident, illness, etc).


That said, this PR replicates the work done by @camthegeek in #100:

This pull request merges upstream patches after monero-project#4129 which is the last one included in #90. This PR includes upstream PRs from monero-project#3528 merged on August 15 up to monero-project#3999 merged on August 24:

Some noteworthy remarks:

moneromooo-monero and others added 30 commits March 12, 2019 14:52
as per "An Empirical Analysis of Linkability in the Monero
Blockchain", by Miller et al.
It was accepting any character for the dot (yeah, massive big I know)
avoids people thinking it's somehow a generic AE system
Fixes failing test during Arch package build (due to attempt to write to
~/.bitmonero/...).

Prefix temp dir path with "monero-" because we are not putting it on the
system, so good to identify ourselves in case the dir gets left over due
to crash, etc.

(Note: prefix changed from monero- to aeon-)
That takes a lot of time for even not so large wallets
moneromooo-monero and others added 13 commits March 13, 2019 00:09
It was actually incorrect, as it would not return commitment
Blocks have a very wide range, whereas actual size is the relevant
quantity to consider when syncing
…onero#4207

Non fluffy block nodes should now be very rare
Many people are using this as a "let's see what this does" command
when something doesn't work as they thought it should, and thus
destroying info that they might still need.
Note: /monero#3999 was cherry picked previously in /aeon#30 which got merged before 3999 got merged upstream.
3999 was then later force pushed with some changes, introducing some inconsistency which is resolved here.
@BigslimVdub
Copy link

BigslimVdub commented Mar 20, 2019

OS: OSX 10.13.6 high sierra
CPU: i7
RAM: 16gb
BUILD CMD: make release-static
VERSION: Aeon 'Sophia' (v0.12.8.0-master-26ad43e1)
Built on OSX 10.13.6 with no issues. Verify version.cpp is 26ad43e as noted in this PR.
Daemon and Wallet seem to be functioning with basic commands on mainnet.
Unable to test RPC

@BigslimVdub
Copy link

BigslimVdub commented Mar 20, 2019

OS: Ubuntu 18.04 (VM)
CPU: 4 vcpu
RAM: 4gb
BUILD CMD: make release-static
VERSION: Aeon 'Sophia' (v0.12.8.0-master-26ad43e1)
Built on Ubuntu 18.04 after addition of #107 to dependencies. Verify proper version in daemon and wallet.
Daemon and Wallet seem to function with basic commands. Daemon syncs from 0 no issues first try using fast sync aeond --block-sync-size 1000 --max-concurrency 15 in 28 minutes.
Unable to test RPC

Nice to see this prompt now (even though I was using m.2 with a VM):
finally a prompt for slow hdd sync

@420coupe
Copy link

420coupe commented Mar 20, 2019

OS: Ubuntu 18.10
CPU: Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz (4 Core)
RAM: 8GiB
BUILD CMD: make -j 4
VERSION: Aeon 'Sophia' (v0.12.8.0-master-26ad43e1)

Tested wallet, daemon and rpc on both live and testnet - no issues.

@BigslimVdub
Copy link

BigslimVdub commented Mar 21, 2019

OS: Windows 10 x64 (Msys2-x64)
CPU: 1950x
RAM: 16gb
BUILD CMD: make release-static-win64
VERSION: Aeon 'Sophia' (v0.12.8.0-master-26ad43e1)

Builds ok, no issues. Daemon and wallet CLI function properly with basic functions. Daemon syncs ok on mainnet.

Docker build armv8

OS: Ubuntu 18.10.1 (VM)
CPU: i7 (2 Vcpu)
RAM: 4gb
BUILD CMD: Docker build armV8
VERSION: Aeon 'Sophia' (v0.12.8.0-master-26ad43e1)
All binaries built successfully. Waiting for availability of testing. Binaries will be posted here when I get some time. Public welcome to test on their android devices.

@iamsmooth
Copy link

The gamma distribution implementation is likely to be problematic on AEON due to the overweighting of transactions (especially coinbases) from small blocks. Although after a quick look at the commit it wasn't clear to me whether or not it would even be used for non-rct.

Monero came up with some sort of partial mitigation (I don't see that commit here) which involved picking from a small range of blocks rather than one but even that won't be very effective on AEON with its currently-smaller tx volume.

@stoffu
Copy link
Author

stoffu commented Mar 28, 2019

I'm pretty sure the gamma selection doesn't affect pre-RingCT Aeon as seen in the patch:

-         if (num_found - 1 < recent_outputs_count) // -1 to account for the real one we seeded with
+         if (amount == 0 && has_rct_distribution)
+         ...
+         else if (num_found - 1 < recent_outputs_count) // -1 to account for the real one we seeded with

I've also confirmed that it works fine on stagenet where almost all blocks are empty.

@iamsmooth
Copy link

@stoffu We probably do want some sort of gamma selection as an AEON enhancement if we're not planning on switching to RingCT imminently. The old selection method was a quick patch on the original even worse one, and, further, gets worse and worse over time due to chain age.

However that can be addressed separately from the upstream merge.

@BigslimVdub
Copy link

I thought the community agreed they wanted ringCT and bulletproofs to create fungibity for Aeon? Am I correct that RingCT would require a hard fork to activate?

@iamsmooth
Copy link

RingCT would require a hard fork so is out of scope with an upstream merge PR. I only mentioned it here because of the gamma commit being included.

@sci-comp
Copy link

Is there a reason this is being delayed?

@BigslimVdub
Copy link

Is there a reason this is being delayed?

Possibly due to #109 since we are not going RingCT this fork.

@sci-comp
Copy link

sci-comp commented May 21, 2019

Possibly due to #109 since we are not going RingCT this fork.

From IRC,

smooth, "camthegeek: not stuck, we have a solution to that, it will go in after the upstream merge"

@BigslimVdub
Copy link

Approved

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.