-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove CryptoConditionsSuite stub amendment #3452
Comments
This amendment is HIGHLY popular amongst non-Ripple validators (26 vote for including it right now, 10 against): https://xrpscan.com/amendment/86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 In fact, only 5 entities on the default UNL are voting against it and it is only vetoed because Ripple has more than one vote at the moment. If the numbers were reversed (only a few entities actually support it), it might be different, but in this current state it seems that most validators seem to actually want this to go live in its current state. Why remove the code for such a popular and widely supported (even/especially by defaultUNL validators!) amendment? |
I believe that the widespread support for this amendment is probably due to a misconception, stemming from validators trusting that Ripple would not put an unfinished amendment into a release branch. Unfortunately, in this case, the truth is that this amendment is a stub and it almost certainly does not do what they think it does. They may be reading the description on the Known Amendments page:
.. and missing the "Caution" callout or thinking it's outdated. Or they may be automatically voting in favor of most new amendments, on a premise like, "If it's good enough for Ripple to release it, it must be good for the network." Tragically, that is not the case for CryptoConditionsSuite as it stands currently. Most condition types are unimplemented in the released versions of Unless the validators actually provide a statement with regards to their votes on this topic, I think it's safe to assume that they are following the default and voting in favor of new features. While that discussion is related, this particular amendment should not have made it into a production release in its current form, and we should rectify that. |
I agree: the amendment is basically a stub, left-over because of legacy considerations. It really should be removed from the code base entirely to avoid accidental activation. If and when further cryptoconditions are implemented, they should each be on different amendments. |
This would indicate that the recommended validators either don't even know how to configure their votes or that their votes on this matter (the amendment is 3(!) votes away from passing) are meaningless for Lastly, just because |
If we do want to do this I created a PR here: #3453 |
I suspect that a large number of validator operators don't take active stances on amendments and rely, instead, on the default behavior: vote in support of all amendments a server understands.
Sure. This change doesn't affect any such implementations at all. In fact, even if this amendment activated, the behavior of the code would not change: EscrowCreate.cpp:
The existing implementation of So, the amendment check below is a vestigial safeguard; indeed, this whole amendment, is a no-longer-useful left-over.
There is, but if they did, this change wouldn't affect them: their server would likely continue voting in support of this amendment and if, perchance, the amendment ever activated, their server would have processed transactions differently than the reference implementation which the majority of operators use. And considering the above snippet of code, amendment or not, not much would change for servers that haven't. I'd argue that this uncertainty about who's using this amendment identifier and what it means to them is, itself, reason enough to remove the amendment identifier to prevent confusion.
This is reasonable criticism, and certainly a discussion ought to be had about amendments, how they should be introduced and whether a public spec should be mandator for any change that introduces such a transaction breaking change. But let's also consider this: support for amendments that haven't yet reached majority is open-ended (that is, there's not time limit built into the process that says "ah, this didn't activate in time, it's no longer considered) but open-ended doesn't necessarily mean perpetual. If an amendment has been in the codebase for a couple of years but hasn't yet been enabled, it's not unreasonable to move to remove its implementation and if the implementation is removed, the server should not continue advertising support for the amendment. What we can argue about is when it makes sense to remove said identifier/implementation and what the implications are.
It's true that the amendment seems highly popular. But there are two issues:
I am supportive of, we could just do nothing: leave this amendment in and if it ever activates, big whoop... Honestly, that we are having this conversation is a good thing but also represents a failure on |
I vote to remove the amendment from the code base. Right now, enabling the amendment doesn't enable any new behavior. Since it's already shipped, if we (or someone in the community) did merge a cryptoconditions implementation, that implementation would need a new amendment anyway. If it didn't, we'd have some systems where the amendment would be on with an empty implementation and some with a real implementation. Since this amendment can never be anything other than a no-op, I think it makes sense to remove it. |
From anecdotal evidence I believe a lot of validators auto-update
Additionally, I am wondering what are the reasons (apart from network stability) why Ripple funds the development of new amendments in the reference implementation, yet continues vetoing them for this long. |
As one of the validators who is vetoing this amendment, I would agree that removing it makes sense. As has been pointed out earlier, most auto updating validators passively accept amendments . |
removed in 1.6.0-b8 |
Fixed by #3453 and released in 1.6.0 |
Issue Description
The CryptoConditionsSuite amendment is not fully implemented but it is listed in the code as an amendment that can be enabled. There should not be stub amendments in production releases, for several reasons, including:
We should remove CryptoConditionsSuite and its associated functionality from v1.6.0 ASAP. If we later introduce a full version of the amendment, we should ensure one of the following conditions is met:
The text was updated successfully, but these errors were encountered: