-
Notifications
You must be signed in to change notification settings - Fork 155
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
Babbage → Vasil #2849
Comments
AFAIK only the hard fork event is called "Vasil" but the Ledger era very much is intended to stay "Babbage", where the next era has been discussed to start with "C". |
That's kind of my point. With all the communication that happened around this, I think the era should also be named Vasil 😶. Otherwise in few months from now, only Babbage will remain. |
No, the era should not be renamed to match the name of the hard fork. We were striving for time based releases, and I still want to keep that hope alive. |
It can be hard for me to know what to make of the 😕 emoji often times. I don't know if it is more "dissatisfaction" or "I don't know what you are talking about" @KtorZ :) The idea behind the time based releases, at least how I understood them, was that we would limit the dates when we could hard fork to: February, June, and October. When a named feature set, such as the Babbage era, is ready, we introduce it at the next available time. I had imagined the hard fork names to be things like "June 2022", but I think it is wonderful that we are honoring Vasil Dabov. What I don't want to happen is for folks to conflate feature sets with dates before we are ready. I have just started writing the next ledger spec, calling it the |
Babbage is a feature set. Vasil is a release date. We can fix features xor release dates. We cannot fix both. |
So.. how do we represent this (what seems to be internal decision) to new users onboarding to the platform? It feels a lot like decisions made on-the-go without documentations or any reasoning - which might be to increase the pace, but I'd think someone somewhere needs to start documenting these decisions/changes with reasons - as community is not privy to such conversations 🙂
|
@rdlrt It's a good question. |
Just for the sake of clarification: it was more of a "I understand, I acknowledge the situation, and I am just sad that it turned out like this --> 😕" |
@rdlrt Yes this is complicated. Historically it has usually been the case that a HF has corresponded to a change in the ledger era, but this is not in principle a 1:1 relationship. We did have one HF within Byron, it was actually the second HF that got us from Byron -> Shelley. The ledger rules certainly have a notion of era, but this does not necessarily have to correspond to HFs. |
Thanks for the reply @dcoutts , I understand but ... not wiser, as am still not clear if I can answer previous questions 😄 , it sounds like it would have to be handled via explicit comms/support page to redirect to, while verbiage when talking about forks/eras might need to be consistent to avoid confusion (can prolly easily whip up a page with start of each era - assuming that's atleast considered to always start from a fork) |
@rdlrt - I'll give my take on things, but just know that this is my admittedly biased view. I'd love for everyone to come together to make the language easy and clear for everyone. In the ledger code, we needed a way of abstracting logic so that we could balance reducing code duplication and supporting old logic. For this we introduced a notion of "era", which we took from the cardano roadmap right after we finished the Shelley features (Shelley was an entire re-write, a new codebase, but after that we wanted to re-use code for subsequent eras). We retroactively called the Shelley features the "Shelley Era", but this turns out to cause confusion, since after that the naming diverges from the roadmap (Allegra, Mary, Alonzo, and Babbage are all a part of "Goguen"). When we named the "Allegra" era in the ledger code base, we definitely did not intend this to be a public facing thing, we thought it was just a variable name in our codebase. But inevitably the reach grew, we used the name for the specs, and GitHub lables, etc. And then it ended up on social media (which is fine, it just surprised some of us). In Alonzo, we executed the first so called "intra-era hard fork", meaning a hard fork which does not change the era (remember, this is a very specific detail of how the ledger code is organized) but does bump the major protocol version and change the semantics. See this table: https://github.com/input-output-hk/cardano-ledger/wiki/First-Block-of-Each-Era. This is a technique that we can use for very focused and small changes. After Alonzo, we decided to try time based releases, as I described above. And as Duncan said above, "we can fix features xor release dates. We cannot fix both". Using the same name for both seemed to some of us as only adding further confusion. So the language I use is:
|
Please excuse me if I come here in such a Github issue with a somewhat more general attempt to shed light on the question. Already on https://roadmap.cardano.org/ there is a double terminology. In the menu
At https://input-output-hk.github.io/adrestia/cardano-wallet/design/Eras an attempt is made to explain the difference between Phases and Era's. It seems to make sense to me to call the major roadmap areas phases, especially because they can and actually run in parallel in their development. However, it then says that Era's are related to (exactly) one Hardfork event each. Is that so? On https://input-output-hk.github.io/cardano-node/cardano-api/lib/Cardano-Api.html beside the already known further Era's are defined.
In particular, it says at https://input-output-hk.github.io/cardano-node/cardano-api/lib/Cardano-Api.html#g:2 that all era's after Shelley are so-called ShelleyBased eras. This seems strange to me, because Alonzo - as THE SmartContract enabler - should clearly belong to Goguen. From a previous comment
it seems that at some point after Allegra and Mary there was the decision to name further Era's to the ABC after mathematicians. Alonzo, Babbage, ... Conway (game theorist) ? I certainly don't manage to find a clear line and answer here. In addition: In parallel there are completely different names for the different Ouroboros development levels and research branches (classic, BFT, praos, genesis, crypsinous, chronos) . Somehow but not exactly they are also related to hardforks and/or era's. At this point, although not a real problem, it should also be mentioned that there are new protocol versions in the node-config for some hardforks. Currently I would find it very helpful if one tries to give the terms (phase, era, stages, hardfork, version, ...) as well as the respective names (Shelley, Alonzo, ...) a completely clear structure and meaning. If there should be additional names for marketing or commemorative occasions, I am not against it. But I am afraid that these can hardly or not at all be "formalized". So it might be better to keep this separate, and not confuse it with the technical definitions. |
@gufmar I think you and I were writing at the same time. :) What you wrote all makes sense to me, and I hope that what I wrote clarifies things a bit more. I have a few random comments:
Technically, at least in the codebase, a lot of us refer to the consensus mechanism in Shelley as "transitional Praos". Since it includes the overlay schedule which provided the smooth transition from a federated system to one where block production was decentralized (ie the
Shelley was such a drastic re-write, that everything afterwards has a lot in common with each other, including Alonzo. |
Thanks @JaredCorduan for all the details, appreciate it. Your suggestion about CIP seems like the best way ahead to my eyes (as you can see from links shared by @gufmar , it's currently all over the place - having CIPs for next era , as well as documenting a short summarised table for retrospective phase/era/fork differentiation seems like a good outcome) |
I've made a CIP: cardano-foundation/CIPs#274 Feedback would be most welcome! |
Hi, just a small silly thing but, before we cut off the final release, shall we consider a massive
sed "s/Babbage/Vasil"
across the entire ledger, consensus, networking and cardano-node code bases?I reckon the decision to name it Vasil came after the work on Babbage started, but I can't help thinking that in weeks and months from now, it'll all be very confusing to talk about "Babbage/Vasil" all the time. It's a bit silly, but it's also quite easy to do and shall happen before the final release.
Thoughts :/ ?
The text was updated successfully, but these errors were encountered: