Conversation
f79b02a to
3cd4706
Compare
bip-csv.mediawiki
Outdated
There was a problem hiding this comment.
Is this meant to be above, or am I misunderstanding what is meant here by consensus constrained?
If I am misunderstanding, then perhaps the conditional should also be switched such that it aligns with comment.
Sequence numbers equal to or above the SEQUENCE_THRESHOLD are not treated as relative lock-times, nor are they given any consensus-enforced meaning at this point.
From BIP68. I assume therefore that this comment is wrong?
|
I extremely dislike the inversion to preserve the "previous nSequence As a side effect of this proposed change, I believe documentation (not just this BIP but also doxygen's) can become much clearer (maybe even shorter simultaneously). |
|
I am indifferent on this issue (the bit inversion), but so far only Jorge has spoken up. I opted for this detail during implementation in order to preserve existing semantics, even if those semantics are not commonly used. This was the conservative choice, driven in part because I didn't want the proposal to be held up by the other side saying "this is confusing because it changes how sequence numbers work! it used to count up but now it counts down!" I can see both sides and as I said I'm indifferent, so I went with the conservative choice of not messing with existing semantics. However if there is strong preferences from multiple people on this matter it is not too late to change. If anyone feels strongly about this, please speak up. |
|
If I'm the only one opposed to the inversion, I certainly prefer this with the inversion than not having the new op at all. But, yes, please, more "I prefer to do the inversion" (0), "I'm indifferent" (1) and "I prefer not to do the inversion" (1) from other people would be appreciated. Maybe @mikehearn can help providing those reasons? So, to be completely clear, this is not a NACK, just a nit. If the inversion is going to be used, please document why. If there's no good reason to use the inversion, just not using it will make everything simpler and more readable. |
|
Just want to mention that nSequence is used by a colored coin protocol EPOBC. I don't know myself the detail of this protocol very well, but if we don't keep nSequence semantic it may be very detrimental to chromaway. The inversion may fix the issue. (not checked that into the details) |
|
There is an exception explicitly for such purposes. Just make sure you set
|
|
Whats the current status here? |
7cb6b9b to
7fde85d
Compare
|
@gmaxwell I believe there was some question of whether or not to use the inversion. http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/010686.html |
|
Unless changing the semantics breaks something, I'm for using the most transparent semantics here. Given that almost nobody uses the nSequence field at all, it's probably less painful to change the semantics now than to have to document this quirk later on when everyone is using it. |
|
There seems to be a general consensus in favor of dropping the bit The sequencenumbers3 branch contains future soft-fork bits that are shifted So far Rusty is the only one that had commented on this. Both he and I are But I would like a more clear consensus before making a call on this and
|
|
Is there a branch that drops the bit inversion without making any further changes? |
|
sequencenumbers2
|
|
Why not mask them with a logical AND instead of bit shifts? Wouldn't that keep it semantically simple? Also, I feel like I've brought this up before, but: I really think this should use a new name besides "sequence" since it is completely changing the semantics from what the original purpose was. |
|
I would rename nSequence to nMaturity. In fact, if I remember correctly the first time we talked about something similar to rcltv/csv we called it "op_maturity" which in my opinion is much more clear and would probably simplify the documentation. |
|
I'm going to be the odd one out here and claim the sequence numbers
|
|
@maaku Technically, that is true - but I think the bigger point is that the use cases we're after don't really care about sequence...that the original semantics are preserved is sort of a side effect of the more important feature which is relative time lock which is what is actually enforced by the consensus rules. |
|
Also, it's possible to think of pathological cases where the sequence numbers don't necessarily reflect the sequence. i.e. a higher sequence number transaction with no fee and a lower sequence number transaction with a very high fee that spends the same output. |
|
In other words, since nSequence isn't being used at all, we have a free field we can repurpose for RCLTV which we already know has many good use cases. The fact we can preserve the semantics via a little hackery, while a clever observation, isn't really what's important. |
|
I don't want to be repetitive, but this has exactly the same semantics as the 100 blocks maturity for coinbase inputs. In fact, I would prefer this check bitcoin/bitcoin@master...maaku:sequencenumbers2#diff-7ec3c68a81efff79b6ca22ac1f1eabbaR943 to be done in the same place where the coinbase maturity is checked, here: https://github.com/jtimon/bitcoin/blob/consensus-txinputs-0.12.99/src/main.cpp#L1301 |
|
I'm in agreement with @maaku |
7fde85d to
47b6f02
Compare
Formatting Fix typos Update with BIP 112 assignment Update references to BIP113 Update deployment methodology Add references
d308316 to
6902f79
Compare
|
Just a heads up, I've rebased and added to the index. |
They should be HASH160, aka RIPEMD160(SHA256()). Closes: bitcoin#179 Signed-off-by: Rusty Russell <[email protected]>
Mention that we don't change the hash function
Todo