10:19:14 What is the proof size, proving time, and verification time for FCMP++ proofs? Vs say, BP++? 11:00:22 is there any interest in expanding zmq functionality? 15:37:18 loop.ster: do you mean compared to CLSAGs? The analogue of FCMP++ proofs to current transactions proofs is CLSAG. We don't currently use BP++ in txs, just BP+. We use BP+ proofs to prove range on the output amounts. We would still use BP+ for FCMP++ txs for output amount range proving 15:39:42 Yeah, clsags, sorry. 16:40:15 Here's a table for the membership proof (just the FCMP part) size per transaction: https://github.com/seraphis-migration/monero/blob/2c9ebbef2831e038a5c988fa31e9eabfac430927/src/fcmp_pp/proof_len.h#L40. To get the full FCMP++ proof size (with SA/Ls), add 384*M, where M is the number of inputs. 16:40:54 The table is indexed first by number of inputs (row), then number of tree layers (column). 16:41:32 Sine Monero is at >150M outputs, we're at n_tree_layers=6, we will move to 7 when we hit ~300M IIRC 16:44:11 Here's a table of transaction byte sizes and verify times for different in/out counts, assuming n_tree_layers=7: https://github.com/seraphis-migration/monero/issues/44#issuecomment-3150754862 19:45:52 Perfect thanks. So not too dissimilar to CLSAG. 19:45:53 I assume SNARKS were ever considered because ed25519 is not a snark-friendly curve. 20:03:41 > local node, when RPC connection that must be verified comes in, returns result of TOTP(details | secret | time) + time 20:03:41 DataHoarder: re: PoWER, how would this work considering ports can't be relied upon for RPC? 20:08:12 > If given expiration explicitly via generation these can be kept exactly as long as needed then removed away 20:08:13 This was the misunderstood idea, it's a DoS vector to keep these around 20:11:04 Another thing about PoW per connection when it comes to un-held RPC connections is that multiple users behind a single IP only need a single PoW, if we are assuming we only mark the IP as valid to relay high input TXs (also, how long does this stay valid before another PoW should be required?) 20:13:20 it may be simpler to do PoW per connection for P2P/ZMQ then PoW per TX for RPC 20:53:49 > This was the misunderstood idea, it's a DoS vector to keep these around 20:53:51 Only solved ones would be kept 20:54:19 also on details, they still need to provide the PoW 20:54:55 how much time: this is adjustable as a parameter in code 21:04:09 assuming a RPC client disconnects, they would have to calculate PoW for each TX since their port can't be depended on as an identifier, no? 21:05:34 they need to provide the information from before, which the node can verify without keeping state (besides single global one) 21:06:11 and keeping a list of solved PoW (which don't have DoS unless someone wastes power on solving pow, difficulty can raise as the list grows, and these have a fixed lifetime) 21:06:22 non-solved pow or failed ones don't need to be kept 21:16:00 I understand, but what binds the solved PoW to an RPC client, just an IP? 21:17:35 I am assuming the info from before can't be the only identifier as then the PoW can be shared, and also that ports cannot be relied upon 21:22:51 If the IP is the only identifier then that means we are okay with shared IPs (VPN, Tor exit) only needing 1 PoW for potentially many users 21:38:10 Verification is ~10x slower than a 16-member CLSAG. Sizes are only ~4x bigger than a 16-member CLSAG. 21:39:07 It's a big difference IMO. It's one that I think is worth it, but it will absolutely be noticeable to end users