-
br-m
<suhyeon:matrix.org> Hi, I’m one of the authors (Lee, S., & Kim, H. (2025). Inside Qubic's Selfish Mining Campaign on Monero: Evidence, Tactics, and Limits. ) — thanks for discussing our work. We computed Qubic’s hashshare using both mainchain and orphan blocks, so that description of the paper is mistakenly incorrect. I’d be happy to discuss the other points further.
-
br-m
<rucknium> @suhyeon:matrix.org: Hello! Do you want to stay for the meeting? It will start in about two hours (17:00 UTC).
-
br-m
<suhyeon:matrix.org> Especially we're interested in missing orphan blocks you pointed out.
-
br-m
<suhyeon:matrix.org> oh can you share the information about the meeting? I have no clue
-
br-m
-
br-m
<rucknium> I can add you to the beginning of the meeting agenda if you want.
-
br-m
<suhyeon:matrix.org> okay that will be great then !
-
br-m
<rucknium> Fantastic. Good to meet you!
-
br-m
<suhyeon:matrix.org> Good to meet you too
-
br-m
<sgp_> > <@suhyeon:matrix.org> Hi, I’m one of the authors (Lee, S., & Kim, H. (2025). Inside Qubic's Selfish Mining Campaign on Monero: Evidence, Tactics, and Limits. ) — thanks for discussing our work. We computed Qubic’s hashshare using both mainchain and orphan blocks, so that description of the paper is mistakenly incorrect. I’d be happy to discuss the other points further.
-
br-m
<sgp_> Welcome! Thanks for joining
-
br-m
<datahoarder> > <@suhyeon:matrix.org> Especially we're interested in missing orphan blocks you pointed out.
-
br-m
<datahoarder> as a heads up, here's also a CSV with all identified "mined" Qubic blocks including orphans up to last week
irc.gammaspectra.live/05eb9beefdebb016/blocks-proof.csv, in case of them being orphan the full block header is included, which contain a miner transaction that can be verified with their viewkeys. Most of the dat [... too long, see
mrelay.p2pool.observer/e/mem1s9MKSFFLTE4y ]
-
br-m
<suhyeon:matrix.org> We found the reason. At first we attributed Qubic blocks without relying on view keys and used coinbase pattern. Later, we found viewkeys are shared in Qubic's discord channel, we confirmed the identified Qubic blocks but didn't check other blocks not attributed with the pattern. Thanks for sharing the dataset. With yours, our hashshare estimate should be corrected as the below plot (red to blue).
-
br-m
-
br-m
<rucknium> Meeting time!
monero-project/meta #1313
-
br-m
<rucknium> 1. Greetings
-
br-m
<articmine> Hi
-
br-m
<jberman> waves
-
br-m
<vtnerd> Hi
-
br-m
<datahoarder> Hello
-
ArticMine
hi hivia hi via IRC
-
br-m
<suhyeon:matrix.org> Is this meeting happening here in chat?
-
ArticMine
yes
-
br-m
<suhyeon:matrix.org> okay good
-
br-m
<boog900> hi
-
br-m
<rucknium> @suhyeon:matrix.org: Yes. MRL meetings are text chat only.
-
br-m
<rucknium> 2. Updates. What is everyone working on?
-
br-m
<rucknium> me: Using Markov Decision Process (MDP) to analyze selfish mining countermeasures. Accidentally eating all the RAM on the MRL research computing cluster.
-
br-m
<articmine> I updated and uploaded the latest scaling parameters
-
br-m
<articmine> Capping MS to 8 ML
-
br-m
<suhyeon:matrix.org> me: testing randomzied attention test to solve verifier's dilemma in optimistic rollups
-
br-m
<jeffro256> Howdy
-
br-m
<jberman> Implemented changes to tree building using the unbiased hash to point (unbiased hash to point is on the TODO list for beta), addressed all comments on outstanding PR's, we're close to releasing v1.5 for the alpha stressnet. Continuing today with tx relay v2, then may investigate a reported segfault
-
br-m
<jeffro256> Me: working on knowledge proofs integration, reviewing PRs for v1.5 release, and still coordinating with potential auditors for carrot_core
-
br-m
<vtnerd> Me: speced out fcmp++ spending in lws clients. Nothing built, just convos with berman and jeffro confirming plan. Also attempting to rebase the lws carrot patch after jeffros changes to some functions. The tests fail and I havent dug into why yet. A user reported 0conf was broken in carrot but I haven't verified. And otherwis [... too long, see
mrelay.p2pool.observer/e/_7yettMKODRFVXpk ]
-
br-m
<datahoarder> Cleaned up all recent additions due to FCMP/Carrot on my codebase to try to make it usable for any potential library users/p2pool. All carrot changes now converge as well. Working on finally making a full event log of Qubic mining events with the archived points of view of their network.
-
br-m
<rucknium> 3. Lee, S., & Kim, H. (2025). Inside Qubic's Selfish Mining Campaign on Monero: Evidence, Tactics, and Limits. (
moneroresearch.info/293)
-
br-m
<rucknium> Welcome, @suhyeon:matrix.org (Suhyeon Lee), co-author of the paper!
-
br-m
<rucknium> How did you find out about this Matrix room by the way?
-
br-m
<suhyeon:matrix.org> Hello Thanks for inviting me and also for discussion
-
br-m
<suhyeon:matrix.org> Oh I found your discussion in X (twitter) and tried to reach out for discussion
-
br-m
<suhyeon:matrix.org> I wanted to mention the description of the hashshare calculation is wrong, not the hashrate calculation itself
-
br-m
<suhyeon:matrix.org> Also, wanted to know missing Qubic blocks from our dataset
-
br-m
<suhyeon:matrix.org> Actually, this work was not systemized, one of side project with me and one undergraduate student (my mentee)
-
br-m
<suhyeon:matrix.org> So dataset was collected after most of selfish mining
-
br-m
<rucknium> @suhyeon:matrix.org: I think @datahoarder:monero.social , true to name, has even more data than that.
-
br-m
<datahoarder> indeed.
-
br-m
<suhyeon:matrix.org> So there was some mistake and thanks to you we can improve the paper
-
br-m
<suhyeon:matrix.org> Also, for that, I want to mention, at least, appreciation to you guys in paper later. If possible, cowork on the paper will be nice. :)
-
br-m
<datahoarder> Hi @suhyeon:matrix.org. A few notes. I mostly noted that you lacked granular data on Qubic, and mostly ran on on-chain plus tasks from dispatcher (what you call job_notify)
-
br-m
<rucknium> @suhyeon:matrix.org: Do you plan to publish the analysis code and make it open source?
-
br-m
<suhyeon:matrix.org> @datahoarder: Yes we collected such data during only very limited time.
-
br-m
<rucknium> @suhyeon:matrix.org: I would be open to collaboration on the paper :)
-
br-m
<suhyeon:matrix.org> @rucknium: Yes
-
br-m
<datahoarder> I have an archive on all historical tasks from their network, with full block template. Additionally, we also have a record of all solutions of 640M or higher (a block is a high difficulty solution, usually at several G)
-
br-m
<suhyeon:matrix.org> Currently, I'm very busy with my main job. After some hassle, of course, we should publish all the codes.
-
br-m
<datahoarder> That gives us around 6-20 solutions for every task which allows calculating hashrate of Qubic directly from source.
-
br-m
<suhyeon:matrix.org> The reason why we didn't publish the codes is now it's too much with mess
-
br-m
<suhyeon:matrix.org> @datahoarder: Great. How did you collect all the data?
-
br-m
<datahoarder> If you go back to when your paper was posted in this room historically I posted some charts comparing what we saw hashrate wise from them, but that's captured from the live database.
-
br-m
<datahoarder> We connect to their consensus network directly and gather raw packets. These are verified against public keys
-
br-m
<datahoarder> Then we gather tasks from dispatcher, and solutions for each task, provided by computors and signed by them.
-
br-m
<datahoarder> Each solution includes nonce values and PoW hash (for verification)
-
br-m
<suhyeon:matrix.org> okay I'll check this later > <@datahoarder> If you go back to when your paper was posted in this room historically I posted some charts comparing what we saw hashrate wise from them, but that's captured from the live database.
-
br-m
<rucknium> Discussion starts here ^ . @suhyeon:matrix.org , can you try to click on the message? > <@datahoarder> > view–key–based verification can be applied only to blocks that are already definitively included in the main chain; it cannot be used for blocks that are still within an ongoing epoch or for blocks that have already become orphaned.
-
br-m
<suhyeon:matrix.org> What was the major difference in conclusions of your analysis other than hashrate?
-
br-m
<datahoarder> However, this dataset has not been publicly gathered/released at this moment. Nonetheless the hashrate values are mostly similar to the ones reported by Qubic
-
br-m
<suhyeon:matrix.org> @rucknium: Thanks it works
-
br-m
<suhyeon:matrix.org> What I wondered was their selifsh mining strategy in the research
-
br-m
<datahoarder> We also saw similar lack of efficiency on their selfish mining. Initially estimated to -20% losses, later they optimized to -10-8% losses
-
br-m
<datahoarder> The state machine you built is generally very close to what we observed, though they changed it over time.
-
br-m
<rucknium> IMHO, their aim was propaganda. To publicize their cryptocurrency.
-
br-m
<suhyeon:matrix.org> I came across Qubic guys in TOKEN 2049 Singapore
-
br-m
<suhyeon:matrix.org> I asked what they're doing in Qubic
-
br-m
<suhyeon:matrix.org> @rucknium: I agree
-
br-m
<suhyeon:matrix.org> Becuase of that I know Qubic now X)
-
br-m
<suhyeon:matrix.org> They said they're doing optimized selfish mining
-
br-m
<suhyeon:matrix.org> So I wondered they use theoretically optimized selifsh mining based on the Markov chain analysis
-
br-m
<datahoarder> Additionally, there is bias on blocks published by Qubic. Not all of them were intended to be published, some of the bias was caused by sech1 / me :)
-
br-m
<suhyeon:matrix.org> So I checked if they did 'catch up' which means they're behind and try to catch the main chain height. But we didn't find any intended or systemic trials on it.
-
br-m
<datahoarder> in many cases this bias just made them more profitable (it prevented their selfish mining) and your analysis covers later stages, which were not biased this way.
-
br-m
<suhyeon:matrix.org> Rather, we found they made selfish mining less efficient that is analyzed in the paper
-
br-m
<datahoarder> @suhyeon:matrix.org: They do not. The most they do is if they are at "par" after releasing their chain they will stick to it until next block.
-
br-m
<rucknium> @suhyeon:matrix.org: My guess is that they released blocks manually. It was a human judgement decision usually.
-
br-m
<datahoarder> It was automated in later stages. Some of the first long trials were manually released, yes
-
br-m
<suhyeon:matrix.org> Can you explain it more, I didn't understand clearly > <@datahoarder> Additionally, there is bias on blocks published by Qubic. Not all of them were intended to be published, some of the bias was caused by sech1 / me :)
-
br-m
<datahoarder> Basically. We read their nonces and built blocks to send them to the Monero network.
-
br-m
<suhyeon:matrix.org> @rucknium: if it's human decision, wow. Then, how did you guess so?
-
br-m
<datahoarder> This makes them look like they weren't selfish mining for a given period, but they were. This was later prevented by including undisclosed transactions in their blocks.
-
br-m
<rucknium> @datahoarder: @datahoarder:monero.social and sech1 prevented their long private alt-chains from forming by forcing them to be public.
-
br-m
<datahoarder> Initially we pushed all instantly, later kept their chains short
-
br-m
<rucknium> It was some intense spy-vs-spy, cloak-and-dagger maneuvering.
-
br-m
<suhyeon:matrix.org> @datahoarder: That's smart. Then, they changed a strategy for that?
-
br-m
<suhyeon:matrix.org> @rucknium: Sounds like game theory
-
br-m
<datahoarder> They added encryption. They added new encryption. They added new new encryption. They blamed pools, disabled task dispatchers, and so on.
-
br-m
<rucknium> A heroic battle in the shadows 😎
-
br-m
<datahoarder> Nothing worked until they added the undisclosed transactions, after it was discussed in an MRL issue :)
-
br-m
<suhyeon:matrix.org> You are cool, guys
-
br-m
<datahoarder> All they did was centralize their network more, anyhow. Their infrastructure back then and now is effectively just a centralized pool with central dispatcher authority that decides what to mine
-
br-m
<datahoarder> The encryption algorithms they use were kept private as well. So anyone verifying solutions is unable to do so anymore.
-
br-m
<suhyeon:matrix.org> I think I can't stay much longer cause it was not a plan today for me. How can we communicate later? Especially @datahoarder:monero.social
-
br-m
<datahoarder> The encryption is kept secret, only to be revealed via discord DMs
-
br-m
<datahoarder> I'm around here and #monero-research-lounge:monero.social
-
br-m
<suhyeon:matrix.org> Okay I'll talk to there later then
-
br-m
<datahoarder> As of last note, besides a specific oddity during a night, the reported hashrates on their API were mostly correct to what the internal stratum was.
-
br-m
<datahoarder> Any other discussion on the paper/Qubic for now if @suhyeon:matrix.org has to leave?
-
br-m
<rucknium> @suhyeon:matrix.org: Thank you very much! It's always great to see more people researching Monero.
-
br-m
<rucknium> @suhyeon:matrix.org: Here is something I wrote about Qubic's disruption:
rucknium.me/posts/monero-18-block-reorg
-
br-m
<suhyeon:matrix.org> Oh thank you so much. I'll check this too.
-
br-m
<suhyeon:matrix.org> Thanks for invitation and also thanks for your information.
-
br-m
<suhyeon:matrix.org> Have a good day guys
-
br-m
<rucknium> 4. Spy nodes (
monero-project/meta #1124).
-
br-m
<datahoarder> (if you need input in other topics from me I'll be AFK, ping if needed, doesn't seem like from agenda)
-
br-m
<rucknium> It seems that the new spy nodes have been consistently connected to the network for a week:
moneronet.info
-
br-m
<rucknium> Last meeting I suggested that we wait until this meeting to confirm the switch to the new IP address ranges and adopt/publicize the new MRL ban list
-
br-m
-
br-m
<ravfx:xmr.mx> I confirm it too, when I look at one of my node firewall log, the only thing I can see are the thousands lines that start with "SPIES" on the new range!
-
br-m
<ravfx:xmr.mx> I did keep the old range blocked in case
-
br-m
<rucknium> How can versioning be handled? IIRC, you can add comments to specific lines in the ban list file. IIRC, @jeffro256:monero.social added that feature. Can comments be added on their own line?
-
br-m
<jeffro256> Yes
-
br-m
<jeffro256> Everything on a line on or after a pound character is ignored, then whitespace is stipped, and empty lines ignores
-
br-m
<jeffro256> *ignored
-
br-m
<rucknium> And there is the DNS ban list. One could take a big step and completely replace the DNS ban list with the new MRL ban list (or as many IP addresses on the MRL ban list that fit). It seems that all the nodes on the DNS ban list have disappeared from the network.
-
br-m
<rucknium> Or you could keep most of the DNS ban list unchanged and add the big /24 subnets from the new MRL ban list.
-
br-m
<rucknium> @jeffro256: So maybe a comment could be added to the top of the MRL list: Version 2 or something. And put in-line comments on the old and new /24 ranges, describing what happened.
-
br-m
<rucknium> I just remembered that I wanted to say something at the beginning of the meeting:
-
br-m
<rucknium> Next Wednesday is December 24. Personally, I won't put up an MRL agenda in the meta repo and I won't chair a meeting then. If anyone else wants to, they should feel free.
-
br-m
<boog900> We could, do we care the ban list won't then work on older daemons though?
-
br-m
<rucknium> Good question. Maybe just the comment on the top. That's supported on old nodes, right?
-
br-m
<jeffro256> i dont think so
-
br-m
<rucknium> Here is your PR:
monero-project/monero #9558
-
br-m
<rucknium> I thought from the decision that non-inline comments were allowed before, but maybe not.
-
br-m
<rucknium> the description*
-
br-m
<rucknium> Is there another way to properly version the list? Or just live without proper versioning?
-
br-m
<jeffro256> Nope, they weren't a thing at all. The old parsing code reads a line in, then immediately tries to parse it as an net address
-
br-m
<jeffro256> IIRC the net address parsing code skips whitespace, but definitely no comments
-
br-m
<rucknium> Any comments from anyone else about this topic? Anyone opposed to updating the MRL ban list and publicizing it?
-
br-m
<rucknium> Is @preland:monero.social here?
-
br-m
<preland> I'm taking a final in 6 minutes (sry)
-
br-m
<jberman> I think it's ok that the ban list doesn't work on older daemons
-
br-m
<rucknium> @preland:monero.social: Good luck!
-
br-m
<jeffro256> Me too. If they're not updating their daemon code, they're probably not keep up-to-date with the ban list
-
br-m
<jberman> The recent updates have been important, more people updating is good
-
br-m
<rucknium> Do we know what happens if a ban list with comments is ingested by an old-version node? I can try it if we don't know yet.
-
br-m
<rucknium> The next agenda item (Post-FCMP scaling concepts) was suggested by preland, but they are busy now. Going to next item.
-
br-m
<rucknium> 6. Transaction volume scaling parameters after FCMP hard fork (
github.com/ArticMine/Monero-Documen…/master/MoneroScaling2025-12-01.pdf). Revisit FCMP++ transaction weight function (
seraphis-migration/monero #44).
-
ArticMine
-
br-m
<jberman> Last week @boog900:monero.social , tevador , and I raised explicit support for max growth of 1.2x the LTM, in addition to the sanity cap
-
br-m
<jberman> @boog900:monero.social mentioned this would allow for 40-47x growth within 1 year, and 2.5x every year after that
-
br-m
<jberman> 40-47x year 1 growth also fits within @ofrnxmr:monero.social's expected growth also shared last week:
libera.monerologs.net/monero-research-lab/20251210#c625246
-
br-m
<jberman> I do not think the sanity cap justifies a higher LTM growth rate, because as @boog900:monero.social has argued, the sanity cap eventually will not matter due to its exponential growth
-
br-m
<jberman> Personally I would prefer @boog900:monero.social's proposed params over all proposals, and rank my order of preference:
-
br-m
<jberman> 1. @boog900:monero.social's proposed params, 2) sanity cap, 3) hard cap
-
br-m
<jberman> I am in favor of all 3, but personally mention I'd be ok with excluding the hard cap
-
br-m
<articmine> I have updated this to to cap the MS growth to 8 ML
-
br-m
<jeffro256> Rucknium: a comment line in the ban list should get printed on stdout and skipped
-
br-m
<articmine> I have given my reasons for keeping the growth of ML at 2 under the sanity cap
-
br-m
<rucknium> @jeffro256:monero.social: Would the rest of the ban list lines be interpreted normally and successfully?
-
br-m
<jeffro256> I think so, but I haven't tested
-
br-m
<jberman> @rucknium:monero.social @jeffro256:monero.social @ofrnxmr:monero.social curious if you have thoughts on 2x LTM versus 1.2x LTM
-
br-m
<articmine> We must keep in mind the sanity cap applies
-
br-m
<articmine> So it is the lower of the two
-
br-m
<jberman> > I do not think the sanity cap justifies a higher LTM growth rate, because as @boog900:monero.social has argued, the sanity cap eventually will not matter due to its exponential growth
-
br-m
<jeffro256> @jberman: I think that max long-term growth YoY of 2.5x is enoug, personally
-
br-m
<jeffro256> growth in block size
-
br-m
<jeffro256> Which corresponds to the 1.2x LTM value, right?
-
br-m
<jberman> right
-
br-m
<jeffro256> Then I am also in favor of boog's proposal
-
br-m
<articmine> Yet but this ignores the suppression of Monero for at least the last 5 years
-
br-m
<jberman> non sequitor
-
br-m
<articmine> I know about the lobbying behind the scenes here
-
br-m
<articmine> It is not a non sequitor
-
br-m
<jberman> It is, and your constant witch hunting is hostile to the Monero project
-
br-m
<rucknium> IMHO 1.2x growth on the 100,000-block long-term median (LTM), which allows 2.5x growth annually after exhausting the short-term growth ceiling, would sound good to me. Stressnet is having difficulties processing the (rough) amount of txs that the short-term growth would allow.
-
br-m
<articmine> @rucknium: But you are ignoring the sanity cap
-
br-m
<jberman> > I do not think the sanity cap justifies a higher LTM growth rate, because as has argued, the sanity cap eventually will not matter due to its exponential growthboog900bo
-
br-m
<jberman> 3rd time I've posted this message and you've consitently ignored it every time
-
br-m
<articmine> boog's was without a sanity cap
-
br-m
<jberman> That is not a coherent response to the message
-
br-m
<articmine> What is your rationale
-
br-m
<rucknium> I don't really like exponential growth in the long term, but changing the functional form would require re-analysis of the whole blocksize-fee interaction system.
-
br-m
<rucknium> IMHO, fee analysis of blockchains is nontrivial.
-
br-m
<jberman> Expontential growth in the long term means that it will eventually grow so large that it won't have any impact in limiting growth
-
br-m
<articmine> It is the lower of the two
-
br-m
<jeffro256> IMO I think that there should be a sanity cap just to be safe on either of the proposals, which doesn't necessarily have to be exponential indefinitely
-
br-m
<articmine> I agree with the sanity cap
-
br-m
<rucknium> Asking for rice grains on chessboard squares.
-
br-m
<articmine> What I don't understand is why lock in the harm that has by done
-
br-m
<jberman> It isn't locking in harm that has been done that is a madeup argument that has no basis in reality. It's implementing rational limits that ensure the network remains healthy
-
br-m
<jeffro256> I think that the harm is a sunk cost, we can't unharm reputation / adoption / suppression by allowing big blocks. The harm is at root done at the human level. Yes, perhaps Bitcoin's p-to-p use case is bottlenecked at a technical level, but we're not there: our use case is bottlenecked at the political / adoption level
-
ArticMine
-
br-m
<articmine> I can't ignore the suppression and how much longer it can go on
-
br-m
<jberman> Good thing 1.2x LTM allows 40-47x growth within 1 year and 2.5x per year every year after that
-
br-m
<articmine> Just look at the historical transaction data for Monero
-
br-m
<articmine> @jberman: It does not if the suppression continues
-
br-m
<jberman> Yes, it does
-
br-m
<articmine> The is no chance to recover
-
br-m
<articmine> Do the math for another decade of suppression
-
br-m
<boog900> You cant predict the future usage of monero
-
br-m
<jberman> By your argument, a 10,000x LTM also would not allow for growth if suppression continues
-
br-m
<articmine> @boog900: Neither can tou
-
br-m
<articmine> You
-
br-m
<boog900> I know my numbers are arbitrary just like yours
-
br-m
<articmine> @jberman: We can go to the ridiculous
-
br-m
<boog900> I feel they allow enough growth while being much safer than what our current algo is and what you propose
-
br-m
<articmine> I have to disagree if the suppression continues
-
br-m
<articmine> For like a decade
-
br-m
<articmine> This is the situation where there is a real difference
-
br-m
<jberman> No algo works if suppression continues indefinitely. When suppression stops, 40-47x within 1 year and 2.5x every year after that is strong allowed growth
-
br-m
<articmine> Which may not be enough
-
br-m
<articmine> Monero climbed 1000x in under 2 months
-
br-m
<articmine> That is in the data I posted
-
br-m
<articmine> Which is being ignored
-
br-m
<jeffro256> If suppression continues for another decade, the limiting factor would be the circular economy infrastructure, not block size. There's a lot of moving parts in an economy that need slow growth and can't be migrated overnight
-
br-m
<boog900> And yet scaling has pretty much never been activated
-
br-m
<articmine> @boog900: Which proves my point
-
br-m
<rucknium> I note that on current stressnet when blocks get around 20MB, there are a lot of orphans and alt chains. Mining pools, if they are alert, may try to limit their own block sizes voluntarily, below the consensus limits, to prevent their blocks from being orphaned.
-
br-m
<boog900> It proves we would have been fine up until now with my scaling algo
-
br-m
<articmine> That the market is dealing with all of these Doomsday scenarios
-
br-m
<rucknium> Alt chains on stressnet, by @datahoarder:monero.social :
stressnet.p2pool.observer
-
br-m
<gingeropolous> @rucknium: the mining pools would just peer with each other or create their own rails, like bitcoin has
-
br-m
<articmine> @boog900: ... and with the original algo
-
br-m
<datahoarder> @rucknium: Not visible at the moment even on
stressnet.p2pool.observer/fullplot.svg but I could put a fixed height if we want to have an example
-
br-m
<jeffro256> That's not a fair comparison and you know that. A new currency going from 1 user to 1000 users is not the same as going from 1000 users to 1000000 users > <@articmine> Monero climbed 1000x in under 2 months
-
br-m
<rucknium> And then p2pool and solo miners would have a bad time
-
br-m
<boog900> @articmine: Anyone agree with article today?
-
br-m
<boog900> Artic*
-
br-m
<datahoarder> p2pool also has an effective limit in how many txs can be included on the template, but it might go up in the future
-
br-m
<articmine> @jeffro256: It is actually the sharpest that I have seen when compared to Bitcoin etc
-
br-m
<ofrnxmr> @rucknium: And to more effectively orphan other blocks
-
br-m
<ofrnxmr> But these are efficiency gains, not impossible issues
-
br-m
<vtnerd> @articmine: That many users is way more complicated for the infrastructure
-
br-m
<vtnerd> Like the difficulty in engineering ramps up considerably. Every other project just punts and requires tons of ram
-
br-m
<articmine> I am not suggesting 1000x in two months
-
br-m
<jberman> The orphaning issue would be a good one to write up in the stressnet repo. Theoretically I'd assume orphan rates would go up with larger blocks, but I'm sure there are fixes to work through there to mitigate the observed issues
-
br-m
<ofrnxmr> @ofrnxmr: It shouldnt take longer to produce a big block alt chain than a small block one, if the nodes already have the txs. It currently does. I assume its reverifying txs in alt chains or smthn
-
br-m
<articmine> ... but it will take over 6 years to get to 100 MB
-
br-m
<boog900> Your ability to not listen is impressive
-
br-m
<articmine> So is yours
-
br-m
<jberman> @ofrnxmr:monero.social @gingeropolous:monero.social do either of you guys have thoughts on 1.2x LTM vs 2x LTM? Do you follow the argument over that param specifically?
-
br-m
<jberman> and @datahoarder:monero.social
-
br-m
<ofrnxmr> W/ sanity cap. 50x stm and 1.2ltm = 31mb and 78 max in yr. Year one limited to 10mb due yo sanity cap?
-
br-m
<ofrnxmr> w/o sanity cap. 16x stm and 2.0?
-
br-m
<ofrnxmr> Are these whats on the table?
-
br-m
<articmine> @jberman: You are asking people to consider a parameter in isolation out of context
-
br-m
<datahoarder> I have not followed the precise parameters as they have progressed across the past weeks, but note that attacks can be done context-less on scaling methods that just depend on height (and not actual chain state) for abusing RPC or sync
-
br-m
<articmine> Look for example at the 5 months scenario
-
br-m
<ofrnxmr> I think 1.2ltm w/ a 50stm + sanity cap works
-
br-m
<ofrnxmr> But 16stm and 1.2 is a bit low
-
br-m
<gingeropolous> you gotta count me out of this. I don't have the terms / acronyms engrained in my head like I should for this conversation for me to be effective. over the next 3 weeks im gonna try and get myself re-acquainted with this stuff.
-
br-m
<datahoarder> However if we are scaling to those block sizes - the current system is not workable for miners (they will soft cap) unless transactions can pass around easier in the future.
-
br-m
<ofrnxmr> @ofrnxmr: (This is using a 625kb penalty free)
-
br-m
<articmine> @ofrnxmr: I also can agree with that. But not with a 8 stm
-
br-m
<articmine> @ofrnxmr: They want 8 stm and 1.2ltm
-
br-m
<boog900> @ofrnxmr: That is quite aggressive IMO, allowing 100x on the current long term median in the short term
-
br-m
<boog900> My proposal is 8 stm
-
br-m
<articmine> On top of an agreed to less than 1.4 x yearly cap
-
br-m
<ofrnxmr> @boog900: in the short term the max is 10mb .. then 15mb.. then like 20mb..
-
br-m
<articmine> @boog900: Your original proposal did not have a sanity cat
-
br-m
<articmine> cap
-
br-m
<boog900> @articmine: I have stated so much its an optional add on
-
br-m
<boog900> Its still not in my proposal as a must
-
br-m
<articmine> It was way more aggressive than Bitcoin Cash
-
br-m
<ofrnxmr> W/o a sanity cap, id use more restrictive values
-
br-m
<articmine> My point is that with a sanity cap we can use 8stm 2ltm
-
br-m
<boog900> > Optionally we can add the moving sanity cap, however I do not think it is necessary, with an algorithm that moves at an appropriate rate.
-
br-m
<boog900> Literally in my proposal from the start
-
br-m
<boog900> Politician level of honesty
-
br-m
<jberman> One thing to clarify about STM. Common to all proposals on the table, there is a separate 2x on top of the STM. I believe that's why boog says 50stm allows 100x on the current LTM in the short term
-
br-m
<ofrnxmr> @boog900: yeah, i disagree with this, because this just caps scaling with the assumption that the network wont improve until it has to, where with sanity cap improving it should be a first class citizen
-
br-m
<jberman> that's accurate, right @boog900:monero.social ?
-
br-m
<articmine> @boog900: ... and I am not forgettting the next item on the agenda the Bitcoin style hard caps that my proposal make redundant
-
br-m
<boog900> @ofrnxmr: The sanity cap assumes exponential growth of our capacity, let's not pretend that will perfectly track our actual capacity growth
-
br-m
<boog900> @jberman: Yes
-
br-m
<boog900> @articmine: Politician levels of point dodging
-
br-m
<ofrnxmr> @boog900: so 50stm w 625kb penaltyfree = 62mb max?
-
br-m
<articmine> A 32 MB hard cap is on the agenda
-
br-m
<boog900> @ofrnxmr: Yes
-
br-m
<ofrnxmr> @boog900: ok so 25stm
-
br-m
<articmine> We are talking at this point 8 stm and 2 ltm
-
br-m
<articmine> With a sanity cap
-
br-m
<boog900> @ofrnxmr: IMO even 8 is too high. With an adjusted long term median of 5 MB, 50x would allow 250 MB blocks in the short term.
-
br-m
<ofrnxmr> 25stm + 1.2ltm + sanity cap
-
br-m
<ofrnxmr> W/o sanity cap id be on the side of restricting further, but i dont think im in that camp
-
br-m
<articmine> But this is not enough for the small blockers
-
br-m
<boog900> I just don't think the sanity cap should come into discussion for the underlying algo
-
br-m
<boog900> Like it should just be an add on for both
-
br-m
<boog900> Shouldn't be relying on it for security
-
br-m
<jberman> I generally agree with boog there
-
br-m
<articmine> @boog900: It is critical for the discussion
-
br-m
<ofrnxmr> I don't want to have this argument every 3-4 years. we can use semi-fast growth scaling and adjust the sanity cap at thr next hard fork if we fuck up and havent made progress
-
br-m
<articmine> Who thinks the sanity cap is not relevant here?
-
br-m
<boog900> @articmine: Yes because otherwise your proposal is stupid.
-
br-m
<boog900> It depends on it for its security
-
br-m
<articmine> @boog900: By the same argument so is yours
-
br-m
<jberman> I re-raise the point that I'm in favor of boog's proposed params without a sanity cap
-
br-m
<boog900> @ofrnxmr: That's exactly what I am trying to prevent by not having an ever moving sanity cap.
-
br-m
<ofrnxmr> I wouldnt be in favor of 10mb blocks being the max 5 years from now, just because 4 years from now volume was low
-
br-m
<articmine> @ofrnxmr: That is my t
-
br-m
<articmine> point
-
br-m
<boog900> @ofrnxmr: It wouldn't be the max, blocks can grow. Yes there could be some congestion, but that's the case with anything but infinite block size.
-
br-m
<ofrnxmr> With fcmp, it doesnt take very many txs to fill a 10mb block
-
br-m
<boog900> Its about safe growth, nodes need time to prepare
-
br-m
<boog900> Both software and hardware
-
br-m
<jberman> 8x STM, 1.2x LTM allows for 40-47x growth short term. Even with the sanity cap (which I wanted to avoid rasing here), 4 years from now it will have grown 10mb * 1.4^n (n is years from when sanity cap is in place)
-
br-m
<jberman> so there's no proposal on the table that would have a cap on block size at 10mb in 4 years
-
br-m
<rucknium> 7. Proposal: Limit blocks to 32 MB, regardless of context (
monero-project/research-lab #154).
-
br-m
<articmine> Just a note. I am traveling back to Canada on Dec 31st so I will not be able to attend a meeting on December 31st
-
br-m
<jberman> did I misunderstand something? @ofrnxmr:monero.social why did you say you're against 10mb blocks in 4 years just becaues volume now is low?
-
br-m
<jberman> what proposal makes you think there would be max 10mb blocks in 4 years?
-
br-m
<ofrnxmr> @jberman: i must not understand the math here
-
br-m
<rucknium> @vtnerd:monero.social has stepped forward to save the kingdom:
monero-project/research-lab #154#issuecomment-3651723232
-
br-m
<rucknium> i.e. to engineer a solution to the 100MB packet limit.
-
br-m
<jberman> @ofrnxmr: which math were you misunderstanding?
-
br-m
<jberman> or assuming
-
br-m
<ofrnxmr> @jberman: i understand it as
-
br-m
<ofrnxmr> penalty free = 625kb, 8x = 5000kb, *2 = 10000kb
-
br-m
<vtnerd> @rucknium:monero.social: oh no! Yeah itll be an interesting engineering feat
-
br-m
<jberman> Got it, the proposal's short term limit, that the LTM still allows to be raised with consistent high usage
-
br-m
<articmine> Yes this is not necessary with the sanity median
-
br-m
<articmine> So NO
-
br-m
<articmine> To the 32 MB or 90 MB Bitcoin style limit
-
br-m
<ofrnxmr> @jberman: So were talking about 25mb in first year w/o prior volume?
-
br-m
<articmine> For clarity my ABSTAIN is no longer the case
-
br-m
<articmine> Sanity cap
-
br-m
<articmine> Makes these hard limits un necessary
-
br-m
<jberman> @ofrnxmr: yes
-
br-m
<ofrnxmr> Last hard for q4 2022. So about 3.5yrs since last hard fork.
-
br-m
<ofrnxmr> I assume the next hard fork (after fcmp) will be less than 4yrs after. With sanity cap, we wont hit 90mb before we hard fork again
-
br-m
<articmine> Not with my proposal
-
br-m
<ofrnxmr> And i assume we'll have to hard fork to fix relay /p2p
-
br-m
<articmine> @ofrnxmr: Yes
-
br-m
<rucknium> Weren't fluffy blocks introduced between hard forks?
-
br-m
<jberman> @boog900:monero.social thoughts on raising the STM, and potentially reducing the LTM a bit further? that would accomodate the "holiday shopping" influx
-
br-m
<ofrnxmr> @jberman: Yeah.. i'd probably go with artics 16x + 1.2 + sanity
-
br-m
<ofrnxmr> @rucknium: As optional iirc, not sure how that worked
-
br-m
<rucknium> IIRC, there is a Levin flag for Fluffy blocks support. That wouldn't be needed if fluffy blocks were introduced at a hard fork.
-
br-m
<boog900> @ofrnxmr: That's literally my proposal fwiw.
-
br-m
<ofrnxmr> @rucknium: But the issue here isnt adding new feature, thats easy, its that old nodes would break if they dont adopt it and blocks go over 90mb
-
br-m
<boog900> @jberman: Ehh the stm is the thing I think is too high, I wouldn't mind raising it a little
-
br-m
<ofrnxmr> So the fixes could be deployed w/o hard fork, but wouldnt prevent neteork fracture unless mandatory update
-
br-m
<articmine> @boog900: To clarify 16 x on MS , 1.2x on ML plus sanity ?
-
br-m
<jberman> @boog900: @ofrnxmr:monero.social by artic's 16x, you're saying you'd be ok with allowing 32x in short term?
-
br-m
<boog900> Just because an update it technically a HF it doesn't mean we have to actually officially HF
-
br-m
<rucknium> And I guess if you have a lot of old nodes on the network, it would consume resources of the new nodes since they would relay txs the old way.
-
br-m
<ofrnxmr> @jberman: Yeah
-
br-m
<ofrnxmr> @rucknium: This is also an issue with tzrelayv2, since it still have to deal with old nodes using old relay
-
br-m
<boog900> Artics original 16x was with a modified algorithm that only allowed 16x max growth
-
br-m
<articmine> Who If we cap MS then the blocksize is allowed to go to 2x MS
-
br-m
<boog900> His new one is 8 x for stm which allows 16x max growth
-
br-m
<articmine> Unless of t sanity caps the blocksize
-
br-m
<boog900> So I thought for either one my one is pretty much that. I didn't realize you wanted 32 x max growth
-
br-m
<boog900> I don't see the need ngl
-
br-m
<boog900> Bitcoin cash has much less aggressive algo and they showed it could handle the combined usage of btc ETH ltc and bch iirc
-
br-m
<ofrnxmr> @boog900: Their txs are also 20x lower in size, so isnt their tx throughput much greater
-
br-m
<ofrnxmr> smaller*
-
br-m
<boog900> Its still multiplies based on previous size though, but yes.
-
br-m
<kayabanerve:matrix.org> I still support a 90 MB hard cap until the P2P, RPC protocols are upgraded.
-
br-m
<articmine> That is correct. 16x on both MS and block weight > <@boog900> Artics original 16x was with a modified algorithm that only allowed 16x max growth
-
br-m
<rucknium> I propose that scaling discussion be skipped at the December 31 MRL meeting.
-
br-m
<boog900> I think we can declare consensus, with the people supporting my proposal last meeting and this meeting.
-
br-m
<articmine> @rucknium: I will not be able to attend that meeting since I am flying back to Canada from Europe that day
-
br-m
<ofrnxmr> So in conclusion: what is artics proposal and boogs proposal.
-
br-m
<boog900> @articmine: Yes so max size with both is than same as my proposal
-
br-m
<articmine> @ofrnxmr: My latest is 8x on MS 16x on the block weight 2 x on ML plus sanity cap
-
br-m
-
br-m
<boog900> The last bit of that comment is my proposal
-
br-m
<articmine> Just plug give us the critical numbers
-
ArticMine
-
br-m
<boog900> @articmine: 8 MS, 1.2 ML, optional sanity
-
br-m
<articmine> What about the block weight!
-
br-m
<articmine> 8 Or 16?
-
br-m
<boog900> I didn't change the algorithm to try and get faster growth.
-
br-m
<boog900> So 16x
-
br-m
<articmine> So we are both in agreement on MS and the block weight
-
br-m
<boog900> Yes, the part of my proposal that had the most contention today, we agree on.
-
br-m
<articmine> This come then down to 2x on ML with mandatory sanity vs 1.2x on ML with optional sanity?
-
br-m
<jberman> I'm in favor of @boog900:monero.social's proposal regardless of the sanity cap
-
br-m
<articmine> Let us be clear on what is on the table
-
br-m
<boog900> 1.2 has had overwhelming support
-
br-m
<jberman> I would reluctantly be ok with 2x'ing the MS (to allow for 32x growth) and keeping 1.2 ML
-
br-m
<jberman> And I am in favor of the sanity cap regardless
-
br-m
<ofrnxmr> Alright so sounds like we're close
-
br-m
<articmine> I have to oppose 1.2 on ML with sanity
-
br-m
<boog900> You would be OK without sanity?
-
br-m
<articmine> No because the proposed hard caps at 90 MB and 32 MB
-
br-m
<articmine> I have to insist on sanity
-
br-m
<jberman> I would be ok with boog's proposed without a sanity cap and without a hard cap
-
br-m
<jberman> 2-3 years of consistently maxxed out usage to trip the 100mb limit
-
br-m
<articmine> @jberman: I can support that
-
br-m
<boog900> Sounds good to me.
-
br-m
<jberman> 2-3 years seems manageable, albeit it is a marginally uncomfortable position to be in for something to need to potentially be "managed"
-
br-m
<boog900> better than the current situation at least
-
br-m
<jberman> @boog900: yep
-
br-m
<articmine> So there we have it
-
br-m
<articmine> 8x on MS 16x on block weight 1.2 on ML no sanity no hard caps
-
br-m
<articmine> Do we have consensus?
-
br-m
<jberman> +1
-
br-m
<boog900> I agree to that.
-
br-m
<ofrnxmr> deal
-
br-m
<rucknium> +1
-
br-m
<rucknium> More people want to chime in?
-
br-m
<ofrnxmr> @rucknium: twitter's never going to let us live this down
-
br-m
<jeffro256> +
-
br-m
<ofrnxmr> This will incidentally fix (hide) the xmrig issue for large templates (since there wont be any blocks with 2800txs in them)
-
br-m
<rucknium> Twitter is a constant reminder that the medium is the message.
-
br-m
<spackle> +1
-
br-m
<ofrnxmr> (for a while anyway)
-
br-m
<rucknium> It looks like there is consensus at this meeting for "8x on MS 16x on block weight 1.2 on ML no sanity no hard caps"
-
br-m
<articmine> I will proceed to update the document accordingly
-
br-m
<rucknium> @articmine:monero.social: Thank you
-
br-m
<rucknium> 8. FCMP alpha stressnet (
monero.town/post/6763165).
-
br-m
<jeffro256> v1.5 is coming out soon, be on the lookout for that
-
br-m
<ofrnxmr> Not many fcmp issues being encountered. Mostly monerod issues
-
br-m
<jberman> anything new? AFAIK, main items now are the "not relayed" state, segfault, and higher orphan rates?
-
br-m
<rucknium> We can end the meeting here. Thanks everyone.
-
br-m
<ofrnxmr> Cheers
-
br-m
<jeffro256> Thanks everyone
-
br-m
<ofrnxmr> @jberman: Not relayed = absent on current spam so maybe can ignore that for now
-
br-m
<ofrnxmr> Higher orphan rates also seem to be related to very slow notifications of new blocks when blocks are big. When i mine a block on node A (add-priority-node=nodeb) nodeb doesnt see that theres a new block for sometimes 5-10 seconds
-
br-m
<jberman> I'm guessing node B probably doesn't have all the block's txs and has to do rounds to get them all
-
br-m
<jberman> but maybe there are some lingering connection issues to still deal with / correct
-
br-m
<jberman> in any case ya it shouldn't take 5-10s to do all those rounds. logs will help explain that one
-
br-m
<rucknium> Maybe could have something to do with the 600MB default txpool size. "Actual" txpool is size is 1GB. Next stressnet, default txpool size should probably be raised.
-
br-m
<jberman> yes, if missing txs, it'll still verify any new ones which can take ~5s b/c of 128-in's. and then it does a round to get its missing ones which can take another ~5s to verify again
-
br-m
<ofrnxmr> Both of the pools are pretty similar, i assume they have most of the same txs, especially for the first block mined
-
br-m
<ofrnxmr> I add like 100mb to the pool of high fee txs before mining, so the first block should have the oldest of those in it
-
br-m
<ofrnxmr> And there are (afaik) no 128in txs
-
br-m
<ofrnxmr> Not from me, anyway
-
br-m
<ofrnxmr> All of mine are 1 or 2 in, and 2 or 16 out
-
br-m
<rucknium> When the txpool hits the limit, does it refuse new txs or kick out old ones?
-
br-m
<jberman> if a tx pays a fee higher than any alreayd in the pool, it'll replace the lowest paying tx(s)
-
br-m
<jberman> otherwise it won't accept the new ones
-
br-m
<rucknium> That could cause problems here because my spammer is paying low fees and @ofrnxmr:monero.social is paying high fees.
-
br-m
-
br-m
<jberman> @rucknium: v1.5 will also include improvements to the node's behavior when this is happening
-
br-m
<jberman> and v1.4 is actually broken when that's happening
-
br-m
-
br-m
<articmine> Thanks
-
br-m
<articmine> I have added the updated scaling documents as discussed
-
br-m
-
br-m
<boog900> @articmine: why change the definition of Ms?
-
br-m
<articmine> The bound to ML was performed on MN before
-
br-m
<articmine> On the next step
-
br-m
<articmine> So technically MS was not bound to ML . It was the actual penalty median MN
-
br-m
<articmine> It is simpler and in line with what was discussed but functionally equivalent
-
br-m
<articmine> I believe that this was changed at the last fork, but I may be wrong
-
br-m
<articmine> Yes it was defined in two steps before. So yes we should have been arguing over MN rather than MB
-
br-m
<articmine> MS*
-
br-m
<articmine> Since we argued over MS then changing the definition of MS to follow everyone's understanding of what MS means makes sense
-
br-m
<boog900> in the code we get the median of the last 100 blocks weight for Ms, but for Mn we then do min(max(Ml, Ms), 50 * Ml). From the doc it would seem Ms should be a median of max(Mb, Ml) for the Ml at block Mb.
-
br-m
<articmine> So the simplest way then is to change 50 to 8 in the code and then change the definitions of both MS and MN to reflect the code?
-
br-m
<articmine> That actually makes more sense to me.
-
br-m
<boog900> yeah I agree
-
br-m
<articmine> Then I will make the changes in document to avoid any confusion
-
br-m
<articmine> The other median should be straight forward. Just change 1.7 to 1.2
-
br-m
<articmine> ML