Skip to content

v1.3.2

Latest

Choose a tag to compare

@rdlrt rdlrt released this 21 Mar 03:26
· 34 commits to main since this release
5615d38

Koios 1.3.2

New release with a few much-awaited new endpoints, based on requests/feedback from community. While there are no breaking changes introduced, there are some deprecations (as part of flattening our endpoints and optimisations), which will be removed in v1.4.0.
Please ensure to go through the changelogs below for detailed changes:

API Docs and Schedule for release:

The schedule for monitoring layers to apply update , as well as live documentation can be browsed as per table below:

Network Date URL Specs Release gRest Instance Release DBSync Node
GuildNet 12-03-2025 05:30 UTC https://guild.koios.rest/ v1.3.2 koios-1.3.2 13.6.0.5 10.1.4
Preview 15-03-2025 05:30 UTC https://preview.koios.rest/ v1.3.2 koios-1.3.2 13.6.0.5 10.1.4
PreProd 21-03-2025 05:30 UTC https://preprod.koios.rest/ v1.3.2 koios-1.3.2 13.6.0.5 10.1.4
Mainnet* 26-03-2025 06:00 UTC https://api.koios.rest/ v1.3.2 koios-1.3.2 13.6.0.5 10.1.4

*Mainnet dates may move if any issues discovered


Changes for API

Expand

New endpoints added:

  • /address_outputs - Basic transaction output info for given addresses [#328]
  • /pool_calidus_keys - List of valid calidus keys for all pools [#328]
  • /pool_groups - List of all registered pool and their groups across sources from pool_groups repository. This is only relevant for mainnet [#328]
  • /pool_owner_history - Return information about pool owner's historical stake and their promised pledge to their pools [#328]
  • /account_stake_history - Get history for dreps voting power distribution [#328]
  • /account_reward_history - Get the full rewards history (including MIR) for given stake addresses [#328]
  • /account_update_history - Get historical updates (registration, deregistration, delegation and withdrawals) for given stake addresses [#328]
  • /drep_voting_power_history - Renamed from drep_history (left drep_history for consistency) [#328]
  • /pool_voting_power_history - New endpoint to give voting_power_history by pool [#328]
  • /vote_list - List of all votes posted on-chain [#328]

Data Input/Output Changes:

  • Input (non-breaking) - /voter_proposal_list - Make _voter_id optional [#328]
  • Output - /tip - Deprecate column block_no and use block_height to be consistent across all endpoints [#328]
  • Output - /pool_list - Add column pool_group to output [#328]
  • Output - /pool_voting_summary - Update fields with data type lovelace/integer to string [#328]
  • Output - /account_info - Add a column proposal_refund to output

Deprecations:

  • /account_history - Part of flattening the JSON heirarchy (so that horizontal filtering is optimal), use /account_stake_history instead [#328]
  • /account_rewards - Part of flattening the JSON heirarchy (so that horizontal filtering is optimal), use /account_rewards_history instead [#328]
  • /account_updates - Part of flattening the JSON heirarchy (so that horizontal filtering is optimal), use /account_update_history instead [#328]
  • /drep_history - Renamed to /drep_voting_power_history to be more precise [#328]
  • /drep_votes - Should be available via /vote_list (can use horizontal filtering) [#328]
  • /pool_votes - Should be available via /vote_list (can use horizontal filtering) [#328]

Chores:

  • Replace pg_bech32 library with pg_cardano [#328]
  • Improve grest.epoch_info_cache performance [#328]
  • /proposal_voting_summary - Do lookup for gov action id beforehand, Added handling of inactive DRep stake in voting as abstain, unless they voted in epoch of interest [#328]
  • /account_info - Add limit filters to ensure there is a single hit per account [#328]
  • Add indexes for voting_procedure [#328]

Retirements:

  • None

Full Changelog can be found here for SQL queries and Specs , and here for scripts used.


Instructions for Instance Providers

Expand

If you're setting up as a new instance provider, you can find instructions here. The tag to use for setup-grest.sh would be koios-1.3.2

The update process as usual would be:

  1. Update your node, submitapi, dbsync and ogmios binaries. You can use the sample below as reference (change network and top folder according to your environment):
./guild-deploy.sh -n $NETWORK -t cnode -b koios-1.3.2 -s plfdom

Note that the use of f above is to force overwrite your configs , as newer node includes ConwayGenesis configs. The above command will overwrite your config.json, topology.json as well as user variables, and save them original ones backups, you'd want to copy your user variables into the files modified and re-add port customisations to config.json or topology peering.

  1. Shutdown your node and dbsync services - and start node back up (replace cnode as per your environment in instructions):
sudo systemctl stop cnode cnode-dbsync
sudo rm -f /etc/cron.d/cnode-*
sudo systemctl start cnode

Expect node to take a few hours to startup, you can short-circuit the process by copying $CNODE_HOME/db folder from already upgraded node - while both source and destination node folders were against node being in shutdown state (or use mithril-client or use https://csnapshots.io). You can also check node startup status by viewing node logs (tail -100f $CNODE_HOME/logs/node.json)

  1. While you Wait for your node to be in sync (you can monitor via gLiveView), you can proceed with dropping current dbsync DB and restoring from snapshot. To do so, use the below (execute commands one by one - verifying output):

We'd recommend using Postgres 17.2 and above, but it's up to individuals.

cd ~/git/cardano-db-sync
git fetch
git checkout 13.6.0.5
./scripts/postgresql-setup.sh --recreatedb
rm -rf ${CNODE_HOME}/guild-db/ledger-state ; mkdir -p ${CNODE_HOME}/guild-db/ledger-state
ln -s ~/git/cardano-db-sync/schema ${CNODE_HOME}/guild-db/schema 
cd $CNODE_HOME/scripts ; ./dbsync.sh -d

If using snapshot below, please delete the line containing error-on-exit in scripts/postgresql-setup.sh (restore-snapshot function), as there are expected errors for missing roles/schemas that are safe to ignore while restoring from snapshot below.

If you're on mainnet, you'd likely want to restore from snapshot:

wget 'https://share.koios.rest/api/public/dl/xFdZDfM4/dbsync/mainnet-dbsyncsnap-latest.tgz' -O /tmp/dbsyncsnap.tgz
scripts/postgresql-setup.sh --restore-snapshot /tmp/dbsyncsnap.tgz ${CNODE_HOME}/guild-db/ledger-state

Once the above is complete, you can start dbsync by sudo systemctl start cnode-dbsync. Wait for dbsync to finish synching, you can tail logs via tail -10f $CNODE_HOME/logs/dbsync.json - on mainnet in particular, this could take a few days if not using snapshot).

  1. With dbsync updated and on tip, you'd now be ready to go to the next step - updating koios. You'd want to update all components and reset your grest schema, sample command below:
./setup-grest.sh -b koios-1.3.2 -r -i prmcd
sudo systemctl restart cnode-postgrest cnode-haproxy

Due to difference in script provisioning versions, it is possible that you might have trouble starting cnode-postgrest - if so, check and ensure that you can access $CNODE_HOME/priv/grest.conf file as authenticator user - you can use command as test : sudo -u authenticator cat /opt/cardano/gnode/priv/grest.conf

Since we're again re-building cache, expect the cache to take a bit (few minutes on non-mainnet, while a few hours on mainnet).


Other Notes

Expand

Bug Reports/Feature Requests

Everyone is invited to create future feature requests here to help us triage issues.

Support/Discussions Group

Please ensure to join the Koios Support/Discussions group.
We're open to have meetings to work together as well as discuss future additions, feel free to ask

Contributors

We are blessed to have community who contribute in various ways, be it by serving community instances, library implementations, testing, or feedbacks. Special thanks to all the contributors that have been helping us improve the query layer along the way
@Scitz0 , @rdlrt , @redoracle, @hodlonaut, @reqlez , @huths0lo , @chadle-git , @gufmar , @dostrelith678, @ray-wallet, @edridudi , @mkungla , @xray-robot , @nothingalike, @safestak-keith , @QuixoteSystems, @abdelkrimdev, @cardano-apexpool , @AlexDochioiu , @DCOneCrypto , @PatrickTobler , @agaffney , @rcmorano , @gitmachtl, @Crypto2099, @robinboening, @fallen-icarus , @M4rc0Russ0 , @HT-Moh , @ducpm2303 , @michele-nuzzi , @maxee , @Jack-0, @larestrepo, @MadOrkestra, @mpizenberg, @quinn-logicalmechanism, @DevStakePool