-
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
Cardano Block examples fail to roundtrip via FlatTerm #3741
Comments
Example: Cardano
Examples roundtrip
Block
Byron_regular: FAIL (0.02s)
*** Failed! Falsified (after 1 test):
HardForkBlock
{ getHardForkBlock = Z
( I
( ByronBlock
{ byronBlockRaw = ABOBBlock
( ABlock
{ blockHeader = AHeader
{ aHeaderProtocolMagicId = Annotated
{ unAnnotated = ProtocolMagicId
{ unProtocolMagicId = 55550001 }
, annotation = "\x1a\x3O 1"
}
, aHeaderPrevHash = Annotated
{ unAnnotated = 88900fba40903da0b4a38d06a3d2bdadff6d49a8a6b804efe1b4522890e3b82c
, annotation = "X \x88\x90\xfº@\x90= ´£\x8d\x6£Ò½\xadÿmI¨¦¸\x4ïá´R(\x90ã¸,"
}
, aHeaderSlot = Annotated
{ unAnnotated = SlotNumber
{ unSlotNumber = 1 }
, annotation = "\x82\x0\x1"
}
, aHeaderDifficulty = Annotated
{ unAnnotated = ChainDifficulty
{ unChainDifficulty = 1 }
, annotation = "\x81\x1"
}
, headerProtocolVersion = 1.1.1
, headerSoftwareVersion = Golden:99
, aHeaderProof = Annotated
{ unAnnotated = Proof
{ proofUTxO = TxProof
{ txpNumber = 1
, txpRoot = MerkleRoot
{ getMerkleRoot = 5e46ceb20538afeeb45cb8f7030512af34b4ff363a8c7e94d441a257500ffab7 }
, txpWitnessesHash = e32c9549bc3acbe0e848b2d7ad26331b7d8497580364cb2bc6c8bda9aa0975b8
}
, proofSsc = SscProof
, proofDelegation = afc0da64183bf2664f3d4eec7238d524ba607faeeab24fc100eb861dba69971b
, proofUpdate = 4e66280cd94d591072349bec0a3090a53aa945562efb6d08d56e53654b0e4098
}
, annotation = "\x84\x83\x1X ^Fβ\x58¯î´\¸÷\x3\x5\x12¯4´ÿ6:\x8c~\x94ÔA¢WP\xfú·X ã,\x95I¼:ËàèH²×\xad&3\x1b}\x84\x97X\x3dË+ÆȽ©ª\x9u¸\x82\x3X Ój&\x19¦rIF\x4á\x1b´GËÏR1éòº%Â\x16\x91wíÉA½P\xadlX ¯ÀÚd\x18;òfO=Nìr8Õ$º`\x7f®ê²OÁ\x0ë\x86\x1dºi\x97\x1bX Nf(\xcÙMY\x10r4\x9bì
0\x90¥:©EV.ûm\x8ÕnSeK\xe@\x98"
}
, headerGenesisKey = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88ê"
, xpubChaincode = ChainCode "b`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe"
}
}
, headerSignature = ABlockSignature
{ delegationCertificate = UnsafeACertificate
{ aEpoch = Annotated
{ unAnnotated = EpochNumber
{ getEpochNumber = 0 }
, annotation = "\x0"
}
, issuerVK = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88ê"
, xpubChaincode = ChainCode "b`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe"
}
}
, delegateVK = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "ë\x9f\x9ê1£\xf\x81\x0\x14Ù\x9a¬äQk4&ìx=éá^\xfÕ\x1f\x89«þÞØ"
, xpubChaincode = ChainCode "3\x13í\xadv#\x9f\x1b°6Q1:\x2að*ö\xad/Ä\x8Ð\x9f\x89÷\xe0g[\x1f\x1"
}
}
, signature = Signature
( XSignature
{ unXSignature = ",°c\x8a\x92U\x92\x1e\x14D\x804\x93A2\x93ëì!A\x16¬Á\x9c!\x4\x1e3½\x1dá_ÈÎ\x85>VϬÐú\x16M\x8a¢\x8f\x9e`\x9bW¥\x9d%\x98[FEQ\x88Û_Åë\x7" }
)
, annotation = "\x84\x0X@£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88êb`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbeX@ë\x9f\x9ê1£\xf\x81\x0\x14Ù\x9a¬äQk4&ìx=éá^\xfÕ\x1f\x89«þÞØ3\x13í\xadv#\x9f\x1b°6Q1:\x2að*ö\xad/Ä\x8Ð\x9f\x89÷\xe0g[\x1f\x1X@,°c\x8a\x92U\x92\x1e\x14D\x804\x93A2\x93ëì!A\x16¬Á\x9c!\x4\x1e3½\x1dá_ÈÎ\x85>VϬÐú\x16M\x8a¢\x8f\x9e`\x9bW¥\x9d%\x98[FEQ\x88Û_Åë\x7"
}
, signature = Signature
( XSignature
{ unXSignature = "Ô8rRX\x8f¯º^å\x8c#åAaow¦»bÆYJDc¤§\Fë8\x9e±\xd\x6H\x93xÜáiÎùQ®\x8ú¬^.cÈ\x84\x1fUÆÌGÕøÒOî\x6" }
)
}
, headerAnnotation = "\x85\x1a\x3O 1X \x88\x90\xfº@\x90= ´£\x8d\x6£Ò½\xadÿmI¨¦¸\x4ïá´R(\x90ã¸,\x84\x83\x1X ^Fβ\x58¯î´\¸÷\x3\x5\x12¯4´ÿ6:\x8c~\x94ÔA¢WP\xfú·X ã,\x95I¼:ËàèH²×\xad&3\x1b}\x84\x97X\x3dË+ÆȽ©ª\x9u¸\x82\x3X Ój&\x19¦rIF\x4á\x1b´GËÏR1éòº%Â\x16\x91wíÉA½P\xadlX ¯ÀÚd\x18;òfO=Nìr8Õ$º`\x7f®ê²OÁ\x0ë\x86\x1dºi\x97\x1bX Nf(\xcÙMY\x10r4\x9bì
0\x90¥:©EV.ûm\x8ÕnSeK\xe@\x98\x84\x82\x0\x1X@£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88êb`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe\x81\x1\x82\x2\x82\x84\x0X@£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88êb`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbeX@ë\x9f\x9ê1£\xf\x81\x0\x14Ù\x9a¬äQk4&ìx=éá^\xfÕ\x1f\x89«þÞØ3\x13í\xadv#\x9f\x1b°6Q1:\x2að*ö\xad/Ä\x8Ð\x9f\x89÷\xe0g[\x1f\x1X@,°c\x8a\x92U\x92\x1e\x14D\x804\x93A2\x93ëì!A\x16¬Á\x9c!\x4\x1e3½\x1dá_ÈÎ\x85>VϬÐú\x16M\x8a¢\x8f\x9e`\x9bW¥\x9d%\x98[FEQ\x88Û_Åë\x7X@Ô8rRX\x8f¯º^å\x8c#åAaow¦»bÆYJDc¤§\Fë8\x9e±\xd\x6H\x93xÜáiÎùQ®\x8ú¬^.cÈ\x84\x1fUÆÌGÕøÒOî\x6\x84\x83\x1\x1\x1\x82fGolden\x18c X K©*£ Æ
Ì\x9a×¹¦O.ÚUÄÒì(æ\x4úñ\x86p\x8bO\xcN\x8eß"
, headerExtraAnnotation = "\x84\x83\x1\x1\x1\x82fGolden\x18c X K©*£ Æ
Ì\x9a×¹¦O.ÚUÄÒì(æ\x4úñ\x86p\x8bO\xcN\x8eß"
}
, blockBody = ABody
{ bodyTxPayload = ATxPayload
{ aUnTxPayload =
[ ATxAux
{ aTaTx = Annotated
{ unAnnotated = UnsafeTx
{ txInputs = TxInUtxo 4ba839c420b3d2bd439530f891cae9a5d4c4d812044630dac72e8e0962feeecc 47 :| []
, txOutputs = TxOut
{ txOutAddress = Address
{ addrRoot = aa5372095aaa680d19d4ca496983a145709c3be18b0d4c83cb7bdc5e
, addrAttributes = Attributes
{ data_ = AddrAttributes
{ aaVKDerivationPath = Nothing
, aaNetworkMagic = NetworkMainOrStage
}
}
, addrType = ATVerKey
}
, txOutValue = Lovelace 47
} :| []
, txAttributes = Attributes
{ data_ = () }
}
, annotation = "\x83\x9f\x82\x0Ø\x18X%\x82X K¨9Ä ³Ò½C\x950ø\x91Êé¥ÔÄØ\x12\x4F0ÚÇ.\x8e\x9bþîÌ\x18/ÿ\x9f\x82\x82Ø\x18X!\x83X\x1cªSr\x9Zªh\xd\x19ÔÊIi\x83¡Ep\x9c;á\x8b\xdL\x83Ë{Ü^ \x0\x1a2Ü\x98\x8e\x18/ÿ "
}
, aTaWitness = Annotated
{ unAnnotated =
[ VKWitness
( VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3"
, xpubChaincode = ChainCode "tG4ja0kFjO8qzai26ZMPUEJfEy15ox5k"
}
}
)
( Signature
( XSignature
{ unXSignature = "h\x8a\xad\x85{Çÿ0ühbÚ\x1bâ\x81ô ÆRq·j±\x97\x82ÿ@â\x95Zø\x88\x19Ã\x8e\y\x13\x8f(\x7:ºáRÈ\x82%\x8bD ÁÉýÒl\x98\x81&\x97ü>\x0" }
)
)
]
, annotation = "\x81\x82\x0Ø\x18X\x85\x82X@Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3tG4ja0kFjO8qzai26ZMPUEJfEy15ox5kX@h\x8a\xad\x85{Çÿ0ühbÚ\x1bâ\x81ô ÆRq·j±\x97\x82ÿ@â\x95Zø\x88\x19Ã\x8e\y\x13\x8f(\x7:ºáRÈ\x82%\x8bD ÁÉýÒl\x98\x81&\x97ü>\x0"
}
, aTaAnnotation = "\x82\x83\x9f\x82\x0Ø\x18X%\x82X K¨9Ä ³Ò½C\x950ø\x91Êé¥ÔÄØ\x12\x4F0ÚÇ.\x8e\x9bþîÌ\x18/ÿ\x9f\x82\x82Ø\x18X!\x83X\x1cªSr\x9Zªh\xd\x19ÔÊIi\x83¡Ep\x9c;á\x8b\xdL\x83Ë{Ü^ \x0\x1a2Ü\x98\x8e\x18/ÿ \x81\x82\x0Ø\x18X\x85\x82X@Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3tG4ja0kFjO8qzai26ZMPUEJfEy15ox5kX@h\x8a\xad\x85{Çÿ0ühbÚ\x1bâ\x81ô ÆRq·j±\x97\x82ÿ@â\x95Zø\x88\x19Ã\x8e\y\x13\x8f(\x7:ºáRÈ\x82%\x8bD ÁÉýÒl\x98\x81&\x97ü>\x0"
}
]
}
, bodySscPayload = SscPayload
, bodyDlgPayload = UnsafeAPayload
{ getPayload = []
, getAnnotation = "\x9fÿ"
}
, bodyUpdatePayload = APayload
{ payloadProposal = Nothing
, payloadVotes = []
, payloadAnnotation = "\x82\x80\x9fÿ"
}
}
, blockAnnotation = "\x83\x85\x1a\x3O 1X \x88\x90\xfº@\x90= ´£\x8d\x6£Ò½\xadÿmI¨¦¸\x4ïá´R(\x90ã¸,\x84\x83\x1X ^Fβ\x58¯î´\¸÷\x3\x5\x12¯4´ÿ6:\x8c~\x94ÔA¢WP\xfú·X ã,\x95I¼:ËàèH²×\xad&3\x1b}\x84\x97X\x3dË+ÆȽ©ª\x9u¸\x82\x3X Ój&\x19¦rIF\x4á\x1b´GËÏR1éòº%Â\x16\x91wíÉA½P\xadlX ¯ÀÚd\x18;òfO=Nìr8Õ$º`\x7f®ê²OÁ\x0ë\x86\x1dºi\x97\x1bX Nf(\xcÙMY\x10r4\x9bì
0\x90¥:©EV.ûm\x8ÕnSeK\xe@\x98\x84\x82\x0\x1X@£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88êb`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe\x81\x1\x82\x2\x82\x84\x0X@£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88êb`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbeX@ë\x9f\x9ê1£\xf\x81\x0\x14Ù\x9a¬äQk4&ìx=éá^\xfÕ\x1f\x89«þÞØ3\x13í\xadv#\x9f\x1b°6Q1:\x2að*ö\xad/Ä\x8Ð\x9f\x89÷\xe0g[\x1f\x1X@,°c\x8a\x92U\x92\x1e\x14D\x804\x93A2\x93ëì!A\x16¬Á\x9c!\x4\x1e3½\x1dá_ÈÎ\x85>VϬÐú\x16M\x8a¢\x8f\x9e`\x9bW¥\x9d%\x98[FEQ\x88Û_Åë\x7X@Ô8rRX\x8f¯º^å\x8c#åAaow¦»bÆYJDc¤§\Fë8\x9e±\xd\x6H\x93xÜáiÎùQ®\x8ú¬^.cÈ\x84\x1fUÆÌGÕøÒOî\x6\x84\x83\x1\x1\x1\x82fGolden\x18c X K©*£ Æ
Ì\x9a×¹¦O.ÚUÄÒì(æ\x4úñ\x86p\x8bO\xcN\x8eß\x84\x9f\x82\x83\x9f\x82\x0Ø\x18X%\x82X K¨9Ä ³Ò½C\x950ø\x91Êé¥ÔÄØ\x12\x4F0ÚÇ.\x8e\x9bþîÌ\x18/ÿ\x9f\x82\x82Ø\x18X!\x83X\x1cªSr\x9Zªh\xd\x19ÔÊIi\x83¡Ep\x9c;á\x8b\xdL\x83Ë{Ü^ \x0\x1a2Ü\x98\x8e\x18/ÿ \x81\x82\x0Ø\x18X\x85\x82X@Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3tG4ja0kFjO8qzai26ZMPUEJfEy15ox5kX@h\x8a\xad\x85{Çÿ0ühbÚ\x1bâ\x81ô ÆRq·j±\x97\x82ÿ@â\x95Zø\x88\x19Ã\x8e\y\x13\x8f(\x7:ºáRÈ\x82%\x8bD ÁÉýÒl\x98\x81&\x97ü>\x0ÿ\x82\x3Ù\x1\x2\x80\x9fÿ\x82\x80\x9fÿ\x81 "
}
)
, byronBlockSlotNo = SlotNo 1
, byronBlockHash = ByronHash
{ unByronHash = 93e9c624e615f90e7a78fb8eb12c4520befc1a3379ad98b8218833cc77b9c26f }
}
)
)
}
/=
HardForkBlock
{ getHardForkBlock = Z
( I
( ByronBlock
{ byronBlockRaw = ABOBBlock
( ABlock
{ blockHeader = AHeader
{ aHeaderProtocolMagicId = Annotated
{ unAnnotated = ProtocolMagicId
{ unProtocolMagicId = 55550001 }
, annotation = ""
}
, aHeaderPrevHash = Annotated
{ unAnnotated = 88900fba40903da0b4a38d06a3d2bdadff6d49a8a6b804efe1b4522890e3b82c
, annotation = ""
}
, aHeaderSlot = Annotated
{ unAnnotated = SlotNumber
{ unSlotNumber = 1 }
, annotation = ""
}
, aHeaderDifficulty = Annotated
{ unAnnotated = ChainDifficulty
{ unChainDifficulty = 1 }
, annotation = ""
}
, headerProtocolVersion = 1.1.1
, headerSoftwareVersion = Golden:99
, aHeaderProof = Annotated
{ unAnnotated = Proof
{ proofUTxO = TxProof
{ txpNumber = 1
, txpRoot = MerkleRoot
{ getMerkleRoot = 5e46ceb20538afeeb45cb8f7030512af34b4ff363a8c7e94d441a257500ffab7 }
, txpWitnessesHash = e32c9549bc3acbe0e848b2d7ad26331b7d8497580364cb2bc6c8bda9aa0975b8
}
, proofSsc = SscProof
, proofDelegation = afc0da64183bf2664f3d4eec7238d524ba607faeeab24fc100eb861dba69971b
, proofUpdate = 4e66280cd94d591072349bec0a3090a53aa945562efb6d08d56e53654b0e4098
}
, annotation = ""
}
, headerGenesisKey = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88ê"
, xpubChaincode = ChainCode "b`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe"
}
}
, headerSignature = ABlockSignature
{ delegationCertificate = UnsafeACertificate
{ aEpoch = Annotated
{ unAnnotated = EpochNumber
{ getEpochNumber = 0 }
, annotation = ""
}
, issuerVK = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "£KÛ;»\x80Í7M´é˨°\x7ú\x90IÈð;¿@A|c\x97íÈä\x88ê"
, xpubChaincode = ChainCode "b`ð\x9å7É\x99\x89\x1e\x8a\x9fÝçò㦸\xe\x82Ó·ß°*\x17nÀ\x9a¦\xbe"
}
}
, delegateVK = VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "ë\x9f\x9ê1£\xf\x81\x0\x14Ù\x9a¬äQk4&ìx=éá^\xfÕ\x1f\x89«þÞØ"
, xpubChaincode = ChainCode "3\x13í\xadv#\x9f\x1b°6Q1:\x2að*ö\xad/Ä\x8Ð\x9f\x89÷\xe0g[\x1f\x1"
}
}
, signature = Signature
( XSignature
{ unXSignature = ",°c\x8a\x92U\x92\x1e\x14D\x804\x93A2\x93ëì!A\x16¬Á\x9c!\x4\x1e3½\x1dá_ÈÎ\x85>VϬÐú\x16M\x8a¢\x8f\x9e`\x9bW¥\x9d%\x98[FEQ\x88Û_Åë\x7" }
)
, annotation = ""
}
, signature = Signature
( XSignature
{ unXSignature = "Ô8rRX\x8f¯º^å\x8c#åAaow¦»bÆYJDc¤§\Fë8\x9e±\xd\x6H\x93xÜáiÎùQ®\x8ú¬^.cÈ\x84\x1fUÆÌGÕøÒOî\x6" }
)
}
, headerAnnotation = ""
, headerExtraAnnotation = ""
}
, blockBody = ABody
{ bodyTxPayload = ATxPayload
{ aUnTxPayload =
[ ATxAux
{ aTaTx = Annotated
{ unAnnotated = UnsafeTx
{ txInputs = TxInUtxo 4ba839c420b3d2bd439530f891cae9a5d4c4d812044630dac72e8e0962feeecc 47 :| []
, txOutputs = TxOut
{ txOutAddress = Address
{ addrRoot = aa5372095aaa680d19d4ca496983a145709c3be18b0d4c83cb7bdc5e
, addrAttributes = Attributes
{ data_ = AddrAttributes
{ aaVKDerivationPath = Nothing
, aaNetworkMagic = NetworkMainOrStage
}
}
, addrType = ATVerKey
}
, txOutValue = Lovelace 47
} :| []
, txAttributes = Attributes
{ data_ = () }
}
, annotation = ""
}
, aTaWitness = Annotated
{ unAnnotated =
[ VKWitness
( VerificationKey
{ unVerificationKey = XPub
{ xpubPublicKey = "Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3"
, xpubChaincode = ChainCode "tG4ja0kFjO8qzai26ZMPUEJfEy15ox5k"
}
}
)
( Signature
( XSignature
{ unXSignature = "h\x8a\xad\x85{Çÿ0ühbÚ\x1bâ\x81ô ÆRq·j±\x97\x82ÿ@â\x95Zø\x88\x19Ã\x8e\y\x13\x8f(\x7:ºáRÈ\x82%\x8bD ÁÉýÒl\x98\x81&\x97ü>\x0" }
)
)
]
, annotation = ""
}
, aTaAnnotation = ""
}
]
}
, bodySscPayload = SscPayload
, bodyDlgPayload = UnsafeAPayload
{ getPayload = []
, getAnnotation = ""
}
, bodyUpdatePayload = APayload
{ payloadProposal = Nothing
, payloadVotes = []
, payloadAnnotation = ""
}
}
, blockAnnotation = ""
}
)
, byronBlockSlotNo = SlotNo 1
, byronBlockHash = ByronHash
{ unByronHash = 59e6235dd03caf0d130c676cd91b330f5c931b25d9173c4f35d845b8d3bbdb8e }
}
)
)
}
Use --quickcheck-replay=564486 to reproduce.
Use -p '/Example/&&/Byron_regular/' to rerun this test only.
|
|
Alright. We'll see what we can do on the Consensus side. Thank you @lehins |
github-merge-queue bot
pushed a commit
to IntersectMBO/ouroboros-consensus
that referenced
this issue
Nov 13, 2023
Fixes IntersectMBO/ouroboros-network#3099 Sadly some CBOR validity tests need to be skipped due to: - IntersectMBO/cardano-ledger#3800 - IntersectMBO/cardano-ledger#3741 - IntersectMBO/cardano-ledger#3740 This patch introduces an ad-hoc filtering mechanism to fix problems with legacy encoders.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When testing the roundtrip property for the Cardano examples, all Cardano blocks fail to roundtrip via
FlatTerm
.By inspecting the input it seems that some fields such as "blockAnnotation" are not preserved.
The failure can be reproduced by running:
The text was updated successfully, but these errors were encountered: