-
m-relay
<rbrunner7:monero.social> Meeting in a bit less than 1 hour
-
plowsof
👍
-
m-relay
<syntheticbird:monero.social> What if I don't want the meeting to happen ?
-
m-relay
<syntheticbird:monero.social> I refuse
-
m-relay
<syntheticbird:monero.social> You will not coordinate to make monero better
-
m-relay
<syntheticbird:monero.social> I won't let it happen
-
m-relay
<intr:unredacted.org> you'll meet your maker
-
m-relay
<rbrunner7:monero.social> Well, how many XMR do you pay me to cancel the meeting? You still have 20 minutes to place an offer.
-
m-relay
<rbrunner7:monero.social> Soon we will need no meetings anymore anyway. A small group of LLM supported vibe coders will run the show, and we can wait in peace for Monero to moon and then retire.
-
m-relay
<syntheticbird:monero.social> I'll pay the sum of 51+90i XMR
-
m-relay
<rbrunner7:monero.social> Is that a complex number?
-
m-relay
<syntheticbird:monero.social> yes
-
m-relay
<syntheticbird:monero.social> you don't want complex moneros?
-
m-relay
<rbrunner7:monero.social> Meeting time. Hello!
monero-project/meta #1338
-
m-relay
<jberman:monero.social> *waves*
-
m-relay
<sneedlewoods_xmr:matrix.org> Hello
-
m-relay
<syntheticbird:monero.social> Hi
-
m-relay
<rbrunner7:monero.social> Something administrative first: Ok for you people to skip next Monday's February 16 meeting, because of Monerotopia, and meet again in 2 weeks?
-
m-relay
<sneedlewoods_xmr:matrix.org> I'm fine with that
-
m-relay
<rbrunner7:monero.social> Ok, if nobody contradicts still, I will schedule that way.
-
m-relay
<rbrunner7:monero.social> On to the reports - what happened last week?
-
m-relay
<sneedlewoods_xmr:matrix.org> Started with `/transfer*`/`/sweep*` commands, now trying to figure out how to get the necessary information for `cryptonote::tx_construction_data` from `UnsignedTransaction` and `PendingTransaction` needed in `/describe_transfers`
-
m-relay
<rbrunner7:monero.social> In the RPC server, right?
-
m-relay
<jeffro256:monero.social> Howdy
-
m-relay
<sneedlewoods_xmr:matrix.org> wallet_rpc_server, yes
-
m-relay
<jberman:monero.social> me: some PR followup, set up a 4-phase plan to get the FCMP++ integration audited, got pre-fork multisig working / tests passing
-
m-relay
<rbrunner7:monero.social> What do you mean with "pre-fork multisig"? Does that need to "get it working again"?
-
m-relay
<jberman:monero.social> Ya it was borked upon integrating the curve tree sync into wallet2
-
m-relay
<jberman:monero.social> I can expand a bit further on that
-
m-relay
<rbrunner7:monero.social> As an unintended side effect I hope :)
-
m-relay
<jberman:monero.social> So the current multisig requires all multisig participants collaborate to generate key images for received outputs
-
m-relay
<jberman:monero.social> Thus, in order to determine if an output has been spent, the current impl will re-sync a wallet upon generating received output key images. aka receive output in block n, if the multisig wallet has synced to block n+10,000, then the multisig participants collaborate to generate the received output's key image, then all their wallets will re-sync the wallet starting from block n
-
m-relay
<jberman:monero.social> the problem is: upon introducing the curve tree sync into wallet2, the wallet can't re-sync past a max of 100 blocks by default, otherwise it needs to re-sync from its restore height
-
m-relay
<jberman:monero.social> So after discussing this with jeffro256 , who recognized that technically the wallet doesn't need to re-sync in this case, I ended up reusing the "backgound sync" implementation for multisig sync, so that upon identifying the receive output in block n, the multisig wallet will then sync all possible spends of that output going forward too, so that when generating the key image lat<clipped messag
-
m-relay
<jberman:monero.social> er, it can process the "background sync cache" to identify spent key images if there were any
-
m-relay
<jberman:monero.social> that way the multisig wallet doesn't have to re-sync as it currently does
-
m-relay
<jberman:monero.social> we've known this part of multisig has been broken since the curve tree sync was introduced fwiw, it's been on the TODO list / a FIXME was in the code too
-
m-relay
<jberman:monero.social> Can see this PR gets rid fo the FIXME:
seraphis-migration/monero #291/changes
-
m-relay
<jberman:monero.social> in wallet2 line 15041
-
m-relay
<rbrunner7:monero.social> Interesting. I would have guessed it's just a question of ignoring that 100 blocks limit for such cases, but I am sure that's because I don't know enough about the actual issues.
-
m-relay
<jberman:monero.social> if you recall how the wallet now builds the tree locally, the wallet throws away data from the tree that's older than 100 blocks that it doesn't need
-
m-relay
<jberman:monero.social> otherwise it has to keep the multi GB tree cached locally
-
m-relay
<rbrunner7:monero.social> Yeah, but pre-fork there is no tree yet, no?
-
m-relay
<rbrunner7:monero.social> Ah, also post-fork the multisig transactions can come in later than 100 blocks
-
m-relay
<jberman:monero.social> good q. the updated wallets are currently set up to re-sync from their restore height, and start building the tree, so that when the fork comes, they can spend outputs received before the fork with the FCMP++ proof
-
m-relay
<jberman:monero.social> this change is necessary to ensure that multisig wallets correctly maintain the tree for when the fork does occur
-
m-relay
<jberman:monero.social> and that too
-
m-relay
<jeffro256:monero.social> Yeah I think a similar background sync technique could be employed for multsig by saving all txs with rings with ring members that we own , it just hasn't been done yet
-
m-relay
<jberman:monero.social> yep that's what that PR does :)
-
m-relay
<rbrunner7:monero.social> Ok. Usually if the remaining issues get complex fast, like it seems to happen here, it means that the end is almost there, with "end" meaning "working".
-
m-relay
<jberman:monero.social> what's now "working" is pre-fork multisig with an FCMP++/Carrot compatible wallet. What's not yet working, and is going to be a fairly significant lift to get working, is FCMP++/Carrot multisig
-
m-relay
<rbrunner7:monero.social> Ok. Will you implement that, jberman ?
-
m-relay
<jberman:monero.social> I started looking into it and it's a pretty major can of worms, I'm not sure yet. I think it will be a bridge that we'll have to cross soon enough though
-
m-relay
<rbrunner7:monero.social> Sounds like it :)
-
m-relay
<rbrunner7:monero.social> Alright, if we are through with the reports, anything beyond that to discuss today?
-
m-relay
<rbrunner7:monero.social> Don't do anything unwise when re-entering the US coming from Mexico after Monerotopia perhaps ...
-
m-relay
<sneedlewoods_xmr:matrix.org> In regards to stressnet, AFAICT v1.6 is running very smoothly, the network is currently beeing stressed with ~650MB in tx pool and 887 blocks backlog and monerod is using ~1.5GB memory
-
m-relay
<sneedlewoods_xmr:matrix.org> and I hope everyone going to MoneroTopia is having a great time, I'm excited for the virtual conference
-
m-relay
<rbrunner7:monero.social> I second that, live the good life at that conference. I think we can close, thanks everybody for attending, read you again in **two** weeks.
-
m-relay
<sneedlewoods_xmr:matrix.org> thanks everyone, cu
-
m-relay
<syntheticbird:monero.social> thanks, very tasteful meeting
-
m-relay
<jberman:monero.social> thank you!
-
m-relay
<jeffro256:monero.social> Ah I see. Is the significant lift for FCMP++/Carrot the fact that ring members don't exist ?
-
m-relay
<jeffro256:monero.social> You should be able to save all txs with at least one scannable output, and that should capture everything since that's a rule in the Carrot code
-
m-relay
<jberman:monero.social> no the whole tree sync part should be good to go now. the significant lift is going to be constructing the SAL proof I think
-
m-relay
<jeffro256:monero.social> Oh yeah, that part does need a lot of new crypto
-
m-relay
<jeffro256:monero.social> IIRC kayaba said that they wrote a Rust lib for multisig SA/L proving used Carrot-derived addresses
-
m-relay
<jeffro256:monero.social> Which is awesome
-
m-relay
<jeffro256:monero.social> And it should be usable for non-Carrot-derived wallets too
-
m-relay
-
m-relay
<jeffro256:monero.social> If we keep the same legacy multisig API, I think that it can be fairly simple to upgrade the SA/L proving
-
m-relay
<jeffro256:monero.social> Since you've already handled the tree syncing part
-
m-relay
<jberman:monero.social> kayaba also wrote up this guide on dropping in the rust impl into the wallet2:
gist.github.com/kayabaNerve/3b2c648c623bc4ce4ca288725428ea76
-
m-relay
<jberman:monero.social> and that was applicable for clsag
-
m-relay
<jeffro256:monero.social> A *really* big rework would be necessary to handle multisig coordination without partial key images
-
m-relay
<jeffro256:monero.social> But I think that we can activate the HF without support for the new multisig API
-
m-relay
<jberman:monero.social> I think so long as multisig wallets that were created before the fork can spend after the fork, then that's ok for the fork