Skip to content

Tags: angerman/ogmios

Tags

v5.5.5

Toggle v5.5.5's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.5

  #### Added

  - ![TypeScript][] Support for the _TxMonitor_ mini-protocol in the REPL.

  - Link to a new Java client for Ogmios.

  #### Changed

  - ![TypeScript][] Fixed parsing of `ScriptFailures` coming out of the `evaluateTx` command. Before this patch, the client would simply throw `undefined` when such an error was encountered. They are now properly transcribed as `EvaluateTxError`.

  #### Removed

  - `testnet` has been removed from the target networks by the Docker workflow; which means that until further notice, there will be no more Docker images pushed for testnet. However, support for `preprod` and `preview` environment has been added.

v5.5.4

Toggle v5.5.4's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.4

  #### Added

  - Missing JSON specification (and therefore, documentation) for `collectErrors`. See [CardanoSolutions#244](CardanoSolutions#244).

  #### Changed

  - Slot lengths are now encoded as floating numbers (double precision) instead of integers (still representing a number of seconds). However, to maintain backward-compatibility, integers value are encoded without decimal, as they used to. [CardanoSolutions#245](CardanoSolutions#245)

  - ![TypeScript][] Blocks' properties (`header`, `headerHash`, `body`) are no longer marked as _optional_ in the JSON specification (and consequently, in the TypeScript SDK). [CardanoSolutions#238](CardanoSolutions#238)

  #### Removed

  N/A

v5.5.3

Toggle v5.5.3's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.3

  #### Added

  N/A

  - ⚠️  Fixed Plutus' data / datum serialization function. See [3f614c3](CardanoSolutions@3f614c3) for details. As a consequence, some datums (either inline or in the witness set) that have been reported in the past (since `v5.5.0`) may have been wrong. Note that the datum hashes were however correct, so it is possible to identify the _"corrupted"_ ones by trying to re-hash (blake2b-256) them and see whether they match their associated hash digest.

  - Changed the Docker image tagging's scheme of `cardano-node-ogmios` to now include the cardano-node's version. This allows to more easily bundle more recent version of cardano-node with old versions of Ogmios without the need to make a whole new release. This is in effect from `v5.5.2` and onwards.

    | image               | repository                                                                                      | tags               |
    | ---                 | ---                                                                                             | ---                |
    | cardano-node-ogmios | [cardanosolutions/cardano-node-ogmios](https://hub.docker.com/repository/docker/cardanosolutions/cardano-node-ogmios) | `latest`<br/>`latest-{NETWORK}`<br/>`v*.*.*_{CARDANO_NODE_VERSION}`<br/>`v*.*.*_{CARDANO_NODE_VERSION}-{NETWORK}` |
    | ogmios              | [cardanosolutions/ogmios](https://hub.docker.com/repository/docker/cardanosolutions/ogmios)                           | `latest`<br/>`latest-{NETWORK}`<br/>`v*.*.*`<br/>`v*.*.*-{NETWORK}` |

  - [CardanoSolutions#242](CardanoSolutions#242) Fixed incongruous error message from the command-line when failing to parse protocol parameters from genesis files. The error reporting has been slightly improved to give a more fine-grained error per invalid parameter.

  #### Removed

  N/A

v5.5.2

Toggle v5.5.2's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.2

  #### Added

  N/A

  #### Changed

  ##### 🏢 Server

  - Bumped cardano-node's version (continuous integration & docker image) to 1.35.1.

  ##### 🚗 TypeScript Client

  - [CardanoSolutions#236](CardanoSolutions#236)  Remove superfluous string concatenation in `UnknownResultError`'s message.

  #### Removed

  N/A

v5.5.1

Toggle v5.5.1's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.1

  #### Added

  ##### 🚗 TypeScript Client

  - [CardanoSolutions#234](CardanoSolutions#234) New `isBabbageProtocolParameters` helper function, and extended support of the existing ones to Babbage.

  #### Changed

  ##### 🏢 Server

  - [CardanoSolutions#233](CardanoSolutions#233) Fixed Health endpoint wrongly reporting 'Alonzo' while in the 'Babbage era'.

  #### Removed

  N/A

v5.5.0

Toggle v5.5.0's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.0

  #### Added

  ##### 🏢 Server

  - Added Vasil/Babbage support, including:
    - A new block type `babbage` with:
      - New (optional) transaction fields `references`, `collateralReturn`, `totalCollateral`;
      - New (optional) transaction output's fields `datum` and `script`;
    - A new `plutus:v2` script language;
  - New transaction error submission failures in the Babbage era:
    - `mirNegativeTransfer`: return when attempting to perform a negative MIR transfer from a reward pot to another;
    - `totalCollateralMismatch`: returned when `totalCollateral` is set but does not match what is actually computed by the ledger (i.e. sum of collateral inputs minus collateral return);
    - `malformedReferenceScripts`: returned when the `script` specified in an output isn't actually a well-formed Plutus script;
    - `malformedScriptWitnesses`, occurs when a script witness specified in the transaction does not properly deserialize to a Plutus script.
  - New script evaluation failures in the Babbage era:
    - `corruptCostModelForLanguage`: An artifact from a distant past. This is unused but somehow still present in the ledger internal definitions. Should be removed eventually.
  - New server evaluation failures:
    - `NotEnoughSynced`: Happens when attempting to evaluate execution units on a node that isn't enough synchronized. This is, if the node is still in an era prior to Alonzo, evaluation of execution units won't be possible.
    - `CannotCreateEvaluationContext`: Happens when the ledger fails to create an evaluation context from a given transaction. This is mostly due to the transaction being malformed (e.g. wrong redeemer pointer, missing UTxO).

  <p align="right">See the <a href="https://ogmios.dev/api">📘 API reference</a> for more details.</p>

  ##### 🚗 TypeScript Client

  - Same as Server.

  #### Changed

  ##### 🏢 Server

  - Updated [cardano-configurations](https://github.com/input-output-hk/cardano-configurations) to include the `vasil-dev` network and switch to [cardano-world](https://github.com/input-output-hk/cardano-world) as a source instead of Hydra artifacts -- now being deprecated.

  - _Partially fixed_ an issue ([CardanoSolutions#230](CardanoSolutions#230), [CardanoSolutions#208](CardanoSolutions#208)) causing websocket connection to be terminated by the server when p2p is enabled on the underlying node. Ogmios now has a workaround which makes the issue _less likely_, but the real fix belongs in the upstream networking stack

  - The `missingRequiredScripts` error now contains an extra field `resolved` that is a map of (pointer → script hash) that have been correctly resolved by said pointers.

  - The introduction of the Babbage era comes with some minor (albeit possibly breaking) changes and deprecations:
    - ⚠️  `datums`, `redeemerData` and `plutus:v1` scripts are no longer encoded as `base64` strings, but are encoded as `base16` strings. The data payload remains however identical.
         This change is meant for more compatibility across the API since those data-types can now also be submitted to the server when evaluating execution units for transactions. Using
         `base64` for input data here is a bit awkward since most existing interfaces in the ecosystem favor `base16`;

    - ⚠️ When passing transaction outputs to the server (e.g. when providing an additional UTxO for script evaluation), datum hashes in output must now be specified as `datumHash` (instead of `datum`). However, the server does a best-effort for the sake of backward compatibility and should still work if provided with a valid hash under `datum`. However, after the Vasil hard-fork, it'll be possible to also pass inline-datums using `datum`, while datum hash digest are expected to be specified as `datumHash`. Said differently, existing applications relying on this functionality will keep working without a change on this release, but applications willing to make use of the new inline-datum functionality coming in Vasil must abide by the new notation;

    - ⚠️ Similarly, Alonzo transaction outputs will now contain a `datumHash` field, carrying the datum hash digest. However, they will also contain a `datum` field with the exact same value for backward compatibility reason. In Babbage however, transaction outputs will carry either `datum` or `datumHash` depending on the case; and `datum` will only contain inline datums;

    - ⚠️  The `outputTooSmall` errors from transaction submission will slightly change format for transactions submitted during the Babbage era. Instead of an array of outputs, it is an array of objects with `output` and `minimumRequiredValue` fields;

    - ⚠️  A slightly modified block header: `leaderValue` and `nounce` fields are gone and replaced by a single `inputVrf` field;

    - ⚠️ Few protocol parameters changes:

      - A new protocol parameter `coinsPerUTxOByte` comes to replace `coinsPerUtxoWord` with a slightly different semantic. `coinsPerUTxOByte` is meant to compute the minimum Lovelace requirement on transaction outputs, and is simply a coefficient in a linear function of the serialized (CBOR) output:

        ```
        minUTxOValue(output) =  |serialise(output)| * coinsPerUTxOByte
        ```

      - The `decentralizationParameter` no longer exists.<br/>
        The block production is forever decentralized 🎉!

      - The `extraEntropy` no longer exists.

  <p align="right">See the <a href="https://ogmios.dev/api">📘 API reference</a> for more details.</p>

  ##### 🚗 TypeScript Client

  - Same as Server.

  #### Removed

  ##### 🏢 Server

  - `UnknownInputs` and `UncomputableSlotArithmetic` errors have been removed from the top-level possible cases of `EvaluationFailure`. Instead, those errors are now comprised in the `CannotCreateEvaluationContext` case.

  - The `corruptCostModelForLanguage` error has been removed from the top-level possible cases of `ScriptFailure`. This one was effectively dead-code that couldn't be reached and was there for completeness. The code has now been removed upstream.

  ##### 🚗 TypeScript Client

  - Same as Server.

v5.5.0-rc3

Toggle v5.5.0-rc3's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.0-rc3

  #### Added

  ##### 🏢 Server

  - The `missingRequiredScripts` error now contains an extra field `resolved` that is a map of (pointer → script hash) that have been correctly resolved by said pointers.

  - New possible transaction submission error (only for Babbage transactions):

    - `malformedScriptWitnesses`, occurs when a script witness specified in the transaction does not properly deserialize to a Plutus sccript.

  ##### 🚗 TypeScript Client

  - Same as Server.

  #### Changed

  ##### 🏢 Server

  - The fields of the `totalCollateralMismatch` error introduced in `-rc1` have been renamed as follows:
    - `needed` →  `computedFromDelta`
    - `specified` → `declaredInField`

  - The submission error `malformedOutputScripts` introduced in `-rc1` has been renamed as `malformedReferenceScripts`.

  ##### 🚗 TypeScript Client

  - Same as Server.

  #### Removed

  ##### 🏢 Server

  - `UnknownInputs` and `UncomputableSlotArithmetic` errors have been removed from the top-level possible cases of `EvaluationFailure`. Instead, those errors are now comprised in the `CannotCreateEvaluationContext` case.

  - The `corruptCostModelForLanguage` error has been removed from the top-level possible cases of `ScriptFailure`. This one was effectively dead-code that couldn't be reached and was there for completeness. The code has now been removed upstream.

  ##### 🚗 TypeScript Client

  - Same as Server.

v5.5.0-rc1

Toggle v5.5.0-rc1's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.5.0-rc1

  #### Added

  ##### 🏢 Server

  - Added Vasil/Babbage support, including:
    - A new block type `babbage` with:
      - New (optional) transaction fields `references`, `collateralReturn`, `totalCollateral`;
      - New (optional) transaction output's fields `datum` and `script`;
    - A new `plutus:v2` script language;
  - New transaction error submission failures in the Babbage era:
    - `mirNegativeTransfer`: return when attempting to perform a negative MIR transfer from a reward pot to another;
    - `totalCollateralMismatch`: returned when `totalCollateral` is set but does not match what is actually computed by the ledger (i.e. sum of collateral inputs minus collateral return);
    - `malformedOutputScripts`: returned when the `script` specified in an output isn't actually a well-formed Plutus script;
  - New script evaluation failures in the Babbage era:
    - `corruptCostModelForLanguage`: An artifact from a distant past. This is unused but somehow still present in the ledger internal definitions. Should be removed eventually.
  - New server evaluation failures:
    - `NotEnoughSynced`: Happens when attempting to evaluate execution units on a node that isn't enough synchronized. This is, if the node is still in an era prior to Alonzo, evaluation of execution units won't be possible.
    - `CannotCreateEvaluationContext`: Happens when the ledger fails to create an evaluation context from a given transaction. This is mostly due to the transaction being malformed (e.g. wrong redeemer pointer, missing UTxO).

  <p align="right">See the <a href="https://ogmios.dev/api">📘 API reference</a> for more details.</p>

  ##### 🚗 TypeScript Client

  - Incorporated changes coming from the server's update.

  #### Changed

  ##### 🏢 Server

  - The introduction of the Babbage era comes with some minor (albeit possibly breaking) changes and deprecations:
    - ⚠️  `datums`, `redeemerData` and `plutus:v1` scripts are no longer encoded as `base64` strings, but are encoded as `base16` strings. The data payload remains however identical.
         This change is meant for more compatibility across the API since those data-types can now also be submitted to the server when evaluating execution units for transactions. Using
         `base64` for input data here is a bit awkward since most existing interfaces in the ecosystem favor `base16`;

    - ⚠️ When passing transaction outputs to the server (e.g. when providing an additional UTxO for script evaluation), datum hashes in output must now be specified as `datumHash` (instead of `datum`). However, the server does a best-effort for the sake of backward compatibility and should still work if provided with a valid hash under `datum`. However, after the Vasil hard-fork, it'll be possible to also pass inline-datums using `datum`, while datum hash digest are expected to be specified as `datumHash`. Said differently, existing applications relying on this functionality will keep working without a change on this release, but applications willing to make use of the new inline-datum functionality coming in Vasil must abide by the new notation;

    - ⚠️ Similarly, Alonzo transaction outputs will now contain a `datumHash` field, carrying the datum hash digest. However, they will also contain a `datum` field with the exact same value for backward compatibility reason. In Babbage however, transaction outputs will carry either `datum` or `datumHash` depending on the case; and `datum` will only contain inline datums;

    - ⚠️  The `outputTooSmall` errors from transaction submission will slightly change format for transactions submitted during the Babbage era. Instead of an array of outputs, it is an array of
      objects with `output` and `minimumRequiredValue` fields;

    - ⚠️  A slightly modified block header: `leaderValue` and `nounce` fields are gone and replaced by a single `inputVrf` field;

    - ⚠️ Few protocol parameters changes:

      - A new protocol parameter `coinsPerUTxOByte` comes to replace `coinsPerUtxoWord` with a slightly different semantic. `coinsPerUTxOByte` is meant to compute the minimum Lovelace requirement on transaction outputs, and is simply a coefficient in a linear function of the serialized (CBOR) output:

        ```
        minUTxOValue(output) =  |serialise(output)| * coinsPerUTxOByte
        ```

      - The `decentralizationParameter` no longer exists.<br/>
        The block production is forever decentralized 🎉!

      - The `extraEntropy` no longer exists.

  <p align="right">See the <a href="https://ogmios.dev/api">📘 API reference</a> for more details.</p>

  ##### 🚗 TypeScript Client

  - Incorporated changes coming from the server's update.

  #### Removed

  N/A

v5.4.0

Toggle v5.4.0's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.4.0

  #### Added

  ##### 🚗 TypeScript Client

  - TypeScript client for the 'TxMonitor' mini-protocol. Documentation available at https://ogmios.dev/typescript-client/tx-monitor/.

  #### Changed

  ##### 🏢 Server

  - The server now returns slightly better faults when detecting a misuse of the `TxMonitor` protocol (e.g. when sending a `HasTx` before an `AwaitAcquire`).

  - The server now fails with an explicit error when given a `Request` containing a `reflection` field; `reflection` are only used in responses, while requests use `mirror`. See [CardanoSolutions#217](CardanoSolutions#217).

v5.3.0

Toggle v5.3.0's commit message

Verified

This tag was signed with the committer’s verified signature.
KtorZ Matthias Benkort
v5.3.0

  #### Added

  ##### 🏢 Server

  - In the Local-Tx-Monitor protocol, `NextTx` can now take an (optional) extra argument `{ "fields": "all" }` to instrument the server in returning not only a transaction id in `NextTxResponse`, but a full transaction object. See [CardanoSolutions#190](CardanoSolutions#190).

  - Transaction JSON objects from all eras now contains an extra field `raw`, which represents the raw serialized transaction (CBOR) as a base64-encoded text string. This is the case of the chain-sync protocol, but also for the tx-monitor protocol. The field is however absent in the `ogmios.v1:compact` mode. See [CardanoSolutions#190](CardanoSolutions#190).

  - Transaction JSON objects from the **Alonzo** era now contains an extra field `inputSource` which a string set to either `inputs` or `collaterals`. This captures the fact that since the introduction of Plutus scripts in Alonzo, some transactions may be recorded as _failed_ transactions in the ledger. Those transactions do not successfully spend their inputs but instead, consume their collaterals as an input source to compensate block validators for their work.

  #### Changed

  ##### 🏢 Server

  - The complete API reference for the server is available in a new form at: https://ogmios.dev/api/. This should make the various protocol messages easier to explore and provide a less awkward visualization of the server API than the previous TypeScript documentation. The old TypeScript documentation remains however available at: https://ogmios.dev/typescript/api/.

  - Upgrade internal dependencies to `[email protected]`

  - Fixed the supervisor script for the `cardano-node-ogmios` Docker image, which would wrongly ignore signals sent from the Docker daemon (e.g. `docker container stop ...`). See [CardanoSolutions#168](CardanoSolutions#168)

  ##### 🚗 TypeScript Client

  - The tx-submission client now only creates a single event listener to interact with the server. This solves the Node.js warning "possible memory leak detected" when firing many submission requests at once (and going beyond the internal default `maxNumberOfListeners` set by node.js on event emitters). See [CardanoSolutions#197](CardanoSolutions#197).

  - The options passed to the WebSocket constructors are now ignored on the browser, since they aren't supported and were causing the constructor to "crash". See [CardanoSolutions#194](CardanoSolutions#194).

  - ⚠️  Some schema type interface renaming:
      - `Tx` → `TxByron`
      - `BlockBodyShelley` → `TxShelley`
      - `BlockBodyAllegra` → `TxAllegra`
      - `BlockBodyMary` → `TxMary`
      - `BlockBodyAlonzo` → `TxAlonzo`

  #### Removed

  N/A