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

Implement liveness property in dynamic logic #497

Closed
wants to merge 29 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Sep 19, 2022

fix #467

ffakenz and others added 29 commits September 19, 2022 10:27
Also update iohkNix to not get a deprecation warning from the crypto overlay.
…dency

Getting the package from hackage is not a problem, but our upstream
dependencies are not fit for latest hackage versions and we did not want
to bother chasing constraints at this point.
This is due to the new 1.0.0 interface of quickcheck-dynamic
This kind of duplicates ClientInput
Unfortunately, this was requiring to ditch record syntax as GADTs seem
not to allow duplicate record fields with differing return types.
This keeps the conversion back to simple utxos out of the model.
Instead of requiring a Show instance on monitoring function we can
pattern match as suggested by Max.
This gives us a Show instance for monitoring failures
This requires introduction of 2 new actions in the model:
* Wait to give the underlying runner time to process messages
* ObserveConfirmedTx to check what's been observed by each node
st <- getModelStateDL
(party, payment) <- forAllQ (withGenQ (genPayment st) (const []))
let newTx = Model.NewTx party payment
action newTx
Copy link
Member

Choose a reason for hiding this comment

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

Could: inline newTx

Copy link
Author

Choose a reason for hiding this comment

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

Thanks. This PR is still a draft, I just refreshed it following a discussion we had with @pgrange who was interested in having a look at what we are currently working on concretely.

@github-actions
Copy link

Transactions Costs

Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.

Metadata
Generated at 2022-09-19 13:24:39.481447621 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Cost of Init Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 4837 9.52 3.75 0.47
2 5038 11.13 4.37 0.49
3 5243 13.29 5.20 0.53
5 5652 18.45 7.23 0.60
10 6678 27.72 10.78 0.75
46 14060 98.77 38.15 1.84

Cost of Commit Transaction

Currently only one UTxO per commit allowed (this is about to change soon)

UTxO Tx size % max Mem % max CPU Min fee ₳
1 5771 19.73 7.96 0.62

Cost of CollectCom Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 13058 20.77 8.32 0.95
2 13380 36.55 14.80 1.14
3 13702 54.66 22.31 1.36
4 14093 78.14 32.04 1.63

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 9323 8.19 3.36 0.65
2 9488 8.97 3.81 0.67
3 9727 10.58 4.59 0.70
5 9989 11.31 5.17 0.72
10 10842 15.60 7.58 0.81
30 14182 31.82 16.85 1.15
70 16213 41.68 15.78 1.31

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 9328 8.16 3.34 0.65
2 9495 8.94 3.79 0.67
3 9691 10.16 4.42 0.69
5 10047 12.12 5.47 0.73
10 10884 16.20 7.80 0.82
30 14206 32.00 16.91 1.16
43 16370 42.74 23.01 1.38

Cost of Abort Transaction

Some variation because of random mixture of still initial and already committed outputs.

Parties Tx size % max Mem % max CPU Min fee ₳
1 13495 22.50 9.35 0.99
2 13604 34.02 14.28 1.13
3 13927 52.63 22.47 1.35
4 14037 69.17 29.63 1.54
5 14434 97.19 42.44 1.88

Cost of FanOut Transaction

Involves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 13416 9.88 4.31 0.85
2 13521 11.78 5.34 0.88
3 13550 13.30 6.22 0.90
5 13692 16.72 8.12 0.95
10 13742 23.82 12.33 1.04
50 15313 85.26 47.74 1.86
60 15536 99.74 56.26 2.05

@ghost ghost closed this Sep 19, 2022
@ch1bo ch1bo deleted the ensemble-upgrade-quickcheck-dynamic-1-0 branch December 15, 2022 10:25
This pull request was closed.
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.

Express conflict-free liveness property using Dynamic Logic
3 participants