Skip to content

Releases: cardano-foundation/cardano-graphql

Cardano GraphQL 7.0.0

23 Aug 06:16
ba116c9
Compare
Choose a tag to compare

This major release supports the upcoming Vasil protocol upgrade.

Compatible with:

⚠ BREAKING CHANGES

  • Collateral outputs
  • Add ProtocolParams type to better represent current protocol params
  • Remove remnants of previously deprecated config
  • Reward.receivedIn nullability
  • Reward.stakePool is now nullable to handle rewards of type treasury or reserves.

System Requirements

  • DB Sync system requirements
    • The system requirements for cardano-db-sync (with both db-sync and the node running on the same machine are:
      • Any of the big well known Linux distributions (eg, Debian, Ubuntu, RHEL, CentOS, Arch etc).
      • 24 Gigabytes of RAM.
      • 4 CPU cores.
      • 80 Gigabytes or more of disk storage (preferably SSD which are 2-5 times faster than electro-mechanical disks).
    • The recommended configuration is to have the db-sync and the PostgreSQL server on the same machine. During syncing (getting historical data from the blockchain) there is a HUGE amount of data traffic between db-sync and the database. Traffic to a local database is significantly faster than traffic to a database on the LAN or remotely to another location.

The host machine will need at least 32 Gigabytes of RAM to run the full cardano-graphql stack.

Features

  • Add TransactionOutput|CollateralOutput.paymentCredential (e6e2d45)
  • Add Transaction.referenceInputs (2c5e0b5)
  • Collateral outputs (a222cb4)
  • Support Babbage block (fe484e1)
  • Support Plutus data (58f6c48)
  • Remove remnants of previously deprecated config (c3fc2aa)
  • Update to Ogmios v5.5.0 cardano-db-sync 13.0.0 (b821f21)

Bug Fixes

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 6.2.0

07 Feb 17:11
376835e
Compare
Choose a tag to compare

Compatible with:

System Requirements

  • DB Sync system requirements
    • The system requirements for cardano-db-sync (with both db-sync and the node running on the same machine are:
      • Any of the big well known Linux distributions (eg, Debian, Ubuntu, RHEL, CentOS, Arch etc).
      • 24 Gigabytes of RAM.
      • 4 CPU cores.
      • 80 Gigabytes or more of disk storage (preferably SSD which are 2-5 times faster than electro-mechanical disks).
    • The recommended configuration is to have the db-sync and the PostgreSQL server on the same machine. During syncing (getting historical data from the blockchain) there is a HUGE amount of data traffic between db-sync and the database. Traffic to a local database is significantly faster than traffic to a database on the LAN or remotely to another location.

The host machine will need at least 32 Gigabytes of RAM to run the full cardano-graphql stack.

Features

  • Support change to asset ticker length (b858445)

Bug Fixes

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 6.1.0

13 Dec 13:50
a54423a
Compare
Choose a tag to compare

This minor release adds compatibility with cardano-db-sync@12 and cardano-node@1.31.0 , plus fixes a bug relating to Transaction.collateral.

Compatible with:

System Requirements

  • DB Sync system requirements
    • The system requirements for cardano-db-sync (with both db-sync and the node running on the same machine are:
      • Any of the big well known Linux distributions (eg, Debian, Ubuntu, RHEL, CentOS, Arch etc).
      • 24 Gigabytes of RAM.
      • 4 CPU cores.
      • 80 Gigabytes or more of disk storage (preferably SSD which are 2-5 times faster than electro-mechanical disks).
    • The recommended configuration is to have the db-sync and the PostgreSQL server on the same machine. During syncing (getting historical data from the blockchain) there is a HUGE amount of data traffic between db-sync and the database. Traffic to a local database is significantly faster than traffic to a database on the LAN or remotely to another location.

The host machine will need at least 32 Gigabytes of RAM to run the full cardano-graphql stack.

Bug Fixes

  • Add missing Transaction.collateral Hasura table config (8a5f93e)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 6.0.0

06 Oct 12:27
6d496ae
Compare
Choose a tag to compare

This major release changes the Reward type to support rewards received from the treasury or reserves via move instantaneous reward (MIR) operations, improves the visibility of Asset table sync status on startup, and facilitates restoring a cardano-db-sync snapshot which is documented in the README.

Compatible with:

⚠ BREAKING CHANGES

  • Reward.stakePool is now nullable to handle rewards of type treasury or reserves.

Features

  • Include all reward types in Reward model, adds type field (6f1ddd9)
  • Reward.receivedIn (e9e5715)
  • TransactionInput_order_by.transaction (f775c45)
  • Use Asset table sync status to determine Server readiness (dfff8d5)

Bug Fixes

  • Add permission to Reward.type, and index the column (6f157a5)
  • Make METADATA_SERVER_URI required config (552c5e8)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 5.1.0

28 Aug 15:46
0a13e5b
Compare
Choose a tag to compare

This feature release extends the API to include Alonzo concepts, including new top level queries for scripts, collateralInputs, and redeemers, plus extensions to the Transaction model, protocol parameters, and genesis. It's now possible to pull and run the Docker Compose stack without building images locally, by pulling all images from Docker Hub first. The README has been improved to cover this new option, and provides up/down commands for each supported network for convenience.

Compatible with:

Features

  • Support Docker pull and run to skip builds (ee03a57)
  • Alonzo data mapping (eff1d9c)
  • Add AlonzoGenesis(d600dc0)
  • Add Alonzo blocks to conditional chain following (8d6aaf4)

Bug Fixes

  • Add network suffix to Docker Compose file (53059b9)
  • Guard sync drift between cardano-db-sync and cardano-graphql (3c9707b)
  • Properly handle error as known exception (755c500)
  • Invalid cache target in compose file (4b4dfc3)
  • Guard logic (110deaa)
  • OperationRequiresNodeInCurrentEra -> OperationRequiresSyncedNode (6165965)
  • Startup race-condition with chain-followers (0b15315)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano Graphql 5.1.0-beta.1

15 Aug 08:42
afea721
Compare
Choose a tag to compare
Pre-release

beta.1

It's now possible to pull and run the Docker Compose stack without building images locally, by pulling all images from Docker Hub first. The README has been improved to cover this new option, and provides up/down commands for each supported network for convenience.

Compatible with:

Features

  • support Docker pull and run to skip builds (ee03a57)

Bug Fixes

  • invalid cache target in compose file (4b4dfc3)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

beta.0

This pre-production feature release extends the API to include Alonzo concepts, including new top level queries for scripts, collateralInputs, and redeemers, plus extensions to the Transaction model, protocol parameters, and genesis.

The API is not guaranteed to be stable, however is suitable for testing integrations on non-mainnet networks. See the schema diff for full details.

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano Graphql 5.1.0-beta.0

12 Aug 16:08
959768a
Compare
Choose a tag to compare
Pre-release

This pre-production feature release extends the API to include Alonzo concepts, including new top level queries for scripts, collateralInputs, and redeemers, plus extensions to the Transaction model, protocol parameters, and genesis.

The API is not guaranteed to be stable, however is suitable for testing integrations on non-mainnet networks. See the schema diff for full details.

Compatible with:

Features

  • Alonzo data mapping (eff1d9c)
  • Add AlonzoGenesis(d600dc0)
  • Add Alonzo blocks to conditional chain following (8d6aaf4)

Bug Fixes

  • Guard logic (110deaa)
  • OperationRequiresNodeInCurrentEra -> OperationRequiresSyncedNode (6165965)
  • startup race-condition with chain-followers (0b15315)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 5.0.0

26 Jul 15:21
754d9e9
Compare
Choose a tag to compare

This major release improves the efficiency and reliability of the service by utilising Ogmios as the node interface, replacing cardano-cli and implementing a chain-sync client for discovering assets upon first mint in favour of regularly diffing a large data set. A PostgreSQL-backed queue helps achieve this, and can be observed within the pgboss schema. The docker-compose stack now uses cardano-node-ogmios as a drop-in replacement for cardano-node, and enables all communication from the cardano-graphql service to be done via TCP. There are a number of small features, and bug fixes listed below. Please follow the upgrade instructions in the Wiki

Compatible with:

⚠ BREAKING CHANGES

  • Asset.assetName and Asset.assetId are now typed as Hex, as the relationship from Assets to TokenMints needed to be established using the underlying table, where assetId is not present.
  • Configuration of the asset metadata fetching is now a single value. POLLING_INTERVAL_METADATA_SYNC_INITIAL and POLLING_INTERVAL_METADATA_SYNC_ONGOING are replaced by ASSET_METADATA_UPDATE_INTERVAL, which is the number of seconds before the service checks the registry for updates.
  • AssetSupply.total is now an optional field and can return null.
  • Transaction.metadata is now JSON type, not JSONObject
    • Despite the name, JSONObject was mapped to the underlying JSON resolver as a workaround to avoid breaking changes.
  • The fields previously modeled on Token have been nested under Token.asset
  • tokens and tokens_aggregate have been removed in favour of assets and assets_aggregate
  • Asset properties nested under PaymentAddress.assets are now under PaymentAddress.assets.asset
  • Block.merkleRoot removed, as no longer part of cardano-db-sync schema. (8b3b718)

Features

  • Replaces the use of cardano-cli with Ogmios for interacting with the node using JSON-WSP, and implements the convenient cardano-node-ogmios Docker image as a drop-in replacement for the cardano-node image.
  • Sync assets using chain-sync protocol via Ogmios (784509e)
  • tokenMints and tokenMints_aggregate queries (f803b94)
  • Add query complexity validations (24a14a9),
  • Add default query complexity calculations with arguments (b16c77d)
  • Implement complexity in resolvers (5664a55)
  • Use cardano-node config for lastConfiguredMajorVersion (5a621c2), closes #454
  • Add Epoch_bool_exp.startedAt (4cc580a)
  • Add TransactionOutput_bool_exp.index (34d5438)
  • Allow ordering of assets by token mint count (cfbb039)
  • Asset metadata decimals (082f509)

Bug Fixes

  • Improve startup robustness (7054a59)
    • The GraphQL server is now delayed until all modules are initialized, and running. If cardano-db-sync reboots, all
      modules are shutdown, and restarted and therefore links the server availability with a fully initialized stack.
  • Add order_by to asset query (5848c24)
  • Asset_bool_exp.tokenMints (7616a49)
  • assetFingerprint bug when no assetName present (9a61d91), closes #487
  • Await all promises in shutdown function (3d7ef11)
  • Await CardanoNodeClient init before starting server (f33f6aa)
  • cardanoDbSyncMeta.initialized during startup (d6649cf)
  • Casing on invalid hereafter in GraphQL schema (854ec4a), closes #390
  • Copy cardano-node config into Docker image (4bf4866)
  • Default metadata server URI (2a98055)
  • Disable CORS in Hasura graphql-engine (4499422), closes #392
  • Ensure DB is in current era before completing HasuraClient initialization (0d43abc)
  • Guards on missing current epoch row (6204c96)
  • Log all error messages during service startup, not just HostDoesNotExist (c81aad8)
  • Memory leak in Hasura GraphQL client (3c8511d)
  • Move current era check to be lazy operation (7830c91)
  • Move graphql-engine option under serve command (f76e944)
  • policyId comparison expression type (99318cc), closes #485
  • Remove promise chaining cycle (8b55ca0), closes #459
  • Reorder logging arguments based on Bunyan interface (46b26a0)
  • Restore protocol params fetcher init (e86fc1a)
  • Scoping on package (82e2040)
  • submitTransaction error mapping (3629725)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 4.0.0

29 Mar 14:13
058873f
Compare
Choose a tag to compare

This major release adds support for querying asset information outside the context of a transaction, including a cached copy of the off-chain metadata from the Cardano Token Registry. The Token type has been adapted to support a more natural model, with Token.asset now containing the on-chain asset information alongside the metadata properties. There are two new config options to customise the metadata sync behaviour, which are documented in the Wiki. This release also reduces resource demand introduced in 3.2.0, and takes the opportunity to complete a few API-breaking chores that are listed below.

Compatible with:

BREAKING CHANGES

  • StakePool.url no longer URL type. The ledger does not validate the url value provided by the owner, therefore trying to impose rules around the structure will fail.

  • Transaction.metadata is now more accurately JSON type, not JSONObject. Despite the name, JSONObject was currently mapped to the underlying JSON resolver as a workaround to avoid breaking changes.

  • The fields previously modelled on Token have been nested under Token.asset. tokens and tokens_aggregate have been removed in favour of assets and assets_aggregate. Asset properties are now nested under PaymentAddress.summary.assetBalances.asset

Features

  • Introduce asset model and fetch metadata from external service (#432)
  • Ada Pots (#450)
  • Asset.tokenMints and Asset.tokenMints_aggregate

Bug Fixes

  • ActiveStake.stakePoolHash field name (08fe609)
  • Add Mint.asset relationship (0deaaac)
  • Add remaining Asset fields Hasura query used to fulfil paymentAddress query (879db94)
  • Batch asset synchronising operations (637d607)
  • Block.merkelRoot -> Block.merkleRoot (b9e1e13)
  • Include rewards in ada circulating supply (69f23c1)
  • StakePool.url is now type String (a661525)
  • StakePoolRetirement_bool_exp.inEffectFrom type (96aa708)
  • Correct Transaction.metadata type (79205a2)
  • Remove cardano-cli ledger-state query, make AssetSupply.total optional (f86ef42)
  • Use cardano-node config for lastConfiguredMajorVersion (5a621c2), closes #454
  • Replace cardano-cli query with db lookup for protocol params (a6387b3)
  • Throw error in resolver rather than return it (dd9a031)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 3.2.0

02 Feb 11:23
914746b
Compare
Choose a tag to compare

This feature release includes the major items of supporting Native Tokens, adds a query to return Ada supply information, and provides a GraphQL mutation to submit a signed transaction to the network. Users need to upgrade to this version (or later) to cross the Native Tokens hard fork.

Please note that the repository now contains git submodules. Clone instructions are in the README.

Compatible with:

Features

  • Multi-asset support #404
  • Ada supply query #386
  • Submit transaction mutation #414
  • Structured logging #386
  • Improve delegation and active stake models #409
  • Report sync progress in logs during initialisation #409

Bug Fixes

  • GraphQL schema order_by #409
  • Guard against simultaneous data fetches #386
  • Opt-out of Hasura CLI telemetry #409
  • Pass logger to onFailedAttempt #404
  • Replaces the time-based logic to determine sync progress and initialisation state #407, closes #248
  • Reward and StakeDeregistration order_by fields #384, closes #382

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️