-
<!doctype html><html lang=en class="js csstransforms3d"><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="Hugo 0.76.5"><meta name=description content="User manual for Ogmios, a lightweight protocol translation service for Cardano."><meta name=author content="KtorZ <[email protected]>"><link rel=icon href=/images/favicon.png type=image/png><title>Changelog - Ogmios</title><link href=/css/nucleus.css?1651944923 rel=stylesheet><link href=/css/fontawesome-all.min.css?1651944923 rel=stylesheet><link href=/css/hybrid.css?1651944923 rel=stylesheet><link href=/css/featherlight.min.css?1651944923 rel=stylesheet><link href=/css/perfect-scrollbar.min.css?1651944923 rel=stylesheet><link href=/css/auto-complete.css?1651944923 rel=stylesheet><link href=/css/atom-one-dark-reasonable.css?1651944923 rel=stylesheet><link href=/css/theme.css?1651944923 rel=stylesheet><link href=/css/tabs.css?1651944923 rel=stylesheet><link href=/css/hugo-theme.css?1651944923 rel=stylesheet><link href=/css/theme-mine.css?1651944923 rel=stylesheet><script src=/js/jquery-3.3.1.min.js?1651944923></script><style>:root #header+#content>#left>#rlblock_left{display:none!important}</style></head><body data-url=/changelog/><nav id=sidebar><div id=header-wrapper><div id=header><a href=/><img alt=ogmios src=/ogmios-logo-white.png></a></div><div class=searchbox><label for=search-by><i class="fas fa-search"></i></label><input data-search-input id=search-by type=search placeholder=Search...>
-
<span data-search-clear><i class="fas fa-times"></i></span></div><script type=text/javascript src=/js/lunr.min.js?1651944923></script><script type=text/javascript src=/js/auto-complete.js?1651944923></script><script type=text/javascript>var baseurl="https:\/\/ogmios.dev";</script><script type=text/javascript src=/js/search.js?1651944923></script></div><div class=highlightable><ul class=topics><li data-nav-id=/getting-started/ title="Getting Started" class=dd-item><a href=/getting-started/><b>1. </b>Getting Started</a><ul><li data-nav-id=/getting-started/docker/ title=Docker class=dd-item><a href=/getting-started/docker/>Docker</a></li><li data-nav-id=/getting-started/building/ title=Building class=dd-item><a href=/getting-started/building/>Building</a></li><li data-nav-id=/getting-started/testing/ title=Testing class=dd-item><a href=/getting-started/testing/>Testing</a></li><li data-nav-id=/getting-started/monitoring/ title=Monitoring class=dd-item><a href=/getting-started/monitoring/>Monitoring</a></li><li data-nav-id=/getting-started/basics/ title=Basics class=dd-item><a href=/getting-started/basics/>Basics</a></li></ul></li><li data-nav-id=/mini-protocols/ title="Ouroboros Mini-Protocols" class=dd-item><a href=/mini-protocols/><b>2. </b>Ouroboros Mini-Protocols</a><ul><li data-nav-id=/mini-protocols/local-chain-sync/ title="Local Chain Sync" class=dd-item><a href=/mini-protocols/local-chain-sync/>Local Chain Sync</a></li><li data-nav-id=/mini-protocols/local-state-query/ title="Local State Query" class=dd-item><a href=/mini-protocols/local-state-query/>Local State Query</a></li><li data-nav-id=/mini-protocols/local-tx-submission/ title="Local Tx Submission" class=dd-item><a href=/mini-protocols/local-tx-submission/>Local Tx Submission</a></li><li data-nav-id=/mini-protocols/local-tx-monitor/ title="Local Tx Monitor" class=dd-item><a href=/mini-protocols/local-tx-monitor/>Local Tx Monitor</a></li></ul></li><li data-nav-id=/deployment/ title=Deployment class=dd-item><a href=/deployment/><b>4. </b>Deployment</a><ul><li data-nav-id=/deployment/aws/ title=AWS class=dd-item><a href=/deployment/aws/>AWS</a></li></ul></li><li data-nav-id=/typescript-client/ title="TypeScript Client" class=dd-item><a href=/typescript-client/><b>4. </b>TypeScript Client</a><ul><li data-nav-id=/typescript-client/overview/ title=Overview class=dd-item><a href=/typescript-client/overview/>Overview</a></li><li data-nav-id=/typescript-client/chain-sync/ title="ChainSync Client" class=dd-item><a href=/typescript-client/chain-sync/>ChainSync Client</a></li><li data-nav-id=/typescript-client/state-query/ title="StateQuery Client" class=dd-item><a href=/typescript-client/state-query/>StateQuery Client</a></li><li data-nav-id=/typescript-client/tx-submission/ title="TxSubmission Client" class=dd-item><a href=/typescript-client/tx-submission/>TxSubmission Client</a></li></ul></li><li data-nav-id=/api/ title="API Reference" class=dd-item><a href=/api/><b>5. </b>API Reference</a></li><li data-nav-id=/changelog/ title=Changelog class="dd-item
+
<!doctype html><html lang=en class="js csstransforms3d"><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="Hugo 0.76.5"><meta name=description content="User manual for Ogmios, a lightweight protocol translation service for Cardano."><meta name=author content="KtorZ <[email protected]>"><link rel=icon href=/images/favicon.png type=image/png><title>Changelog - Ogmios</title><link href=/css/nucleus.css?1653127420 rel=stylesheet><link href=/css/fontawesome-all.min.css?1653127420 rel=stylesheet><link href=/css/hybrid.css?1653127420 rel=stylesheet><link href=/css/featherlight.min.css?1653127420 rel=stylesheet><link href=/css/perfect-scrollbar.min.css?1653127420 rel=stylesheet><link href=/css/auto-complete.css?1653127420 rel=stylesheet><link href=/css/atom-one-dark-reasonable.css?1653127420 rel=stylesheet><link href=/css/theme.css?1653127420 rel=stylesheet><link href=/css/tabs.css?1653127420 rel=stylesheet><link href=/css/hugo-theme.css?1653127420 rel=stylesheet><link href=/css/theme-mine.css?1653127420 rel=stylesheet><script src=/js/jquery-3.3.1.min.js?1653127420></script><style>:root #header+#content>#left>#rlblock_left{display:none!important}</style></head><body data-url=/changelog/><nav id=sidebar><div id=header-wrapper><div id=header><a href=/><img alt=ogmios src=/ogmios-logo-white.png></a></div><div class=searchbox><label for=search-by><i class="fas fa-search"></i></label><input data-search-input id=search-by type=search placeholder=Search...>
+
<span data-search-clear><i class="fas fa-times"></i></span></div><script type=text/javascript src=/js/lunr.min.js?1653127420></script><script type=text/javascript src=/js/auto-complete.js?1653127420></script><script type=text/javascript>var baseurl="https:\/\/ogmios.dev";</script><script type=text/javascript src=/js/search.js?1653127420></script></div><div class=highlightable><ul class=topics><li data-nav-id=/getting-started/ title="Getting Started" class=dd-item><a href=/getting-started/><b>1. </b>Getting Started</a><ul><li data-nav-id=/getting-started/docker/ title=Docker class=dd-item><a href=/getting-started/docker/>Docker</a></li><li data-nav-id=/getting-started/building/ title=Building class=dd-item><a href=/getting-started/building/>Building</a></li><li data-nav-id=/getting-started/testing/ title=Testing class=dd-item><a href=/getting-started/testing/>Testing</a></li><li data-nav-id=/getting-started/monitoring/ title=Monitoring class=dd-item><a href=/getting-started/monitoring/>Monitoring</a></li><li data-nav-id=/getting-started/basics/ title=Basics class=dd-item><a href=/getting-started/basics/>Basics</a></li></ul></li><li data-nav-id=/mini-protocols/ title="Ouroboros Mini-Protocols" class=dd-item><a href=/mini-protocols/><b>2. </b>Ouroboros Mini-Protocols</a><ul><li data-nav-id=/mini-protocols/local-chain-sync/ title="Local Chain Sync" class=dd-item><a href=/mini-protocols/local-chain-sync/>Local Chain Sync</a></li><li data-nav-id=/mini-protocols/local-state-query/ title="Local State Query" class=dd-item><a href=/mini-protocols/local-state-query/>Local State Query</a></li><li data-nav-id=/mini-protocols/local-tx-submission/ title="Local Tx Submission" class=dd-item><a href=/mini-protocols/local-tx-submission/>Local Tx Submission</a></li><li data-nav-id=/mini-protocols/local-tx-monitor/ title="Local Tx Monitor" class=dd-item><a href=/mini-protocols/local-tx-monitor/>Local Tx Monitor</a></li></ul></li><li data-nav-id=/deployment/ title=Deployment class=dd-item><a href=/deployment/><b>4. </b>Deployment</a><ul><li data-nav-id=/deployment/aws/ title=AWS class=dd-item><a href=/deployment/aws/>AWS</a></li></ul></li><li data-nav-id=/typescript-client/ title="TypeScript Client" class=dd-item><a href=/typescript-client/><b>4. </b>TypeScript Client</a><ul><li data-nav-id=/typescript-client/overview/ title=Overview class=dd-item><a href=/typescript-client/overview/>Overview</a></li><li data-nav-id=/typescript-client/chain-sync/ title="ChainSync Client" class=dd-item><a href=/typescript-client/chain-sync/>ChainSync Client</a></li><li data-nav-id=/typescript-client/state-query/ title="StateQuery Client" class=dd-item><a href=/typescript-client/state-query/>StateQuery Client</a></li><li data-nav-id=/typescript-client/tx-submission/ title="TxSubmission Client" class=dd-item><a href=/typescript-client/tx-submission/>TxSubmission Client</a></li><li data-nav-id=/typescript-client/tx-monitor/ title="TxMonitor Client" class=dd-item><a href=/typescript-client/tx-monitor/>TxMonitor Client</a></li></ul></li><li data-nav-id=/api/ title="API Reference" class=dd-item><a href=/api/><b>5. </b>API Reference</a></li><li data-nav-id=/changelog/ title=Changelog class="dd-item
-
active"><a href=/changelog/><b>6. </b>Changelog</a></li><li data-nav-id=/faq/ title=F.A.Q class=dd-item><a href=/faq/><b>7. </b>F.A.Q</a></li></ul><section id=shortcuts><h3>More</h3><ul><li><a class=padding href=https://github.com/cardanosolutions/ogmios><i class="fab fa-github"></i>Source code</a></li><li><a class=padding href=https://github.com/cardanosolutions/ogmios/issues><i class="fab fa-solid fa-bullseye"></i>Issues Tracking</a></li><li><a class=padding href=https://discord.gg/ZeyDn65t5v><i class="fab fa-discord"></i>Discord (#ogmios)</a></li><li><a class=padding href=https://github.com/CardanoSolutions/ogmios/tree/master/architectural-decisions/accepted><i class="fab fa-solid fa-file-code"></i>Architectural Decisions Record</a></li></ul></section><section id=footer><style>i.fa-solid{margin-left:-2px!important;margin-right:-2px!important}</style></section></div></nav><section id=body><div id=overlay></div><div class="padding highlightable"><div><div id=top-bar><div id=breadcrumbs itemscope itemtype=http://data-vocabulary.org/Breadcrumb><span id=sidebar-toggle-span><a href=# id=sidebar-toggle data-sidebar-toggle><i class="fas fa-bars"></i></a></span><span id=toc-menu><i class="fas fa-list-alt"></i></span><span class=links><a href=/>Overview</a> > Changelog</span></div><div class=progress><div class=wrapper><nav id=TableOfContents><ul><li><ul><li><a href=#530---2022-05-07>[5.3.0] - 2022-05-07</a></li><li><a href=#520---2022-02-15>[5.2.0] - 2022-02-15</a></li><li><a href=#510---2022-01-24>[5.1.0] - 2022-01-24</a></li><li><a href=#500---2021-12-20>[5.0.0] - 2021-12-20</a></li><li><a href=#421---2021-11-16>[4.2.1] - 2021-11-16</a></li><li><a href=#420---2021-11-05>[4.2.0] - 2021-11-05</a></li><li><a href=#410---2021-09-08>[4.1.0] - 2021-09-08</a></li><li><a href=#400---2021-09-06>[4.0.0] - 2021-09-06</a></li><li><a href=#320---2021-05-09>[3.2.0] - 2021-05-09</a></li><li><a href=#310---2021-04-04>[3.1.0] - 2021-04-04</a></li><li><a href=#300----2021-02-26>[3.0.0] – 2021-02-26</a></li><li><a href=#200-beta----2020-10-31>[2.0.0-beta] – 2020-10-31</a></li><li><a href=#100-beta----2020-04-04>[1.0.0-beta] – 2020-04-04</a></li></ul></li></ul></nav></div></div></div></div><div id=head-tags></div><div id=body-inner><h1>Changelog</h1><h3 id=530---2022-05-07>[5.3.0] - 2022-05-07</h3><h4 id=added>Added</h4><h5 id=-server>🏢 Server</h5><ul><li><p>In the Local-Tx-Monitor protocol, <code>NextTx</code> can now take an (optional) extra argument <code>{ "fields": "all" }</code> to instrument the server in returning not only a transaction id in <code>NextTxResponse</code>, but a full transaction object. See <a href=https://github.com/CardanoSolutions/ogmios/issues/190>#190</a>.</p></li><li><p>Transaction JSON objects from all eras now contains an extra field <code>raw</code>, 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 <code>ogmios.v1:compact</code> mode. See <a href=https://github.com/CardanoSolutions/ogmios/issues/190>#190</a>.</p></li><li><p>Transaction JSON objects from the <strong>Alonzo</strong> era now contains an extra field <code>inputSource</code> which a string set to either <code>inputs</code> or <code>collaterals</code>. This captures the fact that since the introduction of Plutus scripts in Alonzo, some transactions may be recorded as <em>failed</em> 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.</p></li></ul><h4 id=changed>Changed</h4><h5 id=-server-1>🏢 Server</h5><ul><li><p>The complete API reference for the server is available in a new form at: <a href=https://ogmios.dev/api/>https://ogmios.dev/api/</a>. 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: <a href=https://ogmios.dev/typescript/api/>https://ogmios.dev/typescript/api/</a>.</p></li><li><p>Upgrade internal dependencies to <code>[email protected]</code></p></li><li><p>Fixed the supervisor script for the <code>cardano-node-ogmios</code> Docker image, which would wrongly ignore signals sent from the Docker daemon (e.g. <code>docker container stop ...</code>). See <a href=https://github.com/CardanoSolutions/ogmios/issues/168>#168</a></p></li></ul><h5 id=-typescript-client>🚗 TypeScript Client</h5><ul><li><p>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 <code>maxNumberOfListeners</code> set by node.js on event emitters). See <a href=https://github.com/CardanoSolutions/ogmios/issues/197>#197</a>.</p></li><li><p>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 <a href=https://github.com/CardanoSolutions/ogmios/issues/194>#194</a>.</p></li><li><p>⚠️ Some schema type interface renaming:</p><ul><li><code>Tx</code> → <code>TxByron</code></li><li><code>BlockBodyShelley</code> → <code>TxShelley</code></li><li><code>BlockBodyAllegra</code> → <code>TxAllegra</code></li><li><code>BlockBodyMary</code> → <code>TxMary</code></li><li><code>BlockBodyAlonzo</code> → <code>TxAlonzo</code></li></ul></li></ul><h4 id=removed>Removed</h4><p>N/A</p><hr><hr><h3 id=520---2022-02-15>[5.2.0] - 2022-02-15</h3><h4 id=added-1>Added</h4><h5 id=-server-2>🏢 Server</h5><blockquote></blockquote><ul><li>Extended the local-tx-submission protocol with a <a href=https://ogmios.dev/mini-protocols/local-tx-submission/#evaluatetx>new <code>EvaluateTx</code> query</a> 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 <code>SubmitTx</code>. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/172>#172</a>.</li></ul><blockquote></blockquote><ul><li>New <code>rewardsProvenance'</code> query coming as a replacement for the now-deprecated <code>rewardsProvenance</code> query. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/171>#171</a>.</li></ul><blockquote></blockquote><h5 id=-typescript-client-1>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Support for the new <code>evaluateTx</code> query in the <code>TxSubmissionClient</code> & repl.</li><li>Support for the new <code>rewardsProvenance'</code> query as <code>rewardsProvenanceNew</code> in the <code>StateQueryClient</code> & repl.</li></ul><h4 id=changed-1>Changed</h4><h5 id=-server-3>🏢 Server</h5><blockquote></blockquote><ul><li>Added transaction id as part of the successful response to a <code>SubmitTx</code>. While this is technically a breaking-change, it was introduced in a backward-compatible way. Existing applications using the existing <code>SubmitTx</code> query will see no change and will keep receiving successes as <code>"SubmitSuccessful"</code> text responses. However, queries which pass transactions using the <code>submit</code> field (instead of the currently expected <code>bytes</code> field) will receive, on success, an augmented response which contains a transaction id <code>"SubmitSuccessful": { "txId": "..." }</code>. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/174>#174</a>.</li></ul><blockquote></blockquote><ul><li>Improved error reporting for the <code>SubmitTx</code> protocol which should gives a little clearer errors for ill-formed transactions.</li></ul><blockquote></blockquote><h5 id=-typescript-client-2>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>:warning: Renamed client’s <code>TxSubmission/errors.ts</code> into <code>TxSubmission/submissionErrors.ts</code>. Similarly, the submission are also now nested under a <code>submissionErrors</code> field in the <code>TxSubmission</code> top-level object.</li></ul><h4 id=removed-1>Removed</h4><p>N/A</p><hr><hr><h3 id=510---2022-01-24>[5.1.0] - 2022-01-24</h3><h4 id=added-2>Added</h4><h5 id=-server-4>🏢 Server</h5><blockquote></blockquote><ul><li>New <code>LocalTxMonitor</code> support in Ogmios. See <a href=https://ogmios.dev/mini-protocols/local-tx-monitor/>The user guide</a> for more details.</li></ul><blockquote></blockquote><p>⚠️ This new protocol is <strong>NOT</strong> enabled in <code>[email protected]*</code>. Until its inclusion in a next release, a custom build of cardano-node is required to include a more recent version of <code>ouroboros-network</code> which adds support for that protocol to the Ouroboros' mini-protocols; namely: <a href=https://github.com/input-output-hk/ouroboros-network/commit/32af9168><code>32af9168</code></a>.</p><blockquote></blockquote><p>A version of <code>[email protected]</code> patched with the necessary commits can be found at <a href=https://github.com/CardanoSolutions/cardano-node/releases/tag/1.33.0+local-tx-monitor>CardanoSolutions/[email protected]+local-tx-monitor</a>.</p><blockquote></blockquote><ul><li>New fields in the health object:<ul><li><code>connectionStatus</code> → <code>"connected"</code> or <code>"disconnected"</code>, to reflect status with the node. <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#154</a></li><li><code>currentEpoch</code> → which returns the current known epoch of the linked node <a href=https://github.com/CardanoSolutions/ogmios/issues/164>#164</a></li><li><code>slotInEpoch</code> → which returns the relative number of slots elapsed in the current epoch <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#164</a></li></ul></li></ul><blockquote></blockquote><ul><li>New <code>ogmios health-check</code> command, useful to perform simple health check on a running server. For example, to monitor a container via Docker health check mechanism:<div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-Dockerfile data-lang=Dockerfile><span style=color:#960050;background-color:#1e0010>HEALTHCHECK --interval=10s --timeout=5s --retries=1 </span><span style=color:#66d9ef>CMD</span> /bin/ogmios health-check<span style=color:#960050;background-color:#1e0010>
-
</span></code></pre></div></li><li>Bumped internal dependencies to Cardano’s <code>1.33.*</code> eco-system.</li></ul><h4 id=changed-2>Changed</h4><h5 id=-server-5>🏢 Server</h5><ul><li><code>networkSynchronization</code> and <code>currentEra</code> can be <code>null</code> when the server isn’t connected to a node. <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#154</a></li><li>The <code>Metrics</code> trace is now correctly tagged with <code>MetricsRuntimeStatsDisabled</code>.</li><li>Fixed an issue with the Docker monitoring scripts of cardano-node-ogmios, causing issues on restart. <a href=https://github.com/CardanoSolutions/ogmios/pulls/159>#159</a></li></ul><blockquote></blockquote><h5 id=-typescript-client-3>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Relax upper-bound constraint on required node.js engine. This should make it possible to install the TypeScript packages on more recent versions on node.js than the one specified on the repository.</li></ul><h4 id=removed-2>Removed</h4><p>N/A</p><hr><hr><h3 id=500---2021-12-20>[5.0.0] - 2021-12-20</h3><h4 id=added-3>Added</h4><h5 id=-server-6>🏢 Server</h5><blockquote></blockquote><ul><li><p>New state-query <code>systemStart</code> to access the blockchain start time (UTC).</p></li><li><p>New state-query <code>chainTip</code> to access the blockchain current tip (may slightly differ from the <code>ledgerTip</code> which may be behind catching up).</p></li></ul><blockquote></blockquote><ul><li>New state-query <code>blockHeight</code> to access the blockchain current highest block number (or <code>"origin"</code> if the chain is just starting).</li></ul><blockquote></blockquote><ul><li>New state-query <code>eraSummaries</code> to access all era bounds and slotting parameters details, required for proper slot arithmetic.</li></ul><blockquote></blockquote><ul><li>Log-levels can now be configured per-component. For example, one can decrease the min severity for the health component while keeping the state-query logs at another.</li></ul><blockquote></blockquote><ul><li>Logs can now be shutdown completely via the special keyword <code>off</code>.</li></ul><blockquote></blockquote><ul><li>Static binaries for Linux are now produced by the Nix build and uploaded as build artifacts for the corresponding Github workflow (i.e. Nix).</li></ul><blockquote></blockquote><h5 id=-typescript-client-4>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Add support for <code>systemStart</code>, <code>chainTip</code>, <code>blockHeight</code> & <code>eraSummaries</code> in the <code>client</code> and <code>repl</code>.</li></ul><h4 id=changed-3>Changed</h4><h5 id=-server-7>🏢 Server</h5><ul><li>⚠️ <code>RelativeTime</code> is no-longer serialised as a string (with <code>s</code> as suffix) but, as an integer representing the number of seconds.</li></ul><blockquote></blockquote><ul><li><p>⚠️ Serialised Plutus scripts are now labelled either <code>plutus:v1</code> or <code>plutus:v2</code> (instead of <code>plutus</code>).</p></li><li><p>⚠️ Some breaking changes in the SubmitTx errors returned by the server for the sake of consistency. All submission errors are now returned as singleton objects within an array. The key of each object indicates the type of error and the value gives additional details about the errors. This is also true for era-mismatch errors. Some errors used to be returned as plain strings, they are now wrapped as singleton object with <code>null</code> as a value; this is the case for:</p><ul><li><code>invalidMetadata</code></li><li><code>mirNegativeTransferNotCurrentlyAllowed</code></li><li><code>mirProducesNegativeUpdate</code></li><li><code>mirTransferNotCurrentlyAllowed</code></li><li><code>missingAtLeastOneInputUtxo</code></li><li><code>missingCollateralInputs</code></li><li><code>triesToForgeAda</code></li><li><code>validationTagMismatch</code></li><li><code>wrongCertificateType</code></li></ul></li></ul><blockquote></blockquote><ul><li>Upgraded internal dependencies to Cardano eco-system 1.31.0</li></ul><h5 id=-typescript-client-5>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>⚠️ <code>Lovelace</code> is now a native BigInt.</li></ul><blockquote></blockquote><ul><li><p>⚠️ <code>getServerHealth</code>’s <code>connection</code> argument is now wrapped into an object, mapped to the field <code>connection</code>. (see <a href=https://github.com/CardanoSolutions/ogmios/issues/135>#135</a>)</p></li><li><p>⚠️ Replaced schema definitions for <code>Hash16</code> and <code>Hash64</code> with more precise type definitions. For hashes, definitions now follows a convention <code>Digest[ALGORITHM]::PRE-IMAGE</code> where <code>ALGORITHM</code> and <code>PRE-IMAGE</code> points to the corresponding has algorithm used to hash the <code>PRE-IMAGE</code>. The length of the digest is given by <code>minLength</code> and <code>maxLength</code> JSON-schema constraints. Consequently, TypeScript types / interfaces generated from the JSON-schema definitions have been altered.</p></li></ul><h4 id=removed-3>Removed</h4><h5 id=-server-8>🏢 Server</h5><ul><li><p>⚠️ Log level severities <code>critical</code>, <code>alert</code> and <code>emergency</code> have been removed. <code>error</code> is now the highest severity.</p></li><li><p>⚠️ The Nix setup has been highly simplified, resulting in removal of the NixOS services configuration and probably some other stuff.</p></li></ul><hr><hr><h3 id=421---2021-11-16>[4.2.1] - 2021-11-16</h3><h4 id=added-4>Added</h4><blockquote></blockquote><p>N / A</p><h4 id=changed-4>Changed</h4><h5 id=-server-9>🏢 Server</h5><ul><li>Fixed configuration parsing which would wrongly use Shelley’s slots per epoch instead of Byron’s. This had an impact on the reported slot number in the chain-sync protocol, where slot numbers would be wrongly offset by <code>432000</code> per epoch after the first epoch.</li></ul><h4 id=removed-4>Removed</h4><p>N/A</p><h3 id=420---2021-11-05>[4.2.0] - 2021-11-05</h3><h4 id=added-5>Added</h4><h5 id=-server-10>🏢 Server</h5><ul><li><p>Enabled Alonzo transaction in the submission protocol (oversight from previous releases). Doing so, explicit compiler warnings have been added to the relevant code to avoid overseeing this in the next upgrade.</p></li><li><p>Added query response and requests to logs trace, large responses are truncated (e.g. querying the entire UTXO or, informations about all stake pools).</p></li></ul><blockquote></blockquote><ul><li><p>Gracefully handled shutdown and process cleanup on <code>SIGTERM</code>.</p></li><li><p>Documented Mary last point to the <em>points of interests</em> for the chain-sync protocol.</p></li></ul><blockquote></blockquote><ul><li>Bumped cardano-node’s integration to 1.31.0</li></ul><h5 id=-typescript-client-6>🚗 TypeScript Client</h5><ul><li>The State-Query client can now <code>release</code> acquired points to perform queries against the most recent tip (which was also the default when creating a client with no point).</li></ul><h4 id=changed-5>Changed</h4><h5 id=-typescript-client-7>🚗 TypeScript Client</h5><ul><li>Some internal rework and cleanup; mostly chasing dangling promises by avoiding attaching even handlers when not needed.</li></ul><h4 id=removed-5>Removed</h4><p>N/A</p><hr><hr><h3 id=410---2021-09-08>[4.1.0] - 2021-09-08</h3><h4 id=added-6>Added</h4><h5 id=-server-11>🏢 Server</h5><ul><li><p>Generate and store <a href=https://github.com/CardanoSolutions/ogmios/tree/master/server/test/vectors>test vectors</a> for various JSON requests and responses. This should ease integration for many clients who seek for good coverage of the server inputs/outputs.</p></li><li><p>Documented <a href=https://ogmios.dev/mini-protocols/local-state-query/#example-queries>example state queries</a> in the user-guide.</p></li></ul><h5 id=-typescript-client-8>🚗 TypeScript Client</h5><ul><li><p>The <code>ConnectionConfig</code> has an additional, optional, configuration parameter <code>maxPayload</code> to configure the maximum allowed message size in bytes. The default is chosen quite large as the <code>utxo</code> query can result in large payloads.</p></li><li><p>New helpers <code>isByronEpochBoundaryBlock</code> and <code>isByronStandardBlock</code>.</p></li></ul><h4 id=changed-6>Changed</h4><h5 id=-typescript-client-9>🚗 TypeScript Client</h5><ul><li>The <code>StateQueryClient</code> now wraps every query in a try/catch to cope with malformed queries leading to client <code>fault</code> results from the server.</li><li>Type definitions for <code>QueryResponse[poolIds]</code> and <code>QueryResponse[poolParameters]</code> are no longer marked as “optional”.</li><li>Fixed bug #125 where empty results of <code>delegationAndRewards</code> would cause the client to throw an exception.</li><li>Handled some floating promises.</li></ul><h4 id=removed-6>Removed</h4><p>N/A</p><hr><hr><h3 id=400---2021-09-06>[4.0.0] - 2021-09-06</h3><h4 id=added-7>Added</h4><h5 id=-server-12>🏢 Server</h5><ul><li>Integrated with the Cardano eco-system corresponding to <a href=https://github.com/input-output-hk/cardano-node/releases/tag/1.29.0>[email protected]</a> (Alonzo!) & latest testnet(s).</li></ul><blockquote></blockquote><ul><li>New <code>alonzo</code> block type, with various additions related to Alonzo.</li></ul><blockquote></blockquote><ul><li><p>New state-queries:</p><table><thead><tr><th>Query</th><th>Description</th></tr></thead><tbody><tr><td><code>poolIds</code></td><td>The list of all pool identifiers currently registered and active.</td></tr><tr><td><code>poolParameters</code></td><td>Stake pool parameters submitted with registration certificates.</td></tr><tr><td><code>poolsRanking</code></td><td>Retrieve stake pools ranking (a.k.a desirabilities).</td></tr><tr><td><code>rewardsProvenance</code></td><td>Get details about rewards calculation for the ongoing epoch.</td></tr></tbody></table></li><li><p>Added missing properties in Byron’s protocol parameters update. Somehow, an <code>additionalProperties: true</code> had slipped through and caused the tests to pass with an incomplete schema.</p></li><li><p>Nested logs are now also structured, in particular those coming from the <code>Handshake</code> or <code>TxSubmission</code> protocols. Before, any message from these layers where actually plain strings with unintelligible gibberish. Now, the submitted transaction payload is shown encoded as hexadecimals and errors are also serialized to json using the same model / codec as the one used for websockets. The handshake is also more verbose now clearly showing what version is being requested and what the node replies / select. All in all, better logs.</p></li><li><p>The Dockerfile now includes a build definition for building <code>cardano-node</code> and <code>ogmios</code> into the <strong>same image</strong>, which is the default and suggested mode of operation. To build an image with only Ogmios, use the build <code>--target ogmios</code>. Docker Hub now hosts two image repositories: <code>cardanosolutions/cardano-node-ogmios</code> and <code>cardanosolutions/ogmios</code>.</p></li><li><p>Docker Hub images are now tagged with a network suffix (e.g. <code>-mainnet</code>). In the case of mainnet, the <code>-mainnet</code> suffix is optional, and points to the same build as the defaults.</p></li><li><p>A new repository for hosting Cardano configurations of various services was created and is now used in Ogmios. Configuration for cardano-node (and therefore Ogmios) or, network genesis can be found in <a href=https://github.com/input-output-hk/cardano-configurations>input-output-hk/cardano-configurations</a>. Configurations are updated automatically by a nightly job to be always up-to-date. They can be pulled into projects as git submodules.</p></li><li><p>New possible errors from the transaction submission (stemming from the Alonzo integration):</p><ul><li><code>collateralHasNonAdaAssets</code></li><li><code>collateralIsScript</code></li><li><code>collateralTooSmall</code></li><li><code>collectErrors</code></li><li><code>datumsMismatch</code></li><li><code>executionUnitsTooLarge</code></li><li><code>extraDataMismatch</code></li><li><code>extraRedeemers</code></li><li><code>mirNegativeTransferNotCurrentlyAllowed</code></li><li><code>mirProducesNegativeUpdate</code></li><li><code>mirTransferNotCurrentlyAllowed</code></li><li><code>missingDatumHashesForInputs</code></li><li><code>missingRequiredDatums</code></li><li><code>missingRequiredRedeemers</code></li><li><code>missingRequiredSignatures</code></li><li><code>outsideForecast</code></li><li><code>poolMetadataHashTooBig</code></li><li><code>tooManyCollateralInputs</code></li><li><code>unspendableDatums</code></li><li><code>unspendableScriptInputs</code></li><li><code>validationTagMismatch</code></li></ul></li></ul><h5 id=-typescript-client-10>🚗 TypeScript Client</h5><ul><li><p>Compatibility with aforementioned server additions.</p></li><li><p>The TypeScript <code>ChainSyncClient</code> now implements an in-memory queue to ensure <code>requestNext</code> responses are processed sequentially when there are async operations in the message handlers. This behaviour can be bypassed where sequential processsing is not required, by setting the new construction option <code>sequential</code> to <code>false</code>.</p></li><li><p>The TypeScript <code>StateQueryClient</code> can now re-acquire new points at will, useful for long-running clients for which previously acquired points may expire.</p></li><li><p>The TypeScript client is now <a href=https://ogmios.dev/api/modules/_cardano_ogmios_client.html>fully documented</a>!</p></li></ul><h4 id=changed-7>Changed</h4><h5 id=-server-13>🏢 Server</h5><ul><li><p>⚠️ The <code>utxo</code> query can now accept a list <code>TxIn</code> as argument, and still supports list of <code>Address</code>. Note that lists can’t be heterogeneous and it’s not possible to mix <code>TxIn</code> and <code>Address</code>.</p></li><li><p>⚠️ Asset quantities and transaction metadata’s integers are now parsed as native <code>BigInt</code>.</p></li><li><p>The <code>memory</code> and <code>steps</code> JSON representations for <code>prices</code> are no longer coins, but ratio (represented as strings in the API).</p></li><li><p>The <code>moveInstantaneousRewards</code> certificates have a new optional field <code>value</code> and not only a <code>rewards</code> map as before. When <code>value</code> is present, it signifies that rewards are moved to the other pot.</p></li><li><p>Auxiliary data’s <code>scriptPreImages</code> in Allegra & Mary has been replaced with a field <code>scripts</code> which has one field <code>native</code>. The value of <code>native</code> corresponds to what used to be the value of <code>scriptPreImages</code>. In Alonzo, <code>scripts</code> may also have another field <code>plutus</code> with a serialized Plutus script.</p></li><li><p>Transactions witnesses' <code>address</code> has been renamed into <code>signatures</code>, and the structure of the object has been changed to be a map from public keys to signatures (instead of an object with two field <code>key</code> & <code>signature</code>).</p></li><li><p>Transactions witnesses' <code>script</code> has been renamed into <code>scripts</code>.</p></li><li><p>Transaction submission errors' <code>networkMismatch</code> now returns an <code>invalidEntities</code> list of object in the form of <code>{ "type": ..., "entity": }</code> where <code>type</code> is a text tag designating the type of entity for which there is a network identifier mismatch. Values can be <code>address</code>, <code>rewardAccount</code> and since Alonzo <code>transactionBody</code>. The <code>entity</code> field contains some details specific to the type of entity. Before, it used to be two distinct fields <code>invalidAddresses</code> and <code>invalidRewardAccounts</code>.</p></li><li><p>Empty transaction metadata are no longer materialized by an object with two null fields (<code>{ "hash": null, "body": null }</code>). Empty transaction metadata are now equal to <code>null</code>.</p></li><li><p><code>map</code> metadatum in transactions' metadata are no longer materialized as a list of list of singleton objects: <code>[[{ "k": ... }, { "v": ... }], ...]</code> but instead, as a list of object with two fields <code>k</code> and <code>v</code>: <code>[{ "k": ..., "v": ...}, ...]</code>. This was an oversight from the encoder which was never intended to end up that way but happened to slip in because the schema for metadatum was not specified / documented (and therefore, also escaped testing). This is now documented properly.</p></li><li><p>The <code>TxOut</code> (and thus Utxo) model definitions have been unified and harmonized across all eras. That is, pre-Mary eras now also wrap Ada values in an object with a field <code>"coins": ...</code>. This reduces the discrepancy between eras for there’s now a single TxOut representation valid across all eras. Some fields are however optional and only present in some eras (e.g. <code>datum</code> starting from Alonzo)</p></li></ul><h5 id=-typescript-client-11>🚗 TypeScript Client</h5><ul><li><p>⚠️ State queries (resp. the <code>StateQueryClient</code>) now automatically runs queries against the last known tip if no explicit point is provided. It used to acquire a point on the first query which would eventually become too old. The behavior is now equivalent to acquiring a new point on <strong>every</strong> query!</p></li><li><p>⚠️ <code>SubmitTx</code> no-longer returns Byron errors. Consequently, submit errors are no longer scoped under <code>errors.byron</code> or <code>errors.shelley</code> but simply <code>errors</code>.</p></li><li><p>⚠️ Fixed <code>proposedProtocolParameters</code> query. All fields are actually required AND, more importantly, it can now return either Shelley protocol parameters or, Alonzo protocol parameters.</p></li><li><p>The <code>ChainSyncClientMessageHandlers</code> methods now must return a promise.</p></li><li><p>Various reworks and renaming of the TypeScript types</p><ul><li><code>AssetQuantity</code> is now a native <code>bigint</code></li><li>Metadatum’s <code>Int</code> are now native <code>bigint</code></li><li>Type <code>DelegationsAndRewards</code> renamed into <code>DelegationsAndRewardsByAccounts</code></li><li>Type <code>DelegationsAndRewards1</code> renamed into <code>DelegationsAndRewards</code></li><li>Type <code>NonMyopicMemberRewards1</code> renamed into <code>NonMyopicMemberRewards</code></li><li>Type <code>TxTooLarge1</code> renamed into <code>TxTooLarge</code></li><li>Type <code>FeeTooSmall1</code> renamed into <code>FeeTooSmall</code></li><li>Type <code>NetworkMismatch1</code> renamed into <code>NetworkMismatch</code></li><li>Type <code>Proposal</code> renamed into <code>UpdateProposalShelley</code></li><li>Types <code>Utxo1</code>, <code>Utxo2</code>, <code>UtxoMary</code> have been unified into a single <code>Utxo</code> type. Refer to server breaking changes for details.</li><li>Type <code>Tip</code> & <code>Point</code> renamed into <code>TipOrOrigin</code> and <code>PointOrOrigin</code>. As a consequence, <code>Tip1</code> and <code>Point1</code> are now simply <code>Tip</code> and <code>Point</code>.</li><li>Many types <code>NullX</code> merged into a single <code>Null</code> type</li><li>Query types have been renamed from <code>ledgerTip1</code> to <code>GetLedgerTip</code> and so forth for all queries.</li></ul></li></ul><h4 id=removed-7>Removed</h4><h5 id=-server-14>🏢 Server</h5><ul><li><p><code>datumsMismatch</code>, a previously introduced error from the transaction submission has been removed / replaced.</p></li><li><p><code>SubmitTx</code> can no longer return <code>SubmitTxError[Byron]</code>. All the child error types have been removed accordingly, namely:</p><ul><li><code>UtxoValidationError</code></li><li><code>TxValidationError</code></li><li><code>LovelaceError</code></li></ul></li></ul><h5 id=-typescript-client-12>🚗 TypeScript Client</h5><ul><li><p><code>ChainSyncClient</code> no longer exposes a requestNext function. Instead you must invoke the callback provided as the second argument in each of rollBackward and rollForward handlers.</p></li><li><p><code>ChainSyncClient</code> no longer exposes JSON-WSP reflection as there would be unexpected results given the first n messages would all share the same reflected value.</p></li></ul><hr><hr><h3 id=320---2021-05-09>[3.2.0] - 2021-05-09</h3><h4 id=added-8>Added</h4><ul><li>New TypeScript client! The client comes in three packages:<ul><li>An interactive REPL to play with Ogmios using the command-line.</li><li>A generator to derive TypeScript type definitions from the JSON schema.</li><li>The actual client library providing nice wrapper around the various protocol, in a typed way.
+
active"><a href=/changelog/><b>6. </b>Changelog</a></li><li data-nav-id=/faq/ title=F.A.Q class=dd-item><a href=/faq/><b>7. </b>F.A.Q</a></li></ul><section id=shortcuts><h3>More</h3><ul><li><a class=padding href=https://github.com/cardanosolutions/ogmios><i class="fab fa-github"></i>Source code</a></li><li><a class=padding href=https://github.com/cardanosolutions/ogmios/issues><i class="fab fa-solid fa-bullseye"></i>Issues Tracking</a></li><li><a class=padding href=https://discord.gg/ZeyDn65t5v><i class="fab fa-discord"></i>Discord (#ogmios)</a></li><li><a class=padding href=https://github.com/CardanoSolutions/ogmios/tree/master/architectural-decisions/accepted><i class="fab fa-solid fa-file-code"></i>Architectural Decisions Record</a></li></ul></section><section id=footer><style>i.fa-solid{margin-left:-2px!important;margin-right:-2px!important}</style></section></div></nav><section id=body><div id=overlay></div><div class="padding highlightable"><div><div id=top-bar><div id=breadcrumbs itemscope itemtype=http://data-vocabulary.org/Breadcrumb><span id=sidebar-toggle-span><a href=# id=sidebar-toggle data-sidebar-toggle><i class="fas fa-bars"></i></a></span><span id=toc-menu><i class="fas fa-list-alt"></i></span><span class=links><a href=/>Overview</a> > Changelog</span></div><div class=progress><div class=wrapper><nav id=TableOfContents><ul><li><ul><li><a href=#540---unreleased>[5.4.0] - UNRELEASED</a></li><li><a href=#530---2022-05-07>[5.3.0] - 2022-05-07</a></li><li><a href=#520---2022-02-15>[5.2.0] - 2022-02-15</a></li><li><a href=#510---2022-01-24>[5.1.0] - 2022-01-24</a></li><li><a href=#500---2021-12-20>[5.0.0] - 2021-12-20</a></li><li><a href=#421---2021-11-16>[4.2.1] - 2021-11-16</a></li><li><a href=#420---2021-11-05>[4.2.0] - 2021-11-05</a></li><li><a href=#410---2021-09-08>[4.1.0] - 2021-09-08</a></li><li><a href=#400---2021-09-06>[4.0.0] - 2021-09-06</a></li><li><a href=#320---2021-05-09>[3.2.0] - 2021-05-09</a></li><li><a href=#310---2021-04-04>[3.1.0] - 2021-04-04</a></li><li><a href=#300----2021-02-26>[3.0.0] – 2021-02-26</a></li><li><a href=#200-beta----2020-10-31>[2.0.0-beta] – 2020-10-31</a></li><li><a href=#100-beta----2020-04-04>[1.0.0-beta] – 2020-04-04</a></li></ul></li></ul></nav></div></div></div></div><div id=head-tags></div><div id=body-inner><h1>Changelog</h1><h3 id=540---unreleased>[5.4.0] - UNRELEASED</h3><h4 id=added>Added</h4><h5 id=-typescript-client>🚗 TypeScript Client</h5><ul><li>TypeScript client for the ‘TxMonitor’ mini-protocol. Documentation available at <a href=https://ogmios.dev/typescript-client/tx-monitor/>https://ogmios.dev/typescript-client/tx-monitor/</a>.</li></ul><h3 id=530---2022-05-07>[5.3.0] - 2022-05-07</h3><h4 id=added-1>Added</h4><h5 id=-server>🏢 Server</h5><ul><li><p>In the Local-Tx-Monitor protocol, <code>NextTx</code> can now take an (optional) extra argument <code>{ "fields": "all" }</code> to instrument the server in returning not only a transaction id in <code>NextTxResponse</code>, but a full transaction object. See <a href=https://github.com/CardanoSolutions/ogmios/issues/190>#190</a>.</p></li><li><p>Transaction JSON objects from all eras now contains an extra field <code>raw</code>, 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 <code>ogmios.v1:compact</code> mode. See <a href=https://github.com/CardanoSolutions/ogmios/issues/190>#190</a>.</p></li><li><p>Transaction JSON objects from the <strong>Alonzo</strong> era now contains an extra field <code>inputSource</code> which a string set to either <code>inputs</code> or <code>collaterals</code>. This captures the fact that since the introduction of Plutus scripts in Alonzo, some transactions may be recorded as <em>failed</em> 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.</p></li></ul><h4 id=changed>Changed</h4><h5 id=-server-1>🏢 Server</h5><ul><li><p>The complete API reference for the server is available in a new form at: <a href=https://ogmios.dev/api/>https://ogmios.dev/api/</a>. 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: <a href=https://ogmios.dev/typescript/api/>https://ogmios.dev/typescript/api/</a>.</p></li><li><p>Upgrade internal dependencies to <code>[email protected]</code></p></li><li><p>Fixed the supervisor script for the <code>cardano-node-ogmios</code> Docker image, which would wrongly ignore signals sent from the Docker daemon (e.g. <code>docker container stop ...</code>). See <a href=https://github.com/CardanoSolutions/ogmios/issues/168>#168</a></p></li></ul><h5 id=-typescript-client-1>🚗 TypeScript Client</h5><ul><li><p>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 <code>maxNumberOfListeners</code> set by node.js on event emitters). See <a href=https://github.com/CardanoSolutions/ogmios/issues/197>#197</a>.</p></li><li><p>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 <a href=https://github.com/CardanoSolutions/ogmios/issues/194>#194</a>.</p></li><li><p>⚠️ Some schema type interface renaming:</p><ul><li><code>Tx</code> → <code>TxByron</code></li><li><code>BlockBodyShelley</code> → <code>TxShelley</code></li><li><code>BlockBodyAllegra</code> → <code>TxAllegra</code></li><li><code>BlockBodyMary</code> → <code>TxMary</code></li><li><code>BlockBodyAlonzo</code> → <code>TxAlonzo</code></li></ul></li></ul><h4 id=removed>Removed</h4><p>N/A</p><hr><hr><h3 id=520---2022-02-15>[5.2.0] - 2022-02-15</h3><h4 id=added-2>Added</h4><h5 id=-server-2>🏢 Server</h5><blockquote></blockquote><ul><li>Extended the local-tx-submission protocol with a <a href=https://ogmios.dev/mini-protocols/local-tx-submission/#evaluatetx>new <code>EvaluateTx</code> query</a> 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 <code>SubmitTx</code>. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/172>#172</a>.</li></ul><blockquote></blockquote><ul><li>New <code>rewardsProvenance'</code> query coming as a replacement for the now-deprecated <code>rewardsProvenance</code> query. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/171>#171</a>.</li></ul><blockquote></blockquote><h5 id=-typescript-client-2>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Support for the new <code>evaluateTx</code> query in the <code>TxSubmissionClient</code> & repl.</li><li>Support for the new <code>rewardsProvenance'</code> query as <code>rewardsProvenanceNew</code> in the <code>StateQueryClient</code> & repl.</li></ul><h4 id=changed-1>Changed</h4><h5 id=-server-3>🏢 Server</h5><blockquote></blockquote><ul><li>Added transaction id as part of the successful response to a <code>SubmitTx</code>. While this is technically a breaking-change, it was introduced in a backward-compatible way. Existing applications using the existing <code>SubmitTx</code> query will see no change and will keep receiving successes as <code>"SubmitSuccessful"</code> text responses. However, queries which pass transactions using the <code>submit</code> field (instead of the currently expected <code>bytes</code> field) will receive, on success, an augmented response which contains a transaction id <code>"SubmitSuccessful": { "txId": "..." }</code>. See discussion on <a href=https://github.com/CardanoSolutions/ogmios/issues/174>#174</a>.</li></ul><blockquote></blockquote><ul><li>Improved error reporting for the <code>SubmitTx</code> protocol which should gives a little clearer errors for ill-formed transactions.</li></ul><blockquote></blockquote><h5 id=-typescript-client-3>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>:warning: Renamed client’s <code>TxSubmission/errors.ts</code> into <code>TxSubmission/submissionErrors.ts</code>. Similarly, the submission are also now nested under a <code>submissionErrors</code> field in the <code>TxSubmission</code> top-level object.</li></ul><h4 id=removed-1>Removed</h4><p>N/A</p><hr><hr><h3 id=510---2022-01-24>[5.1.0] - 2022-01-24</h3><h4 id=added-3>Added</h4><h5 id=-server-4>🏢 Server</h5><blockquote></blockquote><ul><li>New <code>LocalTxMonitor</code> support in Ogmios. See <a href=https://ogmios.dev/mini-protocols/local-tx-monitor/>The user guide</a> for more details.</li></ul><blockquote></blockquote><p>⚠️ This new protocol is <strong>NOT</strong> enabled in <code>[email protected]*</code>. Until its inclusion in a next release, a custom build of cardano-node is required to include a more recent version of <code>ouroboros-network</code> which adds support for that protocol to the Ouroboros' mini-protocols; namely: <a href=https://github.com/input-output-hk/ouroboros-network/commit/32af9168><code>32af9168</code></a>.</p><blockquote></blockquote><p>A version of <code>[email protected]</code> patched with the necessary commits can be found at <a href=https://github.com/CardanoSolutions/cardano-node/releases/tag/1.33.0+local-tx-monitor>CardanoSolutions/[email protected]+local-tx-monitor</a>.</p><blockquote></blockquote><ul><li>New fields in the health object:<ul><li><code>connectionStatus</code> → <code>"connected"</code> or <code>"disconnected"</code>, to reflect status with the node. <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#154</a></li><li><code>currentEpoch</code> → which returns the current known epoch of the linked node <a href=https://github.com/CardanoSolutions/ogmios/issues/164>#164</a></li><li><code>slotInEpoch</code> → which returns the relative number of slots elapsed in the current epoch <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#164</a></li></ul></li></ul><blockquote></blockquote><ul><li>New <code>ogmios health-check</code> command, useful to perform simple health check on a running server. For example, to monitor a container via Docker health check mechanism:<div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-Dockerfile data-lang=Dockerfile><span style=color:#960050;background-color:#1e0010>HEALTHCHECK --interval=10s --timeout=5s --retries=1 </span><span style=color:#66d9ef>CMD</span> /bin/ogmios health-check<span style=color:#960050;background-color:#1e0010>
+
</span></code></pre></div></li><li>Bumped internal dependencies to Cardano’s <code>1.33.*</code> eco-system.</li></ul><h4 id=changed-2>Changed</h4><h5 id=-server-5>🏢 Server</h5><ul><li><code>networkSynchronization</code> and <code>currentEra</code> can be <code>null</code> when the server isn’t connected to a node. <a href=https://github.com/CardanoSolutions/ogmios/issues/154>#154</a></li><li>The <code>Metrics</code> trace is now correctly tagged with <code>MetricsRuntimeStatsDisabled</code>.</li><li>Fixed an issue with the Docker monitoring scripts of cardano-node-ogmios, causing issues on restart. <a href=https://github.com/CardanoSolutions/ogmios/pulls/159>#159</a></li></ul><blockquote></blockquote><h5 id=-typescript-client-4>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Relax upper-bound constraint on required node.js engine. This should make it possible to install the TypeScript packages on more recent versions on node.js than the one specified on the repository.</li></ul><h4 id=removed-2>Removed</h4><p>N/A</p><hr><hr><h3 id=500---2021-12-20>[5.0.0] - 2021-12-20</h3><h4 id=added-4>Added</h4><h5 id=-server-6>🏢 Server</h5><blockquote></blockquote><ul><li><p>New state-query <code>systemStart</code> to access the blockchain start time (UTC).</p></li><li><p>New state-query <code>chainTip</code> to access the blockchain current tip (may slightly differ from the <code>ledgerTip</code> which may be behind catching up).</p></li></ul><blockquote></blockquote><ul><li>New state-query <code>blockHeight</code> to access the blockchain current highest block number (or <code>"origin"</code> if the chain is just starting).</li></ul><blockquote></blockquote><ul><li>New state-query <code>eraSummaries</code> to access all era bounds and slotting parameters details, required for proper slot arithmetic.</li></ul><blockquote></blockquote><ul><li>Log-levels can now be configured per-component. For example, one can decrease the min severity for the health component while keeping the state-query logs at another.</li></ul><blockquote></blockquote><ul><li>Logs can now be shutdown completely via the special keyword <code>off</code>.</li></ul><blockquote></blockquote><ul><li>Static binaries for Linux are now produced by the Nix build and uploaded as build artifacts for the corresponding Github workflow (i.e. Nix).</li></ul><blockquote></blockquote><h5 id=-typescript-client-5>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>Add support for <code>systemStart</code>, <code>chainTip</code>, <code>blockHeight</code> & <code>eraSummaries</code> in the <code>client</code> and <code>repl</code>.</li></ul><h4 id=changed-3>Changed</h4><h5 id=-server-7>🏢 Server</h5><ul><li>⚠️ <code>RelativeTime</code> is no-longer serialised as a string (with <code>s</code> as suffix) but, as an integer representing the number of seconds.</li></ul><blockquote></blockquote><ul><li><p>⚠️ Serialised Plutus scripts are now labelled either <code>plutus:v1</code> or <code>plutus:v2</code> (instead of <code>plutus</code>).</p></li><li><p>⚠️ Some breaking changes in the SubmitTx errors returned by the server for the sake of consistency. All submission errors are now returned as singleton objects within an array. The key of each object indicates the type of error and the value gives additional details about the errors. This is also true for era-mismatch errors. Some errors used to be returned as plain strings, they are now wrapped as singleton object with <code>null</code> as a value; this is the case for:</p><ul><li><code>invalidMetadata</code></li><li><code>mirNegativeTransferNotCurrentlyAllowed</code></li><li><code>mirProducesNegativeUpdate</code></li><li><code>mirTransferNotCurrentlyAllowed</code></li><li><code>missingAtLeastOneInputUtxo</code></li><li><code>missingCollateralInputs</code></li><li><code>triesToForgeAda</code></li><li><code>validationTagMismatch</code></li><li><code>wrongCertificateType</code></li></ul></li></ul><blockquote></blockquote><ul><li>Upgraded internal dependencies to Cardano eco-system 1.31.0</li></ul><h5 id=-typescript-client-6>🚗 TypeScript Client</h5><blockquote></blockquote><ul><li>⚠️ <code>Lovelace</code> is now a native BigInt.</li></ul><blockquote></blockquote><ul><li><p>⚠️ <code>getServerHealth</code>’s <code>connection</code> argument is now wrapped into an object, mapped to the field <code>connection</code>. (see <a href=https://github.com/CardanoSolutions/ogmios/issues/135>#135</a>)</p></li><li><p>⚠️ Replaced schema definitions for <code>Hash16</code> and <code>Hash64</code> with more precise type definitions. For hashes, definitions now follows a convention <code>Digest[ALGORITHM]::PRE-IMAGE</code> where <code>ALGORITHM</code> and <code>PRE-IMAGE</code> points to the corresponding has algorithm used to hash the <code>PRE-IMAGE</code>. The length of the digest is given by <code>minLength</code> and <code>maxLength</code> JSON-schema constraints. Consequently, TypeScript types / interfaces generated from the JSON-schema definitions have been altered.</p></li></ul><h4 id=removed-3>Removed</h4><h5 id=-server-8>🏢 Server</h5><ul><li><p>⚠️ Log level severities <code>critical</code>, <code>alert</code> and <code>emergency</code> have been removed. <code>error</code> is now the highest severity.</p></li><li><p>⚠️ The Nix setup has been highly simplified, resulting in removal of the NixOS services configuration and probably some other stuff.</p></li></ul><hr><hr><h3 id=421---2021-11-16>[4.2.1] - 2021-11-16</h3><h4 id=added-5>Added</h4><blockquote></blockquote><p>N / A</p><h4 id=changed-4>Changed</h4><h5 id=-server-9>🏢 Server</h5><ul><li>Fixed configuration parsing which would wrongly use Shelley’s slots per epoch instead of Byron’s. This had an impact on the reported slot number in the chain-sync protocol, where slot numbers would be wrongly offset by <code>432000</code> per epoch after the first epoch.</li></ul><h4 id=removed-4>Removed</h4><p>N/A</p><h3 id=420---2021-11-05>[4.2.0] - 2021-11-05</h3><h4 id=added-6>Added</h4><h5 id=-server-10>🏢 Server</h5><ul><li><p>Enabled Alonzo transaction in the submission protocol (oversight from previous releases). Doing so, explicit compiler warnings have been added to the relevant code to avoid overseeing this in the next upgrade.</p></li><li><p>Added query response and requests to logs trace, large responses are truncated (e.g. querying the entire UTXO or, informations about all stake pools).</p></li></ul><blockquote></blockquote><ul><li><p>Gracefully handled shutdown and process cleanup on <code>SIGTERM</code>.</p></li><li><p>Documented Mary last point to the <em>points of interests</em> for the chain-sync protocol.</p></li></ul><blockquote></blockquote><ul><li>Bumped cardano-node’s integration to 1.31.0</li></ul><h5 id=-typescript-client-7>🚗 TypeScript Client</h5><ul><li>The State-Query client can now <code>release</code> acquired points to perform queries against the most recent tip (which was also the default when creating a client with no point).</li></ul><h4 id=changed-5>Changed</h4><h5 id=-typescript-client-8>🚗 TypeScript Client</h5><ul><li>Some internal rework and cleanup; mostly chasing dangling promises by avoiding attaching even handlers when not needed.</li></ul><h4 id=removed-5>Removed</h4><p>N/A</p><hr><hr><h3 id=410---2021-09-08>[4.1.0] - 2021-09-08</h3><h4 id=added-7>Added</h4><h5 id=-server-11>🏢 Server</h5><ul><li><p>Generate and store <a href=https://github.com/CardanoSolutions/ogmios/tree/master/server/test/vectors>test vectors</a> for various JSON requests and responses. This should ease integration for many clients who seek for good coverage of the server inputs/outputs.</p></li><li><p>Documented <a href=https://ogmios.dev/mini-protocols/local-state-query/#example-queries>example state queries</a> in the user-guide.</p></li></ul><h5 id=-typescript-client-9>🚗 TypeScript Client</h5><ul><li><p>The <code>ConnectionConfig</code> has an additional, optional, configuration parameter <code>maxPayload</code> to configure the maximum allowed message size in bytes. The default is chosen quite large as the <code>utxo</code> query can result in large payloads.</p></li><li><p>New helpers <code>isByronEpochBoundaryBlock</code> and <code>isByronStandardBlock</code>.</p></li></ul><h4 id=changed-6>Changed</h4><h5 id=-typescript-client-10>🚗 TypeScript Client</h5><ul><li>The <code>StateQueryClient</code> now wraps every query in a try/catch to cope with malformed queries leading to client <code>fault</code> results from the server.</li><li>Type definitions for <code>QueryResponse[poolIds]</code> and <code>QueryResponse[poolParameters]</code> are no longer marked as “optional”.</li><li>Fixed bug #125 where empty results of <code>delegationAndRewards</code> would cause the client to throw an exception.</li><li>Handled some floating promises.</li></ul><h4 id=removed-6>Removed</h4><p>N/A</p><hr><hr><h3 id=400---2021-09-06>[4.0.0] - 2021-09-06</h3><h4 id=added-8>Added</h4><h5 id=-server-12>🏢 Server</h5><ul><li>Integrated with the Cardano eco-system corresponding to <a href=https://github.com/input-output-hk/cardano-node/releases/tag/1.29.0>[email protected]</a> (Alonzo!) & latest testnet(s).</li></ul><blockquote></blockquote><ul><li>New <code>alonzo</code> block type, with various additions related to Alonzo.</li></ul><blockquote></blockquote><ul><li><p>New state-queries:</p><table><thead><tr><th>Query</th><th>Description</th></tr></thead><tbody><tr><td><code>poolIds</code></td><td>The list of all pool identifiers currently registered and active.</td></tr><tr><td><code>poolParameters</code></td><td>Stake pool parameters submitted with registration certificates.</td></tr><tr><td><code>poolsRanking</code></td><td>Retrieve stake pools ranking (a.k.a desirabilities).</td></tr><tr><td><code>rewardsProvenance</code></td><td>Get details about rewards calculation for the ongoing epoch.</td></tr></tbody></table></li><li><p>Added missing properties in Byron’s protocol parameters update. Somehow, an <code>additionalProperties: true</code> had slipped through and caused the tests to pass with an incomplete schema.</p></li><li><p>Nested logs are now also structured, in particular those coming from the <code>Handshake</code> or <code>TxSubmission</code> protocols. Before, any message from these layers where actually plain strings with unintelligible gibberish. Now, the submitted transaction payload is shown encoded as hexadecimals and errors are also serialized to json using the same model / codec as the one used for websockets. The handshake is also more verbose now clearly showing what version is being requested and what the node replies / select. All in all, better logs.</p></li><li><p>The Dockerfile now includes a build definition for building <code>cardano-node</code> and <code>ogmios</code> into the <strong>same image</strong>, which is the default and suggested mode of operation. To build an image with only Ogmios, use the build <code>--target ogmios</code>. Docker Hub now hosts two image repositories: <code>cardanosolutions/cardano-node-ogmios</code> and <code>cardanosolutions/ogmios</code>.</p></li><li><p>Docker Hub images are now tagged with a network suffix (e.g. <code>-mainnet</code>). In the case of mainnet, the <code>-mainnet</code> suffix is optional, and points to the same build as the defaults.</p></li><li><p>A new repository for hosting Cardano configurations of various services was created and is now used in Ogmios. Configuration for cardano-node (and therefore Ogmios) or, network genesis can be found in <a href=https://github.com/input-output-hk/cardano-configurations>input-output-hk/cardano-configurations</a>. Configurations are updated automatically by a nightly job to be always up-to-date. They can be pulled into projects as git submodules.</p></li><li><p>New possible errors from the transaction submission (stemming from the Alonzo integration):</p><ul><li><code>collateralHasNonAdaAssets</code></li><li><code>collateralIsScript</code></li><li><code>collateralTooSmall</code></li><li><code>collectErrors</code></li><li><code>datumsMismatch</code></li><li><code>executionUnitsTooLarge</code></li><li><code>extraDataMismatch</code></li><li><code>extraRedeemers</code></li><li><code>mirNegativeTransferNotCurrentlyAllowed</code></li><li><code>mirProducesNegativeUpdate</code></li><li><code>mirTransferNotCurrentlyAllowed</code></li><li><code>missingDatumHashesForInputs</code></li><li><code>missingRequiredDatums</code></li><li><code>missingRequiredRedeemers</code></li><li><code>missingRequiredSignatures</code></li><li><code>outsideForecast</code></li><li><code>poolMetadataHashTooBig</code></li><li><code>tooManyCollateralInputs</code></li><li><code>unspendableDatums</code></li><li><code>unspendableScriptInputs</code></li><li><code>validationTagMismatch</code></li></ul></li></ul><h5 id=-typescript-client-11>🚗 TypeScript Client</h5><ul><li><p>Compatibility with aforementioned server additions.</p></li><li><p>The TypeScript <code>ChainSyncClient</code> now implements an in-memory queue to ensure <code>requestNext</code> responses are processed sequentially when there are async operations in the message handlers. This behaviour can be bypassed where sequential processsing is not required, by setting the new construction option <code>sequential</code> to <code>false</code>.</p></li><li><p>The TypeScript <code>StateQueryClient</code> can now re-acquire new points at will, useful for long-running clients for which previously acquired points may expire.</p></li><li><p>The TypeScript client is now <a href=https://ogmios.dev/api/modules/_cardano_ogmios_client.html>fully documented</a>!</p></li></ul><h4 id=changed-7>Changed</h4><h5 id=-server-13>🏢 Server</h5><ul><li><p>⚠️ The <code>utxo</code> query can now accept a list <code>TxIn</code> as argument, and still supports list of <code>Address</code>. Note that lists can’t be heterogeneous and it’s not possible to mix <code>TxIn</code> and <code>Address</code>.</p></li><li><p>⚠️ Asset quantities and transaction metadata’s integers are now parsed as native <code>BigInt</code>.</p></li><li><p>The <code>memory</code> and <code>steps</code> JSON representations for <code>prices</code> are no longer coins, but ratio (represented as strings in the API).</p></li><li><p>The <code>moveInstantaneousRewards</code> certificates have a new optional field <code>value</code> and not only a <code>rewards</code> map as before. When <code>value</code> is present, it signifies that rewards are moved to the other pot.</p></li><li><p>Auxiliary data’s <code>scriptPreImages</code> in Allegra & Mary has been replaced with a field <code>scripts</code> which has one field <code>native</code>. The value of <code>native</code> corresponds to what used to be the value of <code>scriptPreImages</code>. In Alonzo, <code>scripts</code> may also have another field <code>plutus</code> with a serialized Plutus script.</p></li><li><p>Transactions witnesses' <code>address</code> has been renamed into <code>signatures</code>, and the structure of the object has been changed to be a map from public keys to signatures (instead of an object with two field <code>key</code> & <code>signature</code>).</p></li><li><p>Transactions witnesses' <code>script</code> has been renamed into <code>scripts</code>.</p></li><li><p>Transaction submission errors' <code>networkMismatch</code> now returns an <code>invalidEntities</code> list of object in the form of <code>{ "type": ..., "entity": }</code> where <code>type</code> is a text tag designating the type of entity for which there is a network identifier mismatch. Values can be <code>address</code>, <code>rewardAccount</code> and since Alonzo <code>transactionBody</code>. The <code>entity</code> field contains some details specific to the type of entity. Before, it used to be two distinct fields <code>invalidAddresses</code> and <code>invalidRewardAccounts</code>.</p></li><li><p>Empty transaction metadata are no longer materialized by an object with two null fields (<code>{ "hash": null, "body": null }</code>). Empty transaction metadata are now equal to <code>null</code>.</p></li><li><p><code>map</code> metadatum in transactions' metadata are no longer materialized as a list of list of singleton objects: <code>[[{ "k": ... }, { "v": ... }], ...]</code> but instead, as a list of object with two fields <code>k</code> and <code>v</code>: <code>[{ "k": ..., "v": ...}, ...]</code>. This was an oversight from the encoder which was never intended to end up that way but happened to slip in because the schema for metadatum was not specified / documented (and therefore, also escaped testing). This is now documented properly.</p></li><li><p>The <code>TxOut</code> (and thus Utxo) model definitions have been unified and harmonized across all eras. That is, pre-Mary eras now also wrap Ada values in an object with a field <code>"coins": ...</code>. This reduces the discrepancy between eras for there’s now a single TxOut representation valid across all eras. Some fields are however optional and only present in some eras (e.g. <code>datum</code> starting from Alonzo)</p></li></ul><h5 id=-typescript-client-12>🚗 TypeScript Client</h5><ul><li><p>⚠️ State queries (resp. the <code>StateQueryClient</code>) now automatically runs queries against the last known tip if no explicit point is provided. It used to acquire a point on the first query which would eventually become too old. The behavior is now equivalent to acquiring a new point on <strong>every</strong> query!</p></li><li><p>⚠️ <code>SubmitTx</code> no-longer returns Byron errors. Consequently, submit errors are no longer scoped under <code>errors.byron</code> or <code>errors.shelley</code> but simply <code>errors</code>.</p></li><li><p>⚠️ Fixed <code>proposedProtocolParameters</code> query. All fields are actually required AND, more importantly, it can now return either Shelley protocol parameters or, Alonzo protocol parameters.</p></li><li><p>The <code>ChainSyncClientMessageHandlers</code> methods now must return a promise.</p></li><li><p>Various reworks and renaming of the TypeScript types</p><ul><li><code>AssetQuantity</code> is now a native <code>bigint</code></li><li>Metadatum’s <code>Int</code> are now native <code>bigint</code></li><li>Type <code>DelegationsAndRewards</code> renamed into <code>DelegationsAndRewardsByAccounts</code></li><li>Type <code>DelegationsAndRewards1</code> renamed into <code>DelegationsAndRewards</code></li><li>Type <code>NonMyopicMemberRewards1</code> renamed into <code>NonMyopicMemberRewards</code></li><li>Type <code>TxTooLarge1</code> renamed into <code>TxTooLarge</code></li><li>Type <code>FeeTooSmall1</code> renamed into <code>FeeTooSmall</code></li><li>Type <code>NetworkMismatch1</code> renamed into <code>NetworkMismatch</code></li><li>Type <code>Proposal</code> renamed into <code>UpdateProposalShelley</code></li><li>Types <code>Utxo1</code>, <code>Utxo2</code>, <code>UtxoMary</code> have been unified into a single <code>Utxo</code> type. Refer to server breaking changes for details.</li><li>Type <code>Tip</code> & <code>Point</code> renamed into <code>TipOrOrigin</code> and <code>PointOrOrigin</code>. As a consequence, <code>Tip1</code> and <code>Point1</code> are now simply <code>Tip</code> and <code>Point</code>.</li><li>Many types <code>NullX</code> merged into a single <code>Null</code> type</li><li>Query types have been renamed from <code>ledgerTip1</code> to <code>GetLedgerTip</code> and so forth for all queries.</li></ul></li></ul><h4 id=removed-7>Removed</h4><h5 id=-server-14>🏢 Server</h5><ul><li><p><code>datumsMismatch</code>, a previously introduced error from the transaction submission has been removed / replaced.</p></li><li><p><code>SubmitTx</code> can no longer return <code>SubmitTxError[Byron]</code>. All the child error types have been removed accordingly, namely:</p><ul><li><code>UtxoValidationError</code></li><li><code>TxValidationError</code></li><li><code>LovelaceError</code></li></ul></li></ul><h5 id=-typescript-client-13>🚗 TypeScript Client</h5><ul><li><p><code>ChainSyncClient</code> no longer exposes a requestNext function. Instead you must invoke the callback provided as the second argument in each of rollBackward and rollForward handlers.</p></li><li><p><code>ChainSyncClient</code> no longer exposes JSON-WSP reflection as there would be unexpected results given the first n messages would all share the same reflected value.</p></li></ul><hr><hr><h3 id=320---2021-05-09>[3.2.0] - 2021-05-09</h3><h4 id=added-9>Added</h4><ul><li>New TypeScript client! The client comes in three packages:<ul><li>An interactive REPL to play with Ogmios using the command-line.</li><li>A generator to derive TypeScript type definitions from the JSON schema.</li><li>The actual client library providing nice wrapper around the various protocol, in a typed way.
The TypeScript client also includes a new battery of automated integration tests against the testnet.</li></ul></li><li>Support for WebSocket sub-protocols, with currently one support sub-protocol: <code>ogmios.compact.v1</code>. When enabled,
Ogmios will omit fields such as witnesses, proofs and signatures from responses to make responses smaller.</li><li>Provide missing documentation / JSON-schema for:<ul><li>JSON-WSP faults</li><li>Allegra & Mary <code>SubmitTx</code> failures:<ul><li><p>Allegra:</p><ul><li><code>expiredUtxo</code> is replaced by <code>outsideOfValidityInterval</code></li><li>new error <code>triesToForgeAda</code></li></ul><p>Mary:</p><ul><li><code>valueNotConserved.consumed</code> is now a <code>Value</code> (instead of a <code>DeltaCoin</code>)</li><li><code>valueNotConserved.produced</code> is now a <code>Value</code> (instead of a <code>DeltaCoin</code>)</li><li><code>outputTooSmall</code> items are now of type <code>TxOut[Mary]</code></li><li>new error <code>tooManyAssetsInOutput</code></li></ul></li></ul></li></ul></li><li>Continuous integration job checking for code style and lint on the server source code.</li><li>The <code>/health</code> endpoint now returns two additional pieces of information:<ul><li>A <code>networkSynchronization</code> percentage to indicate how far Ogmios / the node is from the network.</li><li>A <code>currentEra</code> value to indicate the corresponding Cardano era Ogmios / the node is currently running in.</li></ul></li><li>Nix support for building Ogmios (this also include a <code>cabal.project</code> to enable cabal support as well).</li></ul><h4 id=changed-8>Changed</h4><ul><li>Rework Docker setup to not require an external snapshot image. Everything is now built in a single
<code>Dockerfile</code>, but cache from DockerHub can be leveraged to reduce overall build time when building
from scratch.</li><li>Fixed typo in the JSON-schema w.r.t to the ‘Acquire’ request (<code>points</code> → <code>point</code>), and introduce more automated test
-
to catch this kind of errors more easily.</li></ul><h4 id=removed-8>Removed</h4><p>ø</p><hr><hr><h3 id=310---2021-04-04>[3.1.0] - 2021-04-04</h3><h4 id=added-9>Added</h4><ul><li>Extend the local-state query protocol with support for ‘GetCompactGenesis’.</li><li>Extend the local-state query protocol with support for ‘GetFilteredDelegationsAndRewards’.</li><li>Add missing <code>mint</code> field to transaction’s body (added since mary).</li><li>The documentation is now hosted on <a href=https://ogmios.dev>https://ogmios.dev</a>.</li></ul><h4 id=changed-9>Changed</h4><ul><li>Use ‘contentEncoding’ over ‘format’ in appropriate part of the JSON schema.</li><li>Fix various errors in the JSON-schema definition & extend test suite coverage in consequence.</li><li>Implement a ‘fast-bech32’ encoding library, to speed-up Ogmios serialization of blocks beyond the Shelley era.</li><li>Use faster (and recommended) JSON encoding techniques to speed up overall JSON serialization.</li><li>Improve generated documentation from JSON schema by:<ul><li>Providing titles to ‘oneOf’ items</li><li>Adding descriptions to top-level definitions</li><li>Adding examples to top-level definitions</li></ul></li><li>Customized API reference’s stylesheet to enhance readability.</li><li>Upgrade dependency and code to work with GHC-8.10.4 (from GHC 8.6.5)</li><li>Handle more gracefully unknown exceptions (avoid infinite fast loop of retries on errors).</li><li>Handle more gracefully network mismatches (e.g. connecting Ogmios in testnet mode to a mainnet network)</li><li>Repository reorganization:<ul><li>‘ogmios-server’ renamed into ‘server’</li><li>move Haskell-specific dotfiles and configuration files under ‘server’</li><li>move ‘modules’ under ‘server’</li><li>move ‘Dockerfile’ and ‘snapshot.Dockerfile’ under ‘server’</li></ul></li></ul><h4 id=removed-9>Removed</h4><ul><li>Support for GHC-8.6.5</li><li>The docker image no longer shows git revision / version on ‘–version’</li></ul><hr><hr><h3 id=300----2021-02-26>[3.0.0] – 2021-02-26</h3><h4 id=added-10>Added</h4><ul><li>Support for the Allegra era on the chain-sync, tx submission and state query protocols.</li><li>Support for the Mary era on the chain-sync, tx submission and state query protocols.</li><li>Support for multi-era state queries, or said differently, Ogmios can survive a hard-fork without being restarted or re-compiled.</li><li>Allow clients to also make state queries based on the node’s tip (instead of passing an explicit point to acquire).</li><li>Interactive dashboard leveraging Ogmios health’s endpoint and local state query protocol to show metrics in real-time.</li><li>Automated smoke sanity tests executed on a running instance, running queries and chain-syncs across all eras.</li><li>Various internal optimization, in particular with rewards to the chain-sync protocol (~14.000 blocks/s in Byron, ~2500 block/s in Shelley and beyond).</li><li>Additional metrics for monitoring: current heap size, total messages, total unrouted messages and start time.</li><li>Configurable HTTP server timeout from the command-line, with sensible defaults.</li></ul><h4 id=changed-10>Changed</h4><ul><li>Improve error responses to invalid clients' requests (instead of generic error messages).</li><li>Fixed various typos and clumsy wording in the user manual.</li><li>Reworked internal architecture as a Three-Layer Haskell Cake.</li><li>Changed internal dependencies for base16 and base64 encoding for better performances.</li><li>Upgraded internal dependencies to the Cardano eco-system working with <a href=mailto:[email protected]>[email protected]</a></li><li>Improved error handling of the Ogmios server, in particular in case of connections lost with the underlying node.</li><li>The server now returns an explicit client error when interleaving ‘FindIntersect’ messages in-between pipelined ‘RequestNext’.</li><li>Revised default compilation flags .</li></ul><h4 id=removed-10>Removed</h4><p>N/A</p><hr><hr><h3 id=200-beta----2020-10-31>[2.0.0-beta] – 2020-10-31</h3><h4 id=added-11>Added</h4><ul><li>Support for the Shelley chain in the local-chain-sync protocol.</li><li>Support for the local-state-query protocol.</li><li>Health / Heartbeat endpoint for monitoring.</li><li>Runtime and application metrics measured and served on endpoint (<code>/health</code>).</li><li>Ogmios now includes an HTTP static server hosting both the WSP definition and, a <code>/benchmark.html</code> to run some quick benchmark / smoke test.</li><li>Added additional configuration options via command-line or environment.</li><li>Revised user manual with detailed step-by-step examples.</li></ul><h4 id=changed-11>Changed</h4><ul><li>Several JSON fields renamed to increase consistency between Shelley and Byron.</li><li>Improved logging, more messages and with more context.</li><li>Improved error handling with regards to connection of websocket clients.</li></ul><h4 id=removed-11>Removed</h4><p>N/A</p><h4 id=changed-12>Changed</h4><p>N/A</p><hr><hr><h3 id=100-beta----2020-04-04>[1.0.0-beta] – 2020-04-04</h3><h4 id=added-12>Added</h4><ul><li><p>Initial release and support for:</p><ul><li>Chain Synchronization (no pipelining between cardano-node & ogmios)</li><li>Local Transaction Submission</li></ul></li><li><p>JSON-WSP version 1.0, full support with reflection.</p></li><li><p>Full docker stack via docker-compose.</p></li><li><p>Basic command-line and logging.</p></li></ul><h4 id=changed-13>Changed</h4><p>N/A</p><h4 id=removed-12>Removed</h4><p>N/A</p><footer class=footline></footer></div></div><div id=navigation><a class="nav nav-prev" href=/api/ title="API Reference"><i class="fa fa-chevron-left"></i></a><a class="nav nav-next" href=/faq/ title=F.A.Q style=margin-right:0><i class="fa fa-chevron-right"></i></a></div></section><div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px><div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div></div><script src=/js/clipboard.min.js?1651944923></script><script src=/js/perfect-scrollbar.min.js?1651944923></script><script src=/js/perfect-scrollbar.jquery.min.js?1651944923></script><script src=/js/jquery.sticky.js?1651944923></script><script src=/js/featherlight.min.js?1651944923></script><script src=/js/highlight.pack.js?1651944923></script><script>hljs.initHighlightingOnLoad();</script><script src=/js/modernizr.custom-3.6.0.js?1651944923></script><script src=/js/learn.js?1651944923></script><script src=/js/hugo-learn.js?1651944923></script></body></html>
\ No newline at end of file
+
to catch this kind of errors more easily.</li></ul><h4 id=removed-8>Removed</h4><p>ø</p><hr><hr><h3 id=310---2021-04-04>[3.1.0] - 2021-04-04</h3><h4 id=added-10>Added</h4><ul><li>Extend the local-state query protocol with support for ‘GetCompactGenesis’.</li><li>Extend the local-state query protocol with support for ‘GetFilteredDelegationsAndRewards’.</li><li>Add missing <code>mint</code> field to transaction’s body (added since mary).</li><li>The documentation is now hosted on <a href=https://ogmios.dev>https://ogmios.dev</a>.</li></ul><h4 id=changed-9>Changed</h4><ul><li>Use ‘contentEncoding’ over ‘format’ in appropriate part of the JSON schema.</li><li>Fix various errors in the JSON-schema definition & extend test suite coverage in consequence.</li><li>Implement a ‘fast-bech32’ encoding library, to speed-up Ogmios serialization of blocks beyond the Shelley era.</li><li>Use faster (and recommended) JSON encoding techniques to speed up overall JSON serialization.</li><li>Improve generated documentation from JSON schema by:<ul><li>Providing titles to ‘oneOf’ items</li><li>Adding descriptions to top-level definitions</li><li>Adding examples to top-level definitions</li></ul></li><li>Customized API reference’s stylesheet to enhance readability.</li><li>Upgrade dependency and code to work with GHC-8.10.4 (from GHC 8.6.5)</li><li>Handle more gracefully unknown exceptions (avoid infinite fast loop of retries on errors).</li><li>Handle more gracefully network mismatches (e.g. connecting Ogmios in testnet mode to a mainnet network)</li><li>Repository reorganization:<ul><li>‘ogmios-server’ renamed into ‘server’</li><li>move Haskell-specific dotfiles and configuration files under ‘server’</li><li>move ‘modules’ under ‘server’</li><li>move ‘Dockerfile’ and ‘snapshot.Dockerfile’ under ‘server’</li></ul></li></ul><h4 id=removed-9>Removed</h4><ul><li>Support for GHC-8.6.5</li><li>The docker image no longer shows git revision / version on ‘–version’</li></ul><hr><hr><h3 id=300----2021-02-26>[3.0.0] – 2021-02-26</h3><h4 id=added-11>Added</h4><ul><li>Support for the Allegra era on the chain-sync, tx submission and state query protocols.</li><li>Support for the Mary era on the chain-sync, tx submission and state query protocols.</li><li>Support for multi-era state queries, or said differently, Ogmios can survive a hard-fork without being restarted or re-compiled.</li><li>Allow clients to also make state queries based on the node’s tip (instead of passing an explicit point to acquire).</li><li>Interactive dashboard leveraging Ogmios health’s endpoint and local state query protocol to show metrics in real-time.</li><li>Automated smoke sanity tests executed on a running instance, running queries and chain-syncs across all eras.</li><li>Various internal optimization, in particular with rewards to the chain-sync protocol (~14.000 blocks/s in Byron, ~2500 block/s in Shelley and beyond).</li><li>Additional metrics for monitoring: current heap size, total messages, total unrouted messages and start time.</li><li>Configurable HTTP server timeout from the command-line, with sensible defaults.</li></ul><h4 id=changed-10>Changed</h4><ul><li>Improve error responses to invalid clients' requests (instead of generic error messages).</li><li>Fixed various typos and clumsy wording in the user manual.</li><li>Reworked internal architecture as a Three-Layer Haskell Cake.</li><li>Changed internal dependencies for base16 and base64 encoding for better performances.</li><li>Upgraded internal dependencies to the Cardano eco-system working with <a href=mailto:[email protected]>[email protected]</a></li><li>Improved error handling of the Ogmios server, in particular in case of connections lost with the underlying node.</li><li>The server now returns an explicit client error when interleaving ‘FindIntersect’ messages in-between pipelined ‘RequestNext’.</li><li>Revised default compilation flags .</li></ul><h4 id=removed-10>Removed</h4><p>N/A</p><hr><hr><h3 id=200-beta----2020-10-31>[2.0.0-beta] – 2020-10-31</h3><h4 id=added-12>Added</h4><ul><li>Support for the Shelley chain in the local-chain-sync protocol.</li><li>Support for the local-state-query protocol.</li><li>Health / Heartbeat endpoint for monitoring.</li><li>Runtime and application metrics measured and served on endpoint (<code>/health</code>).</li><li>Ogmios now includes an HTTP static server hosting both the WSP definition and, a <code>/benchmark.html</code> to run some quick benchmark / smoke test.</li><li>Added additional configuration options via command-line or environment.</li><li>Revised user manual with detailed step-by-step examples.</li></ul><h4 id=changed-11>Changed</h4><ul><li>Several JSON fields renamed to increase consistency between Shelley and Byron.</li><li>Improved logging, more messages and with more context.</li><li>Improved error handling with regards to connection of websocket clients.</li></ul><h4 id=removed-11>Removed</h4><p>N/A</p><h4 id=changed-12>Changed</h4><p>N/A</p><hr><hr><h3 id=100-beta----2020-04-04>[1.0.0-beta] – 2020-04-04</h3><h4 id=added-13>Added</h4><ul><li><p>Initial release and support for:</p><ul><li>Chain Synchronization (no pipelining between cardano-node & ogmios)</li><li>Local Transaction Submission</li></ul></li><li><p>JSON-WSP version 1.0, full support with reflection.</p></li><li><p>Full docker stack via docker-compose.</p></li><li><p>Basic command-line and logging.</p></li></ul><h4 id=changed-13>Changed</h4><p>N/A</p><h4 id=removed-12>Removed</h4><p>N/A</p><footer class=footline></footer></div></div><div id=navigation><a class="nav nav-prev" href=/api/ title="API Reference"><i class="fa fa-chevron-left"></i></a><a class="nav nav-next" href=/faq/ title=F.A.Q style=margin-right:0><i class="fa fa-chevron-right"></i></a></div></section><div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px><div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div></div><script src=/js/clipboard.min.js?1653127420></script><script src=/js/perfect-scrollbar.min.js?1653127420></script><script src=/js/perfect-scrollbar.jquery.min.js?1653127420></script><script src=/js/jquery.sticky.js?1653127420></script><script src=/js/featherlight.min.js?1653127420></script><script src=/js/highlight.pack.js?1653127420></script><script>hljs.initHighlightingOnLoad();</script><script src=/js/modernizr.custom-3.6.0.js?1653127420></script><script src=/js/learn.js?1653127420></script><script src=/js/hugo-learn.js?1653127420></script></body></html>
\ No newline at end of file