satoshis_sockpuppet
Active Member
- Feb 22, 2016
- 776
- 3,312
https://pbs.twimg.com/media/Cw8z0sjXgAEiL0S.jpg:large
I like how Bitcoin Unlimited is seen as just "Bitcoin".
I like how Bitcoin Unlimited is seen as just "Bitcoin".
It's contingent upon the settings of the node, but cut the shit please, we know you know that, and this is all an effort to confuse people into thinking that the intended behavior of BU is a bug.I take that all to mean, that in the above scenario, you don't know what chain a new BU node will build on?
I am convinced it's the blue one, but when I ask these basic questions you guys just waffle on without understanding how, why or if BU nodes (Even with the same AD and EB values) converge on the same chain.
Because that is how BU nodes are configured to automatically act. If you want the human mining operator to manually check the economic and social merit before building on each block that is not Bitcoin, not unique nor is it convergent.Until you convince me why a miner should mine on top an orphaned block there is nothing to talk about.
AD = 4 and EB =1...It's contingent upon the settings of the node
I have not been claiming this for a few days, but several months.@jonny1000:
For the last few days, you were claiming that a miner mining 1 block on the small-block chain could cause BU nodes to orphan 3 blocks on the large-block chain and thus BU was broken. I showed that this is not true and I think you even agree now.
Before we move on to your entirely different argument for why you still think BU is broken, can you please say "yeah OK I was wrong, a miner mining a new block on the small-block chain will NOT cause BU nodes to orphan three blocks on the big-block chain."
My emphasis. Miners that cling to the blue block are in a subfaction.It is strictly necessary that the longest chain is always considered the valid
one. Nodes that were present may remember that one branch was there first and
got replaced by another, but there would be no way for them to convince those
who were not present of this. We can't have subfactions of nodes that cling to
one branch that they think was first, others that saw another branch first, and
others that joined later and never saw what happened. The CPU power
proof-of-work vote must have the final say. The only way for everyone to stay
on the same page is to believe that the longest chain is always the valid one,
no matter what.
"After" the nodes have switched over to the new chain, according to what? There are two ways (I can think of) of determining whether the blue or green block came first:If the blue block is mined after the nodes have switched over to the new chain tip THE NODES DO NOT ORPHAN THREE BLOCKS like you claim. The blue block is essentially ignored.
Great quote Solex. This really gets to the point, we should not create a client e.g. BU, that has these "subfactions", which Satoshi designed the system to avoid.Solex said:My emphasis. Miners that cling to the blue block are in a subfaction.
"After" according to your hypothetical which imagined a scenario in which the mining of 1 block on the small-block chain could cause BU nodes to orphan 3 blocks on the large-block chain. And again, that scenario reflected a misunderstanding of how BU actually works.jonny1000 said:"After" the nodes have switched over to the new chain, according to what?
It is a great quote, but you seem to have missed the point. It is those individuals running Core who risk becoming part of a "subfaction" by refusing to accept the validity of the longest chain.jonny1000 said:Great quote Solex. This really gets to the point, we should not create a client e.g. BU, that has these "subfactions", which Satoshi designed the system to avoid.
#2."After" the nodes have switched over to the new chain, according to what? There are two ways (I can think of) of determining whether the blue or green block came first:
- Looking at the timestamps in blocks
- Each node keeping a record of which one it received and validated first
Ok, I have had a quick review of the BU code, and I think this is correct. It seems the client finds the longest chain regardless of blocksize, then does a loop to keep checking historic blocks are not EB, until the loop has been done AD times. Is this correct, this is not how BU was explained to me. This makes more sense. This way BU nodes with the same AD and EB settings should converge with each other, right?But to clarify a subtle point about how BU's AD setting works, even if the blue block in that bottom right diagram were mined / seen by your node prior to the green block, the green block would still become your chain tip upon being mined. (The key point here is that your AD isn't "triggered" by an excessive-block-containing chain achieving a "lead" of AD blocks over a competitor chain; instead, once the requisite number of blocks have been built on an excessive block, that chain becomes an accepted candidate for the longest valid chain.)
It looks like this is not the case. The order between the blue and green blocks appears not to matter in this scenario. Is this correct?Roger_Murdock said:#2.
More precisely: If the nodes learn of the blue block after the nodes have switched over to the new chain tip THE NODES DO NOT ORPHAN THREE BLOCKS like you claim. The blue block is essentially ignored.
If the node learns of the blue block first, then the blue block will briefly become the chain tip. Later, when the node learns of the green block, the blue block will be orphaned and the green block will become the new chain tip. On the other hand, if the green block comes first, the blue block will never be the chain tip; the blue block will essentially be ignored. Unlike what you were claiming, it will not cause three blocks to be orphaned.It looks like this is not the case. The order between the blue and green blocks appears not to matter in this scenario. Is this correct?
Ok I see, this seems interesting. Can we try to get this tested on an altcoin or sidechain first? Before pushing for this experimental change to convergence go on the main chain.?If the node learns of the blue block first, then the blue block will briefly become the chain tip. Later, when the node learns of the green block, the blue block will be orphaned and the green block will become the new chain tip. On the other hand, if the green block comes first, the blue block will never be the chain tip; the blue block will essentially be ignored
Yes I finally read through the BU main.cpp file yesterday, as the communication ect was contradictory or poorly informedHe never bothered to learn how it works even after almost a year.
One block can orphan three, even with normal Nakamoto consensus. With Nakamoto consensus this can only happen when a new chain "takes the lead" and becomes longer. With BU one block can orphan three in more ways, for example not when "taking the lead" but when already in the lead.it will not cause three blocks to be orphaned.
Obviously weaker. Because different BU clients will still be mining on shorter chains, for some periods of time.Peter R said:Now moving on: Do you think Bitcoin Unlimited has stronger, weaker or the same convergence guarantees as Bitcoin Core?
Yes, after reading the code, I now cannot see how a shorter chain can orphan a longer one, with BUPeter R said:Do you now agree that your earlier claim was wrong?