-
selsta
was asleep during the meeting, sorry lol
-
selsta
19:20 <UkoeHB> Is selsta around to give us an update/overview of the dev cycle for next hardfork? Or anyone else who knows about it? <-- I'm currently trying to get everything reviewed and merged, starting with 7169
-
selsta
19:34 <UkoeHB> sech1: is there anyone involved in release planning actually here? <-- so yes I'm working on it and have an overview
-
selsta
.merge+ 8001 8005
-
xmr-pr
Added
-
xmrscott[m]
Re: flatpak it might be worth including ARM BigmenPixel . I could very well be doing something wrong, but my Pinephone doesn't seem able to find the monero flatpak desptie adding the flatpak package and flathub source
-
xmrscott[m]
I'm curious as to how adaptive -gui is for a phone screen slightly below 1080p
-
selsta
19:39 <rbrunner> Ah, ok, so many small ones, not a big bang? <-- one big PR would be impossible to review, even at current sizes it's already difficult
-
luigi1111w
.merges
-
xmr-pr
7798 7799 7804 7808 7859 7861 7867 7868 7869 7870 7876 7971 7993 7994 8001 8005
-
BigmenPixel[m]
<xmrscott[m]> "Re: flatpak it might be worth..." <- I tried once to build with aarch64 but it didn’t work, maybe it’s worth waiting for the official aarch64 build? But I will try again.
-
xmrscott[m]
Ok, thanks
-
selsta
the monero repo now supports C++14 :)
-
BigmenPixel[m]
<xmrscott[m]> "Ok, thanks" <- This time the build was successful ...
-
xmrscott[m]
Good to know. Ping me if ARM support gets added to Flathub and I'll try to install on Pinephone again
-
BigmenPixel[m]
xmrscott[m]: It remains to wait only for the post-install scripts, you can test it [here](
flathub.org/builds/#/builders/32/builds/64003) (the link for download will appear)
-
BigmenPixel[m]
done
-
BigmenPixel[m]
```
-
BigmenPixel[m]
-
BigmenPixel[m]
```
-
selsta
vtnerd: is your BP+ PR review complete?
-
BigmenPixel[m]
-
selsta
moneromooo:
github.com/monero-project/monero/runs/3923219873 gamma unit test failed here, is that the one that occasionally fails?
-
selsta
or does the unit test also need an update now that the output selection has been tweaked?
-
moneromooo
It is inherently random since it checks stats on gamma picks.
-
moneromooo
But if you modify the distribution, it will skew the stats. If the change is intended, then you should update the expected median.
-
selsta
jberman[m]: ^
-
moneromooo
Now, I'm not the one to make a judgement call on whether the expected median should be changed.
-
moneromooo
IIRC that value is also taken from Miller et al.
-
moneromooo
So if we consciously differ from that source, it makes sense to update the expected median to what we expect that new median to be.
-
Rucknium[m]
selsta: Could you post the link to the source code of the test that failed?
-
selsta
Rucknium[m]: tests/unit_tests/output_selection.cpp:112
-
Rucknium[m]
It looks like the test doesn't set a random seed. Does it set a random seed?
-
moneromooo
If you mean making it deterministic, then it'd make the test pointless since it's supposed to test distribution properties.
-
Rucknium[m]
I disagree. Raise the sample size substantially and set a seed. Otherwise it will fail stochastically. I am not a software developer, however.
-
Rucknium[m]
You're missing implicit failures by having a lower sample size and no seed set.
-
moneromooo
That's the point. If you set a seed, then whatever series it generates will always match the test, by construction.
-
moneromooo
Raising the sample size will slow it down, IIRC it's already several seconds.
-
moneromooo
But if it's not, raising's fine.
-
selsta
>586 ms total
-
Rucknium[m]
As it is now, with no seed, there is always a non-zero chance of the test failing, from what I understand.
-
selsta
on my machine
-
moneromooo
Oh that's not too bad then.
-
Rucknium[m]
moneromooo: You should ask Syksy about this issue. He's written R statistical packages with tests. I did a quick search and it looks like at least one of his packages has a test that sets a seed. It might not be appropriate for what Monero is doing here, but it's worth looking into I think.
-
moneromooo
I did not generalize my statement above to all uses of seeds in tests.
-
moneromooo
Now, I do not care enough to argue the point further, I just gave my opinion.
-
moneromooo
When I think about these things, I like to take an extreme example and see if it seems obviously wrong:
-
moneromooo
Here, if we were to test a dice rolling program, which can roll 1-6, and check each number appears ~17% of the time, if you'd run it once with some seed and found it did about right, setting this seed in the test would prevent you seeing that it does break if, I dunno, the CPU's out of cheese or something.
-
moneromooo
That is my point here: hardcoding the seed locks the test to a working data set, which makes the test more or less pointless.
-
moneromooo
It'll catch cases of bugs when changing the gamma pick, but not existing bugs.
-
moneromooo
It locks in the "I got lucky" factor when you decided on the seed.
-
hyc
if the point is reducing the test's dependence on luck, then you can only do that by running with a wide range of seeds, no?
-
moneromooo
Yes.
-
moneromooo
I concede random failures is annoying though.
-
hyc
non-reproducible failures are annoying, yes
-
Rucknium[m]
I agree with your point, overall. That's why I suggested raising the sample size. What's happening now is that you are relying on running the build process many times to catch bugs. That seems like not a good practice.
-
hyc
in LMDB source we have a randtest program that uses randomly generated test cases, but we print the randseed at the start of each iteration
-
moneromooo
I agree with raising the sample size.
-
Rucknium[m]
hyc: The better way to do it is to raise the sample size.
-
hyc
you obviously need to do both. if you don't know what the random seed was that triggered a failure, you can't verify a fix later.
-
hyc
tests must always be repeatable/reproducible
-
Syksy
context of the simulations does matter a lot; for scientifically reproducible results, a seed is pretty much obligatory so others can reproduce your results
-
Rucknium[m]
Again, I have not looked into the issue very closely, but I think raising the sample size (i.e. doing the test many more times) would be a much higher priority than setting a seed. So I think we may be in agreement that sample size should be raised.
-
Syksy
For applications you'd want to run over multiple seeds ideally, but ideally it shouldn't matter - I did run Rucknium's monte carlo simulations with one additional seed and the results seemed consistent with the previous seed
-
Rucknium[m]
hyc: I agree that printing the seed would help a lot with the goals of the test/build process.
-
Syksy
Of course with simulations the first question is always is the simulation schema correct for the desired application; for Monero use cases it's hard to tell because the truth is not known :)
-
Syksy
But I could say based on running a second seed that the second simulations produced consistent results with the original simulations
-
Rucknium[m]
Yes, with large enough sample size and a sound pseudo-random number generator, the seed shouldn't really matter.
-
hyc
on a tangent: at this point we could take a large chunk of Bitcoin history and duplicate it on a monero testnet. I.e., duplicate transactions, number if unique addresses, etc.
-
hyc
in that way we'd know something of the truth behind the simulation
-
Rucknium[m]
Maybe someone could explain to Syksy what the purpose of this test is, and he can offer a view on seeds and sample sizes:
-
Rucknium[m]
-
moneromooo
ASSERT_GE(median, 1.3 * 86400);
-
moneromooo
ASSERT_LE(median, 1.6 * 86400);
-
moneromooo
It looks to me it checks the median age.
-
moneromooo
In fact, if you rewrite the fake out selection, this test becomes moot, so you'd write whatever other tests make sense for your new algorithm.
-
Rucknium[m]
Yes I agree that new tests will probably need to be written.
-
Rucknium[m]
<moneromooo> "It looks to me it checks the..." <- To be more clear, is it the case that it constructs N rings and ensures that none of the rings have output ages with a median greater than some Z?
-
moneromooo
No. It picks N outputs and checks the median.
-
moneromooo
Against the expected value from Miller et al IIRC.
-
moneromooo
I remember chatting with... sarang I believe, at the time, for what tests would be useful. So the value might not come from Miller et al...
-
Rucknium[m]
So it is checking gamma_picker itself, but not the ring member constructor, I think. From my understanding, gamma_picker is used as part of the ring member constructor, but there are more parts to it.
-
Rucknium[m]
I would agree that checking a median is a useful sanity check. I don't think that checking the median is an explicit recommendation of Moser et al (2018). (That's not to say that I would recommend blindly relying on their recommendation ;) )
-
selsta
I can make a PR to double the sample size.
-
moneromooo
Rucknium[m], jberman[m]: you may want to think about whether the "if (o >= n_outs) continue;" should be removed too.
-
moneromooo
It looks similar to what you changed recently.
-
Rucknium[m]
selsta: I will put "examine sample size and random seed matters in Monero's unit tests" on the upcoming MRL agenda.
-
xmrscott[m]
BigmenPixel: I'll test it again the next 12 hours or so when I can
-
jberman[m]
gonna play around with this test locally, I think more can be done with it, and I think it would be fine to 10x the ages vector. rolling is pretty quick
-
jberman[m]
I'm not sure how to get to an expected median between 1.3 and 1.4 though. Plug in shape=19.28, rate=1.61 and P(X<x)=0.5, and you get x=11.76876. e^x = 129,153.9 / 86,400 = 1.49
-
jberman[m]
-
jberman[m]
Can also repro expected median with this code:
paste.debian.net/1215890
-
jberman[m]
Above being said, the recent change should actually cause the gamma picker to pick more recent outputs than it was picking before, so it seems it's probably moving even further younger. The recent changes should be getting it closer to the paper's rec though, not moving further away. going to take a closer look at the test locally
-
Guest38
hi there, have python skills, familiar with django, want to learn monero basics and create exchange web app, should i know some basic and if that to which?)
-
Guest38
hi there, have python skills, familiar with django, want to learn monero basics and create exchange web app, should i know some basic and if that then which?)
-
Guest38
ok, I think I should start on clone repo)
-
Guest38
but if some one gives me a little help of pre requirements, it would be great
-
BusyBoredom[m]
I'd recommend reading "zero to monero" if you'd like to understand the inner workings of monero.
-
helgibergmann[m]
thanks
-
BusyBoredom[m]
No problem