-
Notifications
You must be signed in to change notification settings - Fork 88
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
Hydra explorer supporting multiple hydra versions #1282
Comments
Having looked into this a bit as part of cardano-scaling/hydra-explorer#5 I think it's worth making some notes:
I.e. the real limitation is with the chain-observer; so we just need to make that parameterisable by a specific -- Edit: As discussed with @ffakenz and @ch1bo , it is not possible to "de-version" the relevant parts of the chain-observer code (i.e. to parameterise it by the version), because all the version information is essentially hard-coded in the code itself; so it's easier just to depend on different revisions of the code and adapt them to write to a generic (?JSON) format consumable by the hydra-explorer. |
When working on this I realized that a lot of our dependencies could be improved. For example:
|
Why
The Hydra explorer should be able to report Hydra heads from multiple different protocol versions on all public networks. The explorer can be used to give usage information about each version.
What
The
hydra-explorer
lists heads from all networks and supported versions according tonetworks.json
The
hydra-explorer
does not need to be updated on every script change (e.g. when we switch plutus-tx/GHC versions)The
hydra-explorer
reports a protocol version per head.Can run multiple "(chain) observers", one for each network and
hydra
protocol version, feeding information into onehydra-explorer
instance.hydra-explorer
is decoupled from a specifichydra
versionThe
hydra-explorer
should be deployed from https://github.com/cardano-scaling/hydra-explorer using multiple versions of the mainhydra
repositoryhydra-node/src/Hydra/Chain/Direct/Tx.hs
generic across versions; the easiest way is just to depend on the entire codebase 🥲We should delete the
hydra-explorer
folder from the mainhydra
repoHow
The endpoint is a POST to
/v1/observations/<network>/<version>
with request body of some JSON object enumerating the observationsAdd an observer-side API definition to
hydra-explorer
OpenAPI schemaThe interface should be JSON-based simpler HTTP requests; so that it's easy reason about backwards compatibility and debug, and test
hydra-chain-observers
are HTTP clients sending requests tohydra-explorer
observer-side API whenever a head transition is observedObserver-side API is exposed on separate port so we can host and port configurable on the command-line of
hydra-explorer
Both
hydra-chain-observer
andhydra-explorer
are tested agains theobserver-side
API schemaTBD
The text was updated successfully, but these errors were encountered: