Thanks for the response, @rocks.Yes, the rules in purple were added over time after Satoshi left. My question continues to be why add a new purple blocksize rule for individual nodes? Nodes reject blocks by not passing them on. Adding a new relay limit is in effect making it possible for nodes to reject blocks over some level. That is not unlimited.
If the concern is network limitations for non-mining nodes, then add upload/download parameter limits. But don't enable what is essentially a new block rejection rule based on size.
I also continue to believe that non-mining nodes should either "keep up" with the longest valid chain or drop off. Rejecting larger blocks (which is what not relaying is), is counter productive to the BU concept IMHO. Non-mining nodes simply should not be able to influence what is consensus over size, they do not participate in the POW work mechanism and thus are Sybil attack vectors.
This will be my last post on the topic. I understand you guys see it differently, but I continue to be concerned over adding what looks to be a new path to reject large blocks and see adverse effects, effects we probably won't see in the next few years, but will see over time.
Edit: Remember, guys like LukeJr have stated they think 1MB is too large. What if a bunch of them spin up 10,000 BU nodes with a relay limit of 100K? We just made it easy to hold things back.
If you're going to make that claim then I could also say you are forcing people to vote for bip101 and bip100 since BU automatically votes for those. Both statements are equally absurd.
This is a good thought experiment to think through how the network could respond to nodes trying to be disruptive.Edit: Remember, guys like LukeJr have stated they think 1MB is too large. What if a bunch of them spin up 10,000 BU nodes with a relay limit of 100K? We just made it easy to hold things back.
I read laissez faireit and wanted to say I'm in support of as liberal and free market as is possibly viable. and to put it in context with my understanding.@rocks and @theZerg
No time to post at length right now, but I'm very much enjoying your discussion around the question of what we really mean or should mean by "unlimited." It's an interesting question in that a multiplicity of implementations already potentially gives the user a choice of blocksize policy at the point when they choose an implementation, but should choosing BU itself constitute a vote against a hardcoded blocksize cap, or should it offer a further choice within itself?
In other words, would we have a better result (i.e., lower chance of a restrictive hard blockzise cap) if the market equilibrium on blocksize were determined by the balance among user choices of implementations as per @Peter R's animated pie chart, or by choices users specify within BU (and other implementations, if they offer a choice)?
In a world where BU becomes the dominant implementation, theZerg's view makes sense: why say we know what's best for the user, especially when it is trivial to change? In a world where BU becomes the "kill the damn cap" implementation, though, rocks' view makes sense: it should do what it says on the label.
Do we want to attract the most users by giving them complete choice, or do we want to make it a matter of attracting all the "no hard cap" users without dilution of the pure vision? Do we want the "voting" to happen within implementations or between them? Do we gain more (in terms of removing/allieviating hard caps) by big-tentism or by purity? Is "leaving it to the market" best understood to include the meta-idea of also leaving the choice of whether to leave it to the market to the market (i.e., not just letting blocksize be chosen economically, but letting users decide how much economic freedom they want to vote for; in other words laissez faire or "laissez faire on the matter of laissez faire")?
I must say I'm finding it hard to conceptualize the whole scope of what we're really looking at here without some kind of visual map of the arguments.
@rocks First of all, noone has discussed the details of whether bip100/101 tagging would be configurable. I would probably add options to turn on/off bip100/101 tagging for the simple reason of "what if one of the BIPs is retracted or a user likes 101 but not 100"? Yet at the same time, if we choose not to make these optional the reason could not be to remove choice from the user (after all, he can always use another client to get that functionality) but simple expediency.If you're going to make that claim then I could also say you are forcing people to vote for bip101 and bip100 since BU automatically votes for those. Both statements are equally absurd.
BU is suppose to be about having the choice of a client that removes all constraints on block size at the consensus layer, so that the market can find a clearing price and volume for transactions. Not relaying blocks is in effect the same as rejecting them, which is in fact adding a new consensus layer constraint on block sizes, opposite of BU's stated goals.
Its absurd to attack me and say I'm trying to force anything on anyone. I'm trying to show you that you are creating a new consensus layer constraint opposite of BU's stated goals.
I'm good with this and I also agree that is would be a PR win. @rocks, @AdrianX : what do you think?It sounds like "default is unlimited but even unsophisticated users can easily adjust the settings" might be the sweet spot. No matter how much we want BU to be the "no hard cap" implementation, giving users the choice to change the default is going to be an overwhelming PR win.
But with the meta-cognition stuff, we wouldn't need this warning (or at least it could be phrased much differently) because it still would track consensus.There should probably be a little blurb when the user goes to change the default, saying something like, "Warning: Setting a blocksize limit may impair your client's ability to track longest-chain consensus.
@theZerg@rocks First of all, noone has discussed the details of whether bip100/101 tagging would be configurable. I would probably add options to turn on/off bip100/101 tagging for the simple reason of "what if one of the BIPs is retracted or a user likes 101 but not 100"? Yet at the same time, if we choose not to make these optional the reason could not be to remove choice from the user (after all, he can always use another client to get that functionality) but simple expediency.
@cypherdoc you might have a point about public opinion which can be swayed irrespective of facts. However if these features are optional it is very difficult to claim we are forcing them on anyone which is I think more what hamstrung XT.
To all of you, I am arguing the BU return consensus back to how Satoshi envisioned it. And that BU enable the utilization of power that nodes have always had. All that I'm suggesting be added are graphical buttons and dials to access functionality that a developer can already easily tweak. Do some of you want to level the playing field between devs and the rest? This is how to do it.
In computer science this is a "hard problem", which means that it is unsolved. Until Satoshi invented the POW method that tied the destruction of real world resources to the digital world, there were no methods to 100% protect a P2P network against attacks.In general, over time, nodes should develop ways of dealing with other nodes that may be "misbehaving". If Bitcoin as a system is going to be successful, it needs to be resilient to anti-social behaviors by some. Hopefully if most nodes just act in their self interest, and can defend against disruptive behavior, then the network as a whole can be resilient destructive actors.
I think it is a PR win I also like the warning. I'm not concerned about the short and medium term implications. I'm worried about node operators a decade from now. How will they vote. Just reflecting on my personal position I'll be opposed to taking my node from a service rack to bigger capital investment. (I'm thinking I'll run a node like I run my miners)I'm good with this and I also agree that is would be a PR win. @rocks, @AdrianX : what do you think?
But with the meta-cognition stuff, we wouldn't need this warning (or at least it could be phrased much differently) because it still would track consensus.
Decisions, decisions...I guess I'm of the opinion that any time a decision is needed it should be possible for an educated node operator (who doesn't code) to over-rule Bitcoin Unlimited's default decision. But now we're back to BU representing a "big change in thinking" that @rocks was worried about.