-
isthmus
10:57 <jberman[m]> If you construct a tx on a particular date and then don't submit the tx, then the ring(s) your wallet constructed will be saved on disk and reused if you spend the input in the future
-
isthmus
Woah if didn’t know this, is there no expiration date?
-
isthmus
Does it use the old ring even if later combined with other inputs?
-
isthmus
That actually may be a plausible explanation for some of the transactions we’ve seen
-
moneromooo
No expiration date (you can manually erase them). Also with other inputs (why would this have an impact on it ?)
-
ooo123ooo1234567
(it's interesting whether audit is finished already or temporary paused due to planned conference)
-
sgp_
<fluffypony> "wallet2 assumes that the..." <- Is there a downside to creating a cache for remote node cases?
-
sgp_
-
tobtoht[m]
^ that's not live, btw. I committed this an hour ago. It builds upon on earlier patch to mitigate output distribution poisoning:
feather-wallet/monero fdd5c63
-
ilgatu
When using the "std=c17 -pedantic" flag, the function getloadavg() is supposedly not defined: "implicit declaration of function", because it's a gnuc function (as I understand). How would you handle this, just ignore the warning (because the code runs in Linux, BSD) or #ifdef some value
-
ooo123ooo1234567
how is it related to monero ?
-
sgp_[m]
We can use the patch tobtoht made, but we'd rather it be merged upstream ofc. Is there a way to only persist the cache if it's using a non-localhost node?
-
moneromooo
You want to cache what data ?
-
moneromooo
And by non localhost, you mean trusted or any random asshole from the internet ?
-
sgp_[m]
In our case, it usually means trusted, since it's our nodes or a node a user manually specifies
-
sgp_[m]
cache the rct_distribution
-
sgp_[m]
currently the first spend on mobile takes a few extra noticeable seconds
-
ilgatu
ooo123ooo1234567: "Don't ask to ask, just ask", I had to try :)
-
ooo123ooo1234567
<sgp_[m]> "currently the first spend on..." <- great, if it's too painful then write and submit patch that will cache it correctly, or use arbitrary patch locally
-
ooo123ooo1234567
<ilgatu> "When using the "std=c17 -..." <-
gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html, that function is an addition from glibc, it isn't available with strict c standard
-
ooo123ooo1234567
it's available with -std=gnu17, but not -std=c17
-
ooo123ooo1234567
what's the purpose to use -std=c17 without understanding what it means ?
-
ilgatu
ooo123ooo1234567: So there's no way to use gnuc functions in a c standard code. Ok.
-
ilgatu
ooo123ooo1234567: Thanks for your time, btw.
-
moneromooo
I would not cache stuff that can be total bullshit from some random node. Unless trusted. But we know people, they'd just set any random node as trusted anyway. So probably not even if trusted.
-
ofrnxmr[m]1
ilgatu: Check
xyproblem.info helps too
-
moneromooo
Or maybe cached per IP, if not Tor.
-
tobtoht[m]
moneromooo: In the way I implemented this only data up until a checkpoint height is cached and must match a hardcoded hash. The wallet will throw an error if a random node sends bullshit data (anything pre checkpoint height) and will not continue with tx construction.
-
tobtoht[m]
One issue with this approach is increased maintenance burden, as the hardcoded hash should be updated with each release.
-
tobtoht[m]
I agree caching non-checked data from random nodes is a bad idea.
-
ilgatu
ofrnxmr[m]1: Hi, thanks a lot. A new perspective, I used to see it the other way. Again, thanks for your time.
-
moneromooo
OK, that's a good idea.
-
tobtoht[m]
Alright, I'll work on a PR.
-
sgp_[m]
Thank you
-
moneromooo
Well, shipping the known good hash to prevent bullshit data is a good idea :D Whether adding such caching in monero is, I dunno. Maybe. I'm kinda torn.
-
ooo123ooo1234567
indeed, why not to add another centralized checkpoint for 2MB of data
-
ooo123ooo1234567
cake-tech/cake_wallet #395, interesting who are those Monero developers
-
rbrunner
"interesting who are those Monero developers" Do you mean this as a statement, or as a question?
-
ooo123ooo1234567
*
cake-tech/cake_wallet #395, it's interesting, who are those Monero developers ?
-
rbrunner
Well, sethforprivacy is, among other things, a dev, but hardly active on Monero code proper, and SamsungGalaxyPlayer isn't a dev as far as I know
-
rbrunner
But well known for their "Breaking Monero" series of videos:
monerooutreach.org/breaking-monero
-
rbrunner
er, his videos
-
sethforprivacy
I'm not really a dev to be honest
-
sethforprivacy
I was talking with jberman and kayabanerve @kayabanerve:matrix.org about this issue because I had a suspicion this was the UX problem I kept running into
-
sethforprivacy
They confirmed it was likely output distribution for ring generation and seems they were right
-
sethforprivacy
This issue is one of the few constant PITA hurdles for me still in using Monero, and is especially onerous in person (as I was at Monerokon trying to spend and had to wait like 20s before I could even submit the TX)
-
kayabanerve[m]
More jberman than me :) I was there to discuss the effects of arithmetic circuits on it and discuss doing it in Rust :p
-
sethforprivacy
Not caching this data is also a bandwidth and IO load on all remote nodes, especially more commonly used public ones like mine unnecessarily.
-
kayabanerve[m]
Though the fix I did only caches it per application lifetime. Not too suitable for deployment to wallets...
-
rbrunner
Interesting. I have looked around quite a number of times in the wallet2 code for various reasons and never stumbled over this. Doesn't tell me anything at all.
-
kayabanerve[m]
rbrunner: jberman's comment is it's a 10 MB data set
-
ooo123ooo1234567
<sethforprivacy> "This issue is one of the few..." <- is it reproducible with fast internet connection and not overloaded monerod ?
-
sethforprivacy
I have run into it many times and always notice that the first transaction after wallet open is excessively slow
-
sethforprivacy
3s+
-
sethforprivacy
Which is very poor UX
-
sethforprivacy
25s just now
-
sethforprivacy
lol
-
ooo123ooo1234567
is it reproducible with monero-wallet-cli ?
-
sethforprivacy
Idk, that's not the target audience of the two wallets I opened issues for
-
sethforprivacy
We shouldn't base UX assumptions on a CLI wallet.
-
sethforprivacy
If mobile wallets all have poor UX when sending transactions it has to be fixed one way or another
-
sethforprivacy
25s to create a transaction with my own private full node over 300mb/s internet (through VPN, but very fast VPN) is nuts
-
selsta
sethforprivacy: can you try to reproduce it with my node and cake wallet or whatever wallet you are using? 88.198.199.23:18081
-
sethforprivacy
I would hazard a guess most of the delay is IO-bound but will look into more.
-
sethforprivacy
selsta: Sure
-
ooo123ooo1234567
check with cli wallet is mostly needed to know who to blaim for that delay
-
selsta
if it only happens with one wallet it's possibly a bug in that wallet
-
sethforprivacy
selsta: 6s but not sure if it was relying on any cache as I didn't close the wallet
-
sethforprivacy
Testing again
-
ooo123ooo1234567
1. do end-to-end debug with 1 wallet; 2. check different wallets to localize problem; since 1 is too hard probably, why not to do 2 ?
-
sethforprivacy
27s with your node on a fresh wallet open selsta
-
sethforprivacy
Testing with monerujo now
-
selsta
how many inputs?
-
selsta
not sure if that makes a difference
-
sethforprivacy
idk, just sending a small TX to test, but didn't ever send it
-
sethforprivacy
Probably just 1
-
ooo123ooo1234567
sethforprivacy: and the wallet software is ... ?
-
sethforprivacy
10s with Monerujo
-
sethforprivacy
Others were Monero.com wallet (Cake)
-
sethforprivacy
1s after initial transaction is constructed/sent in Monerujo
-
sethforprivacy
Cake is 10-12s for some reason even after initial construction (but I didn't send the TX yet, so maybe its just dumping that output cache?)
-
sethforprivacy
lots of variance with cake, was 4s now
-
selsta
it took me around 2s to generate a tx with the gui and a freshly deleted shared-ringdb so nothing should be cached
-
sethforprivacy
25s with Monerujo with your node selsta
-
sethforprivacy
selsta: Local node or your remote?
-
selsta
remote
-
selsta
but my remote node is in Europe, and you are from US I think, so not ideal for you latency wise
-
ooo123ooo1234567
is it possible to test with monero-wallet-cli ?
-
sethforprivacy
selsta: Yeah
-
sethforprivacy
ooo123ooo1234567: Sure
-
selsta
same 2 seconds with CLI, will try Cake Wallet
-
ooo123ooo1234567
it must be something specific to environment of sethforprivacy
-
sethforprivacy
Can no one else test but me and selsta?
-
sethforprivacy
What do you see ooo123ooo1234567?
-
tobtoht[m]
Fwiw, I implemented this in Feather because constructing the first transaction over Tor (which is inherently slow) takes a long time. If you're on a bad circuit downloading 6-7 MB worth of data takes a while.
-
sethforprivacy
Anyone test with Cake/Monerujo?
-
ooo123ooo1234567
tobtoht[m]: that isn't even 6MB of data
-
ooo123ooo1234567
sethforprivacy: I'm just waiting for a test with monero-wallet-cli in your environment
-
ooo123ooo1234567
* a test result with monero-wallet-cli
-
sethforprivacy
Working on it, had to restore as I dont use cli
-
sethforprivacy
Will test with local node, remote node of my own, and selsta's remote node.
-
sethforprivacy
ooo123ooo1234567: You can test it too to give us another data point 🙂
-
selsta
If you delete ~/.shared-ringdb and also restart the program there should nothing be cached.
-
sethforprivacy
Use selstas node, mine (node.sethforprivacy.com:18089) and one of your choosing
-
ooo123ooo1234567
sethforprivacy: restoring wallet with monero-wallet-cli isn't slower than with any of those wallets
-
ooo123ooo1234567
* of those mobile wallets
-
sethforprivacy
ooo123ooo1234567: ?
-
sethforprivacy
No idea what that has to do with anything
-
sethforprivacy
I had to restore a wallet with funds so I can test
-
sethforprivacy
I'm not claiming its slow?
-
sethforprivacy
Please test yourself and report back
-
sethforprivacy
* Please test transaction generation w/o cache yourself and
-
sgp_
If there's a question about this being slow, it's something I've noticed for a while but never realized what was causing the issue
-
sethforprivacy
Think everyone just went "it's always like this so I'll ignore it", I know I did
-
sethforprivacy
But seems a problem for everyone I've spoken to when they realize it
-
sgp_
yup
-
sethforprivacy
Waiting 10-20s to generate a transaction on mobile is really, really shitty UX
-
sethforprivacy
So lets find the problem (I think we already did) and find a solution (seems like tobtoht already did) and implement it.
-
sethforprivacy
2s with CLI on local node
-
sethforprivacy
~3s with my remote node from CLI
-
sgp_
on a strong connection with Cake to my own remote node (also with a strong connection) the first signing process only takes about 1s right now. but I definitely have seen it takes 6 or so seconds (usually not more)
-
sgp_
unsurprisingly, it's variable based on how quick one can download the data
-
selsta
sethforprivacy: with restart and deleted shared-ringdb?
-
sethforprivacy
~3s for selsta node
-
selsta
that sounds normal
-
sethforprivacy
selsta: Yes, deleted ~/.shared-ringdb between each wallet start
-
sethforprivacy
It's created immediately on wallet open though, not on transaction generation
-
sethforprivacy
So it may "feel" faster if its being done on wallet open and not on transaction creation
-
sethforprivacy
That's probably the main difference here between Cake and CLI
-
selsta
I don't think that's the case here
-
selsta
creating a file by itself does not mean much
-
sethforprivacy
Then why is that folder/DB files created on wallet open w/o transaction being generated?
-
-
sethforprivacy
Created that without me trying any transactions
-
selsta
it's a tiny file that does not make any speed difference
-
sethforprivacy
Much smaller than before I deleted it initially, true
-
sethforprivacy
Didn't read the size properly 🙂
-
tobtoht[m]
~/.shared-ringdb doesn't cache the output distribution and the output distribution is only requested when the first transaction is created. It affects a different part of transaction construction.
-
selsta
I just know that it caches something and deleting it doesn't hurt for testing.
-
ooo123ooo1234567
was monero-wallet-cli started within the same mobile phone ?
-
sethforprivacy
ooo123ooo1234567: No, on another device
-
sethforprivacy
Don't have binaries or anything on mobile
-
sethforprivacy
Can do that but will be a bit
-
sethforprivacy
Same network though
-
selsta
i'm still syncing cake wallet
-
tobtoht[m]
selsta: Yes, if you create a transaction and don't submit it ~/.shared-ringdb will store rings, which speeds up subsequent tx construction because it can reuse those rings instead of asking the node for outs.
-
sgp_
I keep force closing cake and reopening, and the first tx generation often takes 1-2 extra seconds, again on a pretty ideal connection setup for remote trusted node
-
ooo123ooo1234567
so who to blaim for that delay ?
-
sgp_
I'd like to test with the local distribution cache and see if that improves it :)
-
sgp_
not looking to blame, just trying to test improvements to see if they help with UX
-
selsta
i feel like these are two different topics, 1-2s extra vs 25s tx creation
-
ooo123ooo1234567
incorrect code is much bigger PITA for users, than 1-2 seconds optimization
-
sgp_
on tor and a roaming phone connection it indeed makes sending monero terrible
-
sgp_
let me try with orbot to give you an idea
-
ooo123ooo1234567
in the worst case correctly implemented cache will be redundant, in the best case it will optimize those few seconds
-
ooo123ooo1234567
but it isn't a priority to use another centralized hash for 1-2MB of data instead of correctly implemented cache if it's even possible
-
sethforprivacy
Not really sure what you're trying to say.
-
sethforprivacy
Do you have a better proposed fix for this? Are you saying it's not a problem? Have you tested this at all?
-
sethforprivacy
Still haven't seen any test results from you.
-
ooo123ooo1234567
let's firstly find what is causing that delay in your environment
-
ooo123ooo1234567
s/find/identify/
-
selsta
sethforprivacy: if it takes 3s with monero-wallet-cli and significantly longer with cake wallet on the same connection than it's unrelated to this cache
-
sethforprivacy
Mobile is also using VPN but not sure how that could add that long
-
sethforprivacy
Can no one else reproduce this?
-
selsta
ideal test setup would be to try monero-wallet-cli on mobile
-
sethforprivacy
Other than sgp to a lesser degree
-
selsta
like i said my cake wallet is still syncing
-
sethforprivacy
selsta: Yeah syncing it now
-
ooo123ooo1234567
sethforprivacy: any way to ssh into your environment ?
-
aog
do you know if there's any crowdfunding service based on XMR open for the public beside CCS?
-
sethforprivacy
Give you SSH access to my env?
-
sethforprivacy
No
-
sethforprivacy
lol
-
ooo123ooo1234567
otherwise it's impossible to reproduce outside of it
-
ooo123ooo1234567
sethforprivacy: great, waiting for it
-
sethforprivacy
You can test the same different approaches with the same nodes and gauge how it works for you.
-
sethforprivacy
Much more useful if many people test this
-
sgp_
81 seconds on first send using Cake + Orbot. 22 seconds on second send
-
ooo123ooo1234567
1st send wasn't relayed, and 2nd send was using the same outputs ?
-
sethforprivacy
sgp_: holy shit lol
-
sgp_
correct, didn't relay. just canceled and started over for second
-
sgp_
if it'll make a difference I can try sending the first one and then queuing up second
-
ooo123ooo1234567
"25s to create a transaction with my own private full node over 300mb/s internet (through VPN, but very fast VPN)" orbor is quite the opposite of this setup
-
tobtoht[m]
It's a bandwidth issue. If you reduce the amount of bandwidth required to construct a transaction by 97% then transaction construction is going to be faster. It's really that simple.
-
tobtoht[m]
s/bandwidth/data/
-
ooo123ooo1234567
s/orbor/tor/orbot/
-
sethforprivacy
Yeah I'm not really sure what ooo123ooo1234567 is getting at -- are you proposing a different fix or saying this isn't an issue?
-
sethforprivacy
We're proving that the worse your network connection the worse the UX for sending because your wallet isn't caching rct_distribution
-
sgp_
my node has gig up and I have something like 600 down here so there was only a tiny delay there. but with Tor it took forever, which makes sense
-
sethforprivacy
At least thats the idea we have for why it's happening.
-
ooo123ooo1234567
sgp_: should be different
-
sethforprivacy
s/because/_because/, s/your/the/, s/rct_distribution/rct\_distribution_/
-
sgp_
I'll send numbers in a minute then for send 1 output on fresh launch, then second output immediately after
-
ooo123ooo1234567
sethforprivacy: what's about wallet synchronization with such slow connection ?
-
sethforprivacy
ooo123ooo1234567: Also of course a problem
-
sethforprivacy
But if there is an easy fix here (there is not for broader wallet sync) than we need to explore it.
-
sethforprivacy
I still have no idea what the goal of your arguments are.
-
sgp_
I think they're most against the checkpoint, but maybe we can just enable the cache only for trusted daemons
-
tobtoht[m]
Here is some data: transaction construction (1 input) without output distribution cache uses 1.58 MB (bytes received only).
-
tobtoht[m]
Of this, 1.53 MB is needed to obtain the output distribution. (And this will keep increasing as the chain gets longer).
-
tobtoht[m]
So, a less substantial size than thought. (I looked at memory, but there is some compression going on here).
-
tobtoht[m]
But, it still makes up 97% of the network traffic required for initial tx construction.
-
tobtoht[m]
If checkpoints are not the way to go, a compromise is to grab the output distribution as soon as synchronization is finished.
-
tobtoht[m]
This way the output distribution will typically be available when the user wants to create a transaction.
-
selsta
is 80s normal to get 1.6MB over Tor?
-
ooo123ooo1234567
tobtoht[m]: wow, less 2 MB
-
ooo123ooo1234567
selsta: no, it depends on setup
-
moneromooo
It's pretty fast nowadays. 30 kB/s is rare now. I often get like 200+ or so.
-
moneromooo
It can be slow to setup a good circuit first though.
-
sgp_
first output send: 1m40. second output send: 14s
-
moneromooo
But, also, much less than, say, ten years ago.
-
sgp_
obviously there will be variability over tor and I haven't optimized mine at all
-
ooo123ooo1234567
tobtoht[m]: checkpoint is a compromise, correctly implemented cache with asynchronous fetching isn't a compromise
-
ooo123ooo1234567
> <@tobtoht:monero.social> Of this, 1.53 MB is needed to obtain the output distribution. (And this will keep increasing as the chain gets longer).
-
ooo123ooo1234567
* wow, less than 2 MB
-
sgp_
on mobile roaming I'm capped at 128kbps so sending does indeed feel like it takes forever currently for first time
-
sgp_
just to give an example. obviously everyone's plans are different
-
tobtoht[m]
ooo: can you describe how your ideal implementation differs from what I proposed?
-
ooo123ooo1234567
I'm waiting for a test with monero-wallet-cli from sethforprivacy
-
ooo123ooo1234567
on that mobile device with fast vpn
-
tobtoht[m]
With a fast VPN this isn't much of an issue.
-
sgp_
yeah it's like 1-2s only
-
sethforprivacy
Almost done syncing
-
ooo123ooo1234567
without any code changes required data size reduced from 10MB to 1.5MB, the quickest fix ever
-
sethforprivacy
?
-
sethforprivacy
Going out of your way to be antagonist to people trying to give useful feedback and improve Monero is not a good look.
-
sethforprivacy
An "off the top of my head" calculation over dinner is just that, an estimation
-
selsta
I can't even sync 5k blocks over Tor currently, wonder if the Tor network itself is having issues or I just have to restart a couple times until I get a good circuit
-
sgp_
tor is indeed having issues
-
sethforprivacy
selsta: Tor DoS is still having an impact IIRC
-
sgp_
been under DDoS for like a mo
-
moneromooo
Really. I haven't noticed :S
-
sgp_
that's why all wasabi 2.0 mixes haven't been going though, lol
-
moneromooo
Then again, I think nothing of waiting a minute for connection to happen from time to time...
-
sethforprivacy
22s with monero-wallet-cli on 1st send
-
sethforprivacy
2s on subsequent
-
selsta
what kind of phone hardware?
-
sgp_
hmm, much larger than I though. What's your down speed and ping?
-
sethforprivacy
I'm using a non-ideal VPN server, 30ms ping and 66mbps down
-
sethforprivacy
Changed VPN server, 18ms ping, 81mbps down
-
sethforprivacy
Testing again
-
sethforprivacy
19s first spend, 2s subsequent
-
selsta
subsequent = pressing cancel and transact again?
-
selsta
without any restart
-
sethforprivacy
No, sending and then sending again
-
sethforprivacy
Actually sending
-
sethforprivacy
No restart
-
sethforprivacy
18s first spend, 6s subsequent for selsta node
-
sethforprivacy
Deleted ~/.shared-ringdb between wallet runs
-
selsta
phone hardware?
-
selsta
SoC?
-
sethforprivacy
Pixel 6
-
sethforprivacy
So their first-gen Tensor SoC
-
sethforprivacy
Cutting edge 🤷
-
selsta
the extra downloaded 1.58MB don't explain the difference you are seeing
-
sgp_
Mine is S20+ fwiw, snapdragon 865
-
sethforprivacy
What else would be causing this?
-
sethforprivacy
Network is good, phone is latest gen, nodes are known-good
-
selsta
I still have 200k blocks on my phone to scan
-
sethforprivacy
And subsequent spends are just as quick as expected
-
sethforprivacy
It's something being cached
-
sethforprivacy
(being cached for subsequent spends and not for initial spends, to be clear)
-
sethforprivacy
90% reduction in generation time between first spend and subsequent.
-
moneromooo
If you want to check what's slow, did you try: sudo perf top (it will show if something's being precalced), strace (with timestamps), or just log level 2 (with timestamps), --no-dns ?
-
sethforprivacy
Whatever is being gathered when you try and construct a transaction should be gathered on initial sync, cached, and then updated with each subsequent sync. Shouldn't wait for transaction generation anyways.
-
selsta
moneromooo: it's on a phone
-
selsta
1.58MB data, over 66mbps should be downloaded in less than a second
-
selsta
20s difference simply doesn't add up, in no way
-
moneromooo
That phone doens't run strace or perf ?
-
selsta
sethforprivacy: does perf top work on a phone?
-
sethforprivacy
idk haha
-
sethforprivacy
Can try but have never done that before
-
selsta
log level 2 should work
-
selsta
and --no-dns
-
sethforprivacy
OK
-
selsta
the timestamps should tell what takes how long
-
moneromooo
Also if it has gdb, gdb into the process. If it's stuck waiting in http client, it's just waiting for the daemon.
-
moneromooo
(and the upper levels of the stack should tell you what was requested)
-
sethforprivacy
Node on log level 2 or wallet cli?
-
selsta
wallet
-
selsta
node might be helpful too but would check wallet first
-
selsta
calling get_output_distribution manually should also show us how long it takes
-
sethforprivacy
DMing to selsta
-
ooo123ooo1234567
<sethforprivacy> "Network is good, phone is latest..." <- is it reproducible with `--no-dns` ?
-
sethforprivacy
6-8s with --no-dns
-
sethforprivacy
For first spend, so much more reasonable but still slow
-
ooo123ooo1234567
can you check manually in logs what took most of the time ?
-
sethforprivacy
9s according to logs
-
sethforprivacy
I'll let selsta dissect them
-
selsta
2022-06-24 18:54:22.168 c8ec46223000 DEBUG wallet.wallet2 src/wallet/wallet2.cpp:3557 Daemon is recent enough, requesting rct distribution
-
selsta
that took 5s
-
ooo123ooo1234567
and other 4 seconds ?
-
selsta
transaction <xx> generated ok and sent to daemon, key_images: [<xx> ]
-
selsta
2022-06-24 18:54:31.285
-
sethforprivacy
And initial transfer command was at `2022-06-24 18:54:18.204`
-
ooo123ooo1234567
can you paste obfuscated log with timings ?
-
sethforprivacy
ooo123ooo1234567: Yeah working on that now
-
tobtoht[m]
selsta: Before or after this line?
-
sethforprivacy
A lot to redact lol
-
selsta
tobtoht[m]: wait, i sent it in a confusing way
-
ooo123ooo1234567
-
ooo123ooo1234567
what are the timestamps for these two lines ?
-
selsta
-
selsta
ooo123ooo1234567: 18:54:21.963 and 18:54:27.553
-
ooo123ooo1234567
no
-
ooo123ooo1234567
-
selsta
2022-06-24 18:54:27.553 c8ec46223000 INFO wallet.wallet2 src/wallet/wallet2.cpp:10069 Transaction 1/1 <xxx>: xxx weight, sending xxx in 1 outputs to 1 destination(s), including xxx fee, xxx change
-
selsta
-
tobtoht[m]
We're not calling get_output_histogram because we're dealing with rct outs, and we're not is_after_segregation_fork. Is there anything else after "Daemon is recent enough, requesting rct distribution" other than the get_output_distribution.bin call that could cause the delay?
-
tobtoht[m]
get_ringdb_key() key possibly? Looks like it's cached.
-
selsta
cake wallet took less than 3s, in line with monero-wallet-cli and gui for me
-
selsta
on iOS at least
-
selsta
on both home and mobile connection, but i have fast mobile internet here
-
tobtoht[m]
<tobtoht[m]> "get_ringdb_key() key possibly..." <- Nvm, would have shown up in the logs. And it's called after opening the wallet.
-
ooo123ooo1234567
create_transactions_2 - 5.6s, get_output_distribution - 5.08s; with 334KB/s connection and --no-dns
-
ooo123ooo1234567
<sethforprivacy> "For first spend, so much more..." <- are there any difference between 1st and 2nd sends without dns ?
-
ooo123ooo1234567
s/are/is/
-
sethforprivacy
Not sure, will test now
-
tobtoht[m]
ooo: is that get_rct_distribution() or only the /get_output_distribution.bin call?
-
sethforprivacy
8s first spend, 7s subsequent
-
ooo123ooo1234567
both 1st and 2nd were relayed ?
-
sethforprivacy
yes
-
sethforprivacy
network is 20ms ping, 1.55ms jitter, 90mbps down, 180mbps up
-
sethforprivacy
Using selsta's node.
-
selsta
what's the ping to my node?
-
tobtoht[m]
I'm pretty sure we can remove this m_node_rpc_proxy.get_rpc_version() call. There is no daemon out there that doesn't support this. That would save one round trip.
-
selsta
+1
-
selsta
got added 4 years ago
-
ooo123ooo1234567
<sethforprivacy> "8s first spend, 7s subsequent" <- is it obvious why dns is so slow there ?
-
sethforprivacy
<selsta> "what's the ping to my node?" <- 140-200ms
-
sethforprivacy
> <@selsta:libera.chat> what's the ping to my node?
-
sethforprivacy
* 140-250ms
-
sethforprivacy
I saw 400 at one point when testing
-
selsta
yea, sorry my node is only good for Europe :D
-
sethforprivacy
Yeah haha, its expected
-
ooo123ooo1234567
<sethforprivacy> "19s first spend, 2s subsequent" <- what's the delay with your own node with --no-dns ?
-
tobtoht[m]
-
sethforprivacy
ooo123ooo1234567: 2-3s
-
ooo123ooo1234567
wow, is it enough for good UX without tor ?
-
sethforprivacy
Better than 20s
-
sethforprivacy
What about no-dns seems to be improving it this much?
-
selsta
might be a problem with your VPN DNS?
-
selsta
I think on desktop you didn't use VPN?
-
sethforprivacy
I'm using custom NextDNS, not VPN-based
-
sethforprivacy
I don't see any other DNS issues or latency with other apps, browsing, etc.
-
ooo123ooo1234567
records from centralized monero dns aren't reachable instantly for some reason
-
ooo123ooo1234567
`drill -t txt @8.8.8.8 segheights.moneropulse.org`; `drill -t txt segheights.moneropulse.org`
-
ooo123ooo1234567
what's the delay for this dns requests ?
-
sethforprivacy
What is `drill`?
-
sethforprivacy
Have never seen that before and not in apt
-
ooo123ooo1234567
use any other tool for dns requests from terminal
-
ooo123ooo1234567
`time (for d in org net co se; do drill -t txt segheights.moneropulse.org &; done; wait )` the wallet is doing 4 requests, maybe one of them is too slow for your environment
-
sethforprivacy
43ms vs 52ms
-
sethforprivacy
Negligible
-
ooo123ooo1234567
s/.org/.$d/
-
-
sethforprivacy
meh thats just cached now
-
sethforprivacy
-
ooo123ooo1234567
did you try to from that mobile device ? and without 8.8.8.8 server
-
ooo123ooo1234567
s/to//
-
sethforprivacy
Sorry no, testing now
-
ooo123ooo1234567
<tobtoht[m]> "I'm pretty sure we can remove..." <-
monero-project/monero #5600/files, there is a cache for rpc version, it would be good to use it
-
tobtoht[m]
We don't need the check at all.
-
ooo123ooo1234567
indeed, that's true if no one is relying on that error with old daemon
-
ooo123ooo1234567
`git grep 'MAKE_CORE_RPC_VERSION'` why not to remove all of them then ?
-
ooo123ooo1234567
<sethforprivacy> "Going out of your way to be..." <- all involved people were busy with optimizing minor thing with another centralized checkpoint, it's pretty good look to not accept it
-
tobtoht[m]
<ooo123ooo1234567> "`git grep 'MAKE_CORE_RPC_VERSION..." <- Sure.
-
ooo123ooo1234567
<sethforprivacy> "Sorry no, testing now" <- what was the result ?
-
ooo123ooo1234567
-
ooo123ooo1234567
an interesting question is how to do development of decentralized project in order to avoid such vulnerabilities
-
sethforprivacy
<ooo123ooo1234567> "what was the result ?" <- Had to step away, sorry, might get to it later or tomorrow.