forked from cardano-scaling/hydra
-
Notifications
You must be signed in to change notification settings - Fork 0
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
WebSocket Resource-Based API #1
Draft
cardenaso11
wants to merge
259
commits into
master
Choose a base branch
from
ws-api-adr
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cardenaso11
commented
Dec 8, 2023
- Fetch known network config in hydra-cluster
- Remove vendored config files, re-add submodule and use that in testnets/
- Remove ?submodules=1 instruction from nix builds
- Draft a ChainObserverSpec
- hydra-chain-observer package
- Call hydra-chain-observer from ChainObserverSpec
- Provide node socket and network id to hydra-chain-observer
- Command line parsing of hydra-chain-observer
- Connect to a local node from hydra-chain-observer
- WIP
- ChainObserverSpec waits for matching output
- Produce a static HeadInitTx message on hydra-chain-observer
- Actually connect to cardano-node and print using tracer
- Do not use show on File to avoid quotes in file paths
- Fetch all blocks in hydra-chain-observer and print txs
- Call observeRawInitTx from chain observer
- WIP
- Check we can observe commit tx
- Introduce generic head tx observation
- Duplicate raw commit observation
- Add note about observing collect tx without looking at inputs
- Missing deriving strategies
- Add test to observe CollectCom Tx
- Use utxo to observe head txs
- Add observeHeadTx test
- Add more cases to observeHeadTx and its test
- Add abort txs to genStateWithTx and add to observeHeadTx
- Cover more of head lifecycle observation
- ChainObserver: add RollForward trace
- Add a FIXME where we need to fix our UTxO
- Correctly adjust UTxO when observing a Tx
- Add HeadAbortTx and HeadContestTx tracers
- Add hydra-chain-observer test suite
- hydra-chain-observer: add Test.ChainObserverSpec
- Check observer covers all kind of transactions
- Formatting
- Only update observer's UTxO upon observing a Head Tx
- clean up observeTx
- Add some FIXME notes to observeCommitTx before refactoring it
- Change RawCommitObservation to CommitObservation
- Create a test about observing commit transactions
- Check commits are spending from vInitial in observeCommitTx
- Relativize FIXMEs
- Add option to start observing the chain from some point
- nix/hydra/packages: add hydra-chain-observer
- query the tip when no startChainFrom given
- Find intersection with selected starting point
- Make warnings on hydra-chain-observer less pedantic
- Fix compilation errors
- Refactor EndToEndLog and create a smaller HydraNodeLog type
- Update CHANGELOG and hydra-chain-observer README
- Remove hydra-chain-observer/CHANGELOG
- Fix formatting
- Remove an unused BlockHeader match
- Remove embedRevision on non-versioned binary hydra-chain-observer
- Add explicit guard in observeCommit
- Add hydra-chain-observer to hydra-cluster test environment
- Trace known scripts in hydra-chain-observer
- Extend three node e2e test to assert we do not see a PostTx error on collect
- Delay TxSubmission failure and ignore errors in logic
- Introduce headId in snapshots for the purpose of signing
- Fix prop_verifyOffChainSignatures and prop_verifySnapshotSignatures
- Regenerate golden files
- Fix timeout to reasonable duration
- Update API format
- Formatting changes
- Fix cluster tests
- Regenerate head and minting policy scripts
- Format ChainObserver
- Update CHANGELOG
- Address review comments
- Fix snapshot generator and golden files
- Update specification
- Fix formatting
- Fix api schema
- Write CHANGELOG for using inline datums
- Switch to inline datums in tx creation of hydra-node
- Change minting policy and init observation to use inline datums
- Change initial script and commit tx to use inline datums
- Fail faster on hydra-chain-observer e2e test
- Change close and contest transactions to use inline datums
- Change abort and fanout txs to use inline datums
- Rename changeHeadOutputDatum -> modifyInlineDatum
- Fix usage of inline datums in mutation tests
- Improve indentation in Head validator
- Fix a CollectCom mutation test
- Change Head script to expect inline datums
- Also use inline datums in ChangeInputHeadDatum mutations
- Clean up error codes
- Re-generate hydra-plutus scripts
- Remove unused datum from initial thread UTxO
- Remove unused datum from intial & commit utxos
- Remove unused datum from open/closed/contested UTxO
- Regenerate golden files due to breaking changes to ChainState
- State we only burn tokens from head policy id
- Add mutation test checking Fanout burns all tokens
- Check tokens are burnt on FanOut
- Document issue with hashing concatenation of bytes
- Update plutus scripts
- Update hydra-plutus/src/Hydra/Contract/Head.hs
- Address reviewers' comments
- Fix formatting
- Incorrect arguments passed for running bench fix Plutus-merkle-tree benchmarks are not producing anything cardano-scaling/hydra#1164
- Document why Close tx could be dropped by cardano-node
- Separate property checked for logging schemas
- Increase maximum number of parties
- Fix networking documentation about reliability
- Tidy up network configuration and startup
- Fix exiting in dialogs
- Add uppercase keybinding for global quit event
- Add explanation comment
- Update CHANGELOG
- Remove hard-coded headValue deposit for script outputs
- Calculate minimum utxo value in internal wallet
- Change initial validator to allow values >= on the output
- Fix wallet to only "ensure" and not set the minimum utxo value
- Update specification
- Apply suggestions from code review
- Regenerate golden hydra-plutus scripts
- Small refactor of WalletSpec as suggested
- Check if cardano-cli works with DraftCommitTxResponse
- Add cardano-cli to the tests.hydra-cluster
- Use encodeFile function directly
- Match on the output directly
- Draft e2e spec
- Capture stderr from child process
- Fix draft e2e spec so it fails for the right reason
- Check when acks dir missmatches with the peers configuration
- Extend spec to check we can resume a well configured peer
- Parameterize peers connectivity check
- Provide a more specific exception for network persistence mismatch
- Trace params mismatch missconfiguration error when SavedNetworkPartiesInconsistent occur
- Update logs schema with new params mismatch
- Encapsulate file name in a more explicit function
- Add spec namespace when showing logs on failure
- Update CHANGELOG
- Minor formatting fixes
- Use the function name in the describe scope when unit testing about a specific function
- Improve network haddock on configureMessagePersistence
- Fix logs description for SavedNetworkPartiesInconsistent by not being too concrete
- Improve network spec by avoid writing the internal representation when saving acks
- Bump cachix/cachix-action from 12 to 13
- Fix logs.yaml schema for recently added chain event
- Add some shrinkers
- Add missing requirement failure schema
- arbitrary hash
- Change JSON serialisation of Party when used as key
- Fix more logs schema and use fields for some errors
- More shrinkers
- Fix formatting
- Use serialiseToRawBytesHexText and deserialiseFromRawBytesHex
- Extract core Run function to own module
- Remove unused data type
- Change unit for contestation period option
- Rename configuration exception
- Unify options and configuration errors as a single Exception type
- Fix formatting issues
- Remove unneeded type ascription
- Add PR review policy
- Fix URLs to download software and add some help text
- Update docs/docs/tutorial/index.md
- Update docs/docs/tutorial/index.md
- Configure job for darwin
- Dedicated build-only job for Darwin
- Rename build step
- Add some documentation to workflows
- Collect runtime libraries from nix store
- Use otool instead
- Minor typo
- Modify packaging.nix to produce our zip format
- Update workflows to use .#release and .#release-static
- Use mkDerivation instaed of runCommand in embedRevision
- Use artifact names based on branch/tag
- Create versioned artifacts
- Renamed workflows
- Fix github artifacts
- Avoid .zip.zip in artifact download
- Fix asset quantity for CollectCom mutation
- hydra-cluster: Change Dataset to use ToCBOR/FromCBOR instead of JSON
- bench-e2e: encode Dataset as base16-bytestring
- Start monthly report for November 2023
- Cross link slides and recording
- Write a bit about MeshJS
- Write rendering specification section
- Write conclusion section
- Provide IPFS-based URL to animated GIF
- Add community section to the report
- Update docs/monthly/2023-11-monthly.md
- Update docs/monthly/2023-11-monthly.md
- Update docs/monthly/2023-11-monthly.md
- Apply suggestions from code review
- Apply suggestions from @olga
- Rephrasing paragraph
- Update docs/monthly/2023-11-monthly.md
- Regenerate datasets from JSON to CBOR
- Update github actions to use cbor datasets
- bench-e2e: make loadDataset and saveDataset symmetric
- Fix sed expression on tutorial
- Allow release.sh to continue with unstaged changes
- Do not produce .bak files when running release.sh
- Check we are running release.sh on master
- Make checkout of release more robust
- Clean up changelog
- Change tutorial to replace version more easily
- Update mithril release in tutorial
- Use hydra-node gen-hydra-key in tutorial
- Introduce a network.json file
- Small typo in tutorial
- Release 0.14.0
- Bump cachix/cachix-action from 12 to 13
- plutus: 1.9 -> 1.15.0.1 cardano-api: 8.20 -> 8.29.1
- hydra-cardano-api: reexport createAndValidateTransactionBody
- hydra-cardano-api: reexport makeShelleyKeyWitness
- Regenerate plutus scripts
- Acknowledge different canonical serialization of some auxiliary metadata
- hydra-plutus: split getHeadAddress into getHeadInput and getHeadAddress
- getHeadInput: Use case split instead of fromMaybe
- Regenerate plutus scripts
- nix flake update
- LogFilterSpec: update txids
- Submit NewTx transactions as CBOR in an envelope in benchmark
- Only extract txId from JSON-serialised Tx in benchmarks
- Rename MultiAssetSupportedInEra -> MaryEraOnwards
- Rename HasInlineDatums -> BabbageEraOnwards
- Rename HasScriptData -> IsAlonzoEraOnwards
- Move (latest) Era-specific helpers to Hydra.Cardano.Api module
- Create an Era-specific wrapper for defaultTxBodyContent
- Create an Era-specific wrapper for signShelleyTransaction
- Do not mention Babbage outside of hydra-cardano-api
- Use recent cabal index-states
We might want to implement that strategy as an observeRawCollectTx first and see whether that aligns with the "full" observation.
This file is expected to hold transaction ids for released Hydra versions. As such we can use it to make the tutorial simpler to be kept up-to-date.
…release-0.14.0 Release script changes & changelog 0.14.0
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 12 to 13. - [Release notes](https://github.com/cachix/cachix-action/releases) - [Commits](cachix/cachix-action@v12...v13) --- updated-dependencies: - dependency-name: cachix/cachix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
…ot/github_actions/cachix/cachix-action-13 Bump cachix/cachix-action from 12 to 13
cardano-api: 8.20 -> 8.29.1
It seems like ledger changed some metada encoding between versions. We had some specific auxiliaryData re-encoding fail, while most of the golden data was roundtripping just fine. We suspect a slight difference in the "canonical" serialization produced by the ledger **iff** a data type was not serialized before. Which is the case in our golden test suite where we generated random values and serialize them. TLDR; our golden tests are quite strict and this should be fine
This ensures that the byte-for-byte decoded data set is ingested into a Hydra head correctly. The JSON instance of transactions might not preserve the body byte-for-byte and hence invalidate witnesses leading to invalid transaction.
Seems like we are having issues with inconsistent To/FromJSON serialisation following upgrade, so perhaps we should move our logs to use the "canonical" CBOR represenation of a Tx instead of semi-custom JSON?
This was renamed upstream and we should capture the meaning the same way. It is to provide witnesses for features which are only available from mary era onwards.
Same rationale as previous commit, got renamed upstream.
Same rationale as previous two commits
These re-definitions are to avoid additional witness passing as long as we are just fine with the one specific / latest era (which we are by using Hydra.Cardano.Api). Consequently and according to the package README, these belong to the Api.hs module.
This avoids mentioning "Babbage" in downstream packages like hydra-cluster and will reduce the number of places to switch.
This avoids mentioning "Babbage" in downstream packages like hydra-cluster and will reduce the number of places to switch.
This reduces the number of times Babbage is mentioned in the hydra-node package and will help switching eras.
This removes "Requested index-state .. is newer than" warnings when building with cabal.
…s-1.15 plutus: 1.9 -> 1.15.0.1, cardano-api: 8.20 -> 8.29.1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.