Skip to content
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

feat: conway primitives #290

Merged
merged 20 commits into from
Nov 3, 2023
Merged

Conversation

jmhrpr
Copy link
Member

@jmhrpr jmhrpr commented Sep 13, 2023

WIP, not tested

@scarmuega
Copy link
Member

wow! amazing 🚀

do you know if any Babbage tx can be considered a subset of Conway? or is anything in Conway that breaks backward compatibility?

I'm asking because we could potentially introduce a ConwayCompatible concept as we do with AlonzoCompatible to reduce the total number of distinct branches.

@jmhrpr
Copy link
Member Author

jmhrpr commented Sep 14, 2023

wow! amazing 🚀

do you know if any Babbage tx can be considered a subset of Conway? or is anything in Conway that breaks backward compatibility?

I'm asking because we could potentially introduce a ConwayCompatible concept as we do with AlonzoCompatible to reduce the total number of distinct branches.

A field was removed from transaction body (update field) and multiple were added, I don’t know if that answers your question or not. Also a number of types within the transaction body were changed.

@scarmuega
Copy link
Member

yes, that answers my question.

If Conway removes the update field then it breaks compatibility and we can't use the same primitives.

PR looks good as it is then. Anything missing besides some tests?

@jmhrpr
Copy link
Member Author

jmhrpr commented Sep 15, 2023

yes, that answers my question.

If Conway removes the update field then it breaks compatibility and we can't use the same primitives.

PR looks good as it is then. Anything missing besides some tests?

There is pretty much no data on sanchonet to test against at the moment, so I plan on building some transactions with the CLI at some point. But it successfully decoded all the Conway blocks that were present on the chain a couple days ago.

@scarmuega
Copy link
Member

Makes sense. I say we merge it as it is and add a follow-up issue to include some tests once there's more data available.

Feel free to flag the PR ready for review if you agree.

@jmhrpr
Copy link
Member Author

jmhrpr commented Sep 15, 2023

I will give it a review against the CDDL at some point soon to try catch any mistakes first, then mark ready for review

@@ -13,6 +13,7 @@ impl Era {
Feature::CIP31 => self.ge(&Era::Babbage),
Feature::CIP32 => self.ge(&Era::Babbage),
Feature::CIP33 => self.ge(&Era::Babbage),
// TODO: Conway features
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would create a new feature called Governance or CIP1694

@kevinhammond
Copy link

kevinhammond commented Oct 5, 2023

wow! amazing 🚀

do you know if any Babbage tx can be considered a subset of Conway? or is anything in Conway that breaks backward compatibility?

Governance proposals and MIRs are removed from Conway (superseded). I think all the other changes will be backwards compatible (CIP1694, Plutus v3 etc are additions)

@scarmuega
Copy link
Member

thank you @kevinhammond, that confirms our findings.

@jmhrpr should we merge using the unstable flag as we discussed and continue with the remaining tasks in a different PR?

@lisicky
Copy link
Contributor

lisicky commented Oct 22, 2023

Hi guys. PR looks good, but I have changes some things since CDDL was changed. And found that some of plutus related struct didn't implement plutus v3 . All of these changes I pushed into the PR could you @jmhrpr review and merge it ?

All this changes I have tested against the CSL except aux data.

CDDL changes:
- NewCommittee was renamed to UpdateCommittee
- Committee was deleted

Update plutus v3 related structs
I also added a test with manually constructed block with a tx which contains all conway certs, voting proposals and voting procedures

But also I have a question, did you guys have ever tested deserialisation of babbage block with plutus v2 in auxiliary data ?
If you wanna to check how pallas builds a block/tx/whatever you can use this tool https://cardananium.github.io/cquisitor/ . It uses CSL under the hood.

@lisicky
Copy link
Contributor

lisicky commented Oct 22, 2023

Also we wanna to use oura with conway support. Is it possible to merge this changes ?

@scarmuega
Copy link
Member

@jmhrpr if you can fix the merge conflicts, I'll merge it as it is and apply the unstable flag that we discussed.

@jmhrpr jmhrpr marked this pull request as ready for review October 24, 2023 10:44
@jmhrpr
Copy link
Member Author

jmhrpr commented Oct 24, 2023

@scarmuega done

@scarmuega scarmuega merged commit 93c978b into txpipe:main Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants