@cardano-ogmios/repl
Advanced tools
Changelog
[5.5.3] - 2022-07-31
N/A
Bumped cardano-node's version (continuous integration & docker image) to 1.35.2.
⚠️ Fixed Plutus' data / datum serialization function. See 3f614c3c 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 | latest
<br/>latest-{NETWORK}
<br/>v*.*.*_{CARDANO_NODE_VERSION}
<br/>v*.*.*_{CARDANO_NODE_VERSION}-{NETWORK}
|
| ogmios | cardanosolutions/ogmios | latest
<br/>latest-{NETWORK}
<br/>v*.*.*
<br/>v*.*.*-{NETWORK}
|
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. See #242.
N/A
Changelog
[5.5.0] - 2022-06-29
babbage
with:
references
, collateralReturn
, totalCollateral
;datum
and script
;plutus:v2
script language;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.corruptCostModelForLanguage
: An artifact from a distant past. This is unused but somehow still present in the ledger internal definitions. Should be removed eventually.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).Updated cardano-configurations to include the vasil-dev
network and switch to cardano-world as a source instead of Hydra artifacts -- now being deprecated.
Partially fixed an issue 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. See #230, #208.
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 :tada:!
The extraEntropy
no longer exists.
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.
Changelog
[5.4.0] - 2022-05-22
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 #217.
Changelog
[5.3.0] - 2022-05-07
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 #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 #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.
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 cardano-node@1.34.1
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 #168
![TypeScript][] 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 #197.
![TypeScript][] 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 #194.
![TypeScript][] ⚠️ Some schema type interface renaming:
Tx
→ TxByron
BlockBodyShelley
→ TxShelley
BlockBodyAllegra
→ TxAllegra
BlockBodyMary
→ TxMary
BlockBodyAlonzo
→ TxAlonzo
N/A
Changelog
[5.2.0] - 2022-02-15
EvaluateTx
query which evaluates execution units of scripts present in a transaction. This effectively piggybacks on the Alonzo's tools from the cardano-ledger while providing a more user-friendly interface regarding network parameters. The API offers well-detailed errors and an interface similar to the SubmitTx
. See discussion on #172.rewardsProvenance'
query coming as a replacement for the now-deprecated rewardsProvenance
query. See discussion on #171.![TypeScript][] Support for the new evaluateTx
query in the TxSubmissionClient
& repl.
![TypeScript][] Support for the new rewardsProvenance'
query as rewardsProvenanceNew
in the StateQueryClient
& repl.
SubmitTx
. While this is technically a breaking-change, it was introduced in a backward-compatible way. Existing applications using the existing SubmitTx
query will see no change and will keep receiving successes as "SubmitSuccessful"
text responses. However, queries which pass transactions using the submit
field (instead of the currently expected bytes
field) will receive, on success, an augmented response which contains a transaction id "SubmitSuccessful": { "txId": "..." }
. See discussion on #174.SubmitTx
protocol which should gives a little clearer errors for ill-formed transactions.TxSubmission/errors.ts
into TxSubmission/submissionErrors.ts
. Similarly, the submission are also now nested under a submissionErrors
field in the TxSubmission
top-level object.N/A
Changelog
[5.1.0] - 2022-01-24
LocalTxMonitor
support in Ogmios. See The user guide for more details.⚠️ This new protocol is NOT enabled in cardano-node@1.33.*
. Until its inclusion in a next release, a custom build of cardano-node is required to include a more recent version of ouroboros-network
which adds support for that protocol to the Ouroboros' mini-protocols; namely: 32af9168
.
A version of cardano-node@1.33.0
patched with the necessary commits can be found at CardanoSolutions/cardano-node@1.33.0+local-tx-monitor.
ogmios health-check
command, useful to perform simple health check on a running server. For example, to monitor a container via Docker health check mechanism:
HEALTHCHECK --interval=10s --timeout=5s --retries=1 CMD /bin/ogmios health-check
1.33.*
eco-system.networkSynchronization
and currentEra
can be null
when the server isn't connected to a node. #154Metrics
trace is now correctly tagged with MetricsRuntimeStatsDisabled
.N/A