01:11:15 "Pretty sure equation numbers..." <- did you not use LaTeX? Really is standard practice in anything math related and most of the time formats well. 01:17:21 Sorry to burst your bubble, but I wrote that book for myself, and myself did not care about equation numbers. 02:33:02 Thats fine, but dr_overdose has a valid point and if you wrote it for yourself why bother to upload it publically, link it to people, then get defensive when someone gives you feedback? You reacted the same way when I pointed out (minor) errors in the DAA section. Its unprofessional. 02:39:58 And if you want Monero to be a high quality crypto, developers need to professionally address positive or negative feedback. Otherwise you end up with algorithms and code with significant mistakes. 02:42:18 latex source is public, if you have suggestions you can make a PR 02:53:10 I get quite annoyed when people come at me with what I 'should' have done, especially ~2 years after the request-for-comments phase is over. Everyone has their own little thing they would do, if they did it themselves. At the very least, try to hear and respect my reasons for doing things the way I do instead of projecting your own vision on me (which I find very insulting). 03:10:12 UkoeHB: On the subject of being annoyed...A professor of mine would be quite annoyed by both over and underachievers arguing with him over points they felt they should have gotten. 03:11:44 So, he implemented a rule. Before you can ask for points, you must take the number of points you think you should have gotten, and calculate what impact that will have on your final score. 03:13:01 No one ever bothered him again. Some realized it wasn't worth their time when they saw how little it mattered. Others just couldnt be bothered to make the calculation. 03:15:32 My point is, since this is an open source project, rather than be annoyed, tell them to make all the needed changes themselves before you take a look at it. This will probably greatly reduce the amount of people who bother you. And, the few who persist, might just have something. 03:17:16 (To clarify on my anecdote, one had to calculate the impact to their overall grade for the entire course) 03:19:07 Yeah... I did that a couple times and never got any PRs... 03:20:44 That reminds me of the guy who translated both ztm1 and ztm2 into Russian. Very impressive guts! 04:22:39 uh oh we got professionals in here 04:26:54 quick, hide all the stuff! 13:59:06 Here is my updated plan for the seraphis/jamtis wallet design. I think this is ~final. 13:59:12 https://www.irccloud.com/pastebin/I8EOqAHt/ 14:05:24 Is this the structure of the code and the classes, in broad strokes? 14:09:24 yeah 14:11:22 Interesting. Will this then more or less supersede the `wallet2` class of today? Or be built alongside it? As as subpart of it? Right now I can't imagine yet where up and down is :) 14:16:32 Since the basic structure of jamtis wallets is different from cryptonote/ringct, it isn't possible to map wallet2 directly onto this design. There will probably have to be some glue in the WalletManager. 14:18:39 Some things like the ENoteStore, TxRecord, MultisigAccount, NodeConnection, LedgerView could be shared. 14:19:45 I was just thinking how sweeping the necessary rewrites will be. After all you could say that right now `wallet2` is the center of the universe as far as almost all Monero wallets are concerned. 14:20:20 Rewriting them all to a radically different interface will be a challenge. Maybe necessary, but a very big break. 14:20:37 Personally, I don't plan to rewrite any of wallet2 14:20:57 Most of the glue work will probably be in WalletManager and RPC. 14:21:22 What exactly do you mean with `WalletManager`? 14:23:20 Well, a 'wallet' can be many different things: view-only, full wallet, multisig wallet, ledger-scanning implementation. The manager is in charge of constructing all these wallets and exposing an interface to the user (there is a lot of interface overlap between wallet types). 14:23:52 Ah, you mean, that's also something new, not something existing? 14:23:57 right 14:24:38 And parts like simplewallet and the RPC server will have to be rewritten to access wallets through this new WalletManager? 14:25:17 Probably lol 14:25:51 Er ... lol? I mean, that's pretty important, IMHO. 14:26:19 It's unavoidable for a large-scale rewrite of those components, since the interface for jamtis is fundamentally different 14:27:13 I readily believe you. I just doubt many people have yet a clear view of the magnitude of the job. Me, I had not, until about 1 minute ago 14:28:18 yeah. seraphis and its associated jamtis is lookin like its really monero 2.0, in terms of all the hooplah involved 14:29:09 Yep it's a big project. Hopefully this approach can solve/alleviate a lot of our current design issues around wallet2, without actually needing to rewrite wallet2 (which would be 10x more difficult even than this). 14:30:12 Well, if you replace `wallet2` you don't have to rewrite it, you just have to extensively rewrite about every Monero wallet in existence. Talk about "easier" :) 14:30:45 well, from my seat in the peanut gallery, it seems lots of folks would cheer the retirement of wallet2, or welcome something different 14:30:54 I think a good part of the RPC interface itself can be maintained, just the guts will point to different things. 14:31:40 Probably. I am just not sure whether much is won with achieving to keep the RPC interface. I think most wallets sit directly on top of `wallet2` 14:32:08 Certainly the CLI. To some lesser extent, the GUI was well. 14:32:20 And of course the RPC server itself. 14:34:34 Afaik exchanges rely on the RPC interface, so keeping as much as possible would reduce the pain for those guys (and reduce the amount of time to wait for everyone to support the new system). 14:35:04 I am just brainstorming whether there would be a way to bring the new "WalletManager" interface into service earlier than Seraphis itself 14:35:26 With an implemenation that has `wallet2` sitting underneath and allows access to existing Monero wallets 14:35:41 The aim: To allow dev to start migrating there wallets early 14:35:42 That would probably be a good intermediate step 14:36:58 Right about the exchanges, I would say, everything "automated" is RPC for pretty sure 14:38:33 I get downright dizzy thinking about a more or less full rewrite of the CLI wallet to a brand-new interface ... 14:38:53 Tbh I am slightly worried WalletManager would become as big a hairy mess as wallet2... oozing with glue lmao. On the other hand, I don't know any better alternatives. 14:39:41 You mean over the years? At first it will probably be pretty clean, no? 14:39:53 is this where the title of "software engineer" or "software architect" would fit? 14:40:45 Yeah, "architect". Good software architects are maybe even rarer than good C++ devs or good cryptographers 14:40:50 Well, gluing wallet2 to seraphis might be ugly from the start. 14:41:05 Wouldn't that be only temporary then? 14:41:26 At least in my brainstorming it is. 14:42:06 I mean, say we have the "WalletManager" interface ready towards the end of this year, and `wallet2` glued underneath to make it work. 14:42:40 Wallet people could use 2023 to rewrite their wallets to that, and when we hardfork to Seraphis end of 2023, we have wallets. 14:42:51 Pretty much all of them. 14:43:28 Otherwise worst case whe have RPC and the CLI wallet and not much else ... 14:44:57 I mean, seriously, how would you get ready pretty much everything at the same time otherwise? 14:45:22 Well, to completely deprecate wallet2, we'd need to refactor wallet2's functionality (which to date, no one has been enthusiastic about working on). If that never happens, there will always be glue holding it in place (otherwise old outputs would be unspendable). 14:46:04 Oh, yeah, that's an argument. 14:46:30 At the very least we can hide the glue behind WalletManager and 'legacy' methods/ 14:47:22 Hmmm, maybe we can get away with only the scanning code if we offer a tool that can migrate wallets into a new format? 14:48:00 Since WalletManager just owns references to components, users that don't need wallet2 can just make WalletManagers with null references to the wallet2 part. This way, at least, wallet2 is only a discarded header. 14:48:59 (idk how well that idea would work in the end...) 14:49:09 migrate wallets? 14:49:48 How does a transaction look that spends an "old" output? Is this a hybrid, inputs "old", outputs "new"? 14:50:07 yeah 14:50:18 Ok, that's new code anyway then. 14:50:59 After the Seraphis hardfork all the tx building code in `wallet2` will be pretty useless, and goes into retirement. Right? 14:51:16 right 14:52:55 I don't claim I "see through" already but I have gut feeling something like a re-architecting of `wallet2` will come quite naturally while building all the new wallet stuff 14:53:14 Chop it into parts, put some parts into new places, retire some, etc. 14:54:32 Maybe only a single part of the system will still use `wallet2` as-is: The conversion tool that reads old wallets and writes new wallets. 14:56:27 That new Seraphis tx building code must have access to *all* owned outputs, old and new. So it might be best to put them all into a single cache / file. 14:57:02 Yeah, I will finally start working on a poc of this design today. Hopefully when that is done we will have a more precise picture of the next steps. 14:57:19 You will design header files and such? 14:57:53 No, a full PoC that works with my seraphis tx builder code, with mockups for ledger/node stuff. 14:58:21 Ah, Seraphis only. 15:00:01 woot wooot! 15:19:50 If Monero was a company, and I its CEO, and if I had a million USD to burn through, I would probably now build a "wallet architecture and migration strategy workgroup" with 3 or so experienced devs and put it to work 15:21:04 What did the projects that reimplemented in Rust or go or whatnot - did they just integrate existing wallet2? 15:23:27 only a million USD? 15:23:56 I don't think there is a *full* Rust implementation. The Dero people, as far as I know, did rewrite everything in Go. No idea how that looks, architecture-wise. 15:24:48 sech1: It's only the architecture and the strategy, not the implementation :) 15:25:24 We would need something new anyway, because of Seraphis and Jamtis. 15:26:46 well, does the address scheme (jamtis) need to be nailed down before the WAMS Workgroup (wallet architecture and migration strategy) starts? 15:27:37 Don't think so, no. You will probably move in much higher abstraction levels for a long time. 15:29:43 Well, the thought has crossed my mind: If we write everything wallet-related anyway, what must be half or so of all Monero code, why not switch to Rust ... 15:29:55 *rewrite 15:30:34 At least that would leave no doubt whatsoever about the magnitude of the job :) 15:32:11 is this more dev related than research? well the phrase is R&D, not R|D 15:33:34 True. 15:34:56 So I probably head over to #monero-dev in the search of my million. 15:37:37 all the millions are there 15:47:44 I don’t have a year to spend learning Rust... 15:51:42 And I am too old for it :) 15:52:07 Sure, that's not something we should put up on top as well. But one can dream. 19:20:57 hello everyone, i have been real interested in monero for some months 21:04:39 "I don't think there is a *full..." <- I probably cannot say how much more I like Dero's coding of cryptonote in Go 21:06:22 It is pretty clean, tight, and readable. Since it is written in Go, compiling is a dream. I can never willingly go back to c/c++ 21:07:16 I'm no guru, but everytime I've gone looking in their codebase to see how/if they handled something, they did it well. 21:09:06 For those of you who have not had the pleasure of compiling a Go project, you can install everything and build from scratch the whole project before you have managed to get the c/c++ toolchain ready. 21:29:08 "I am concentrating on BCH st..." <- Sorry, a couple days late to reply. I'm not really a statistician or anybody like that I'm just interested in monero in general, but if I can see the draft, I would love to. 21:49:31 asd_: Sure. Draft has been shared.