Skip to content

Releases: algorand/indexer

Algorand Indexer 2.6.1

08 Aug 13:13
5ad4773
Compare
Choose a tag to compare

GitHub Logo

Highlights

Hot fix to support impending consensus upgrade for go-algorand.

Changes

  • Enhancements
    • Support V29 protocol (#604)
    • Pipeline - allow package signing from non-AMD64/Linux platforms (#595)

Algorand Indexer 2.6.0

29 Jul 16:03
1997c0f
Compare
Choose a tag to compare

GitHub Logo

Highlights

Included in this release:

  • Support for devMode
  • Non-UTF-8 support for asset strings - return -b64 asset strings in most endpoints
  • Fix for too many sequential queries (#553)
  • Other refactoring and small bug fixes

Changes

  • Enhancements
    • Add devmode support to indexer
    • Add missing validation for b64 fields.
    • Define AddressRole type in idb
    • Delete old migrations (pre-2.4.0)
    • Delete other released migrations
    • Delete the reset functionality
    • Delete unused function
    • Deleted the deprecated variable from the import state
    • Improve a migration scheduler test.
    • Improvements in idb/postgres/ and reset.go
    • Move signature type logic to idb
    • Move transaction type logic to idb
    • Store next round in import state
    • Testing - add a new subcommand to the block generator to run multiple scenarios and generate reports based on the results
    • Testing - keytype
    • Testing - large asset amount
    • Validator improvements
    • non utf8 support for asset strings
  • Bug Fixes
    • Avoid leaking db transactions and rows
    • Copy the byte array in bytePtr()
    • Fix two small bugs in Health()
    • daemon: replace a sleep loop with a channel.

Algorand Indexer 2.5.0

22 Jun 18:21
1f3fb46
Compare
Choose a tag to compare

GitHub Logo

Highlights

This is a small release to support the upcoming algod protocol upgrade. This upgrade is necessary for running go-algorand 2.7.0 / 2.7.1 releases.

This release also includes miscellaneous small fixes and refactoring, as well as additional performance testing tools.

This release contains a couple small migrations as part of data cleanup, which should take less than a minute to complete.

Changes

New Features

  • Add ExtraProgramPages app call field support
  • Performance testing: block generator and reporting
  • Prometheus metrics endpoint for performance testing

Enhancements

  • Add install instructions
  • Code cleanups and refactoring
  • Make deleted columns NOT NULL
  • Update protocols.json to v28
  • Add codecov integration

Bug Fixes

  • Creatable ID is wrong on round 0
  • Fix usage of e2e_client_runner.py
  • Replace GetMaxRoundLoaded() with GetNextRoundToLoad()
  • Return an error in CommitRoundAccounting() when import state is uninitialized

Algorand Indexer 2.4.0

26 May 21:20
baa014f
Compare
Choose a tag to compare

GitHub Logo

Highlights

This release addressed technical debt identified in previous releases.

Migrations in this release take around half an hour and are non-blocking, and include:

  • Cleaning up some stale account data for a small number of accounts which were closed and re-opened after rekeying, registering participation keys, or changing their online status
  • Search by freeze address filter fix

Changes

Bug Fixes

  • Converting GT/LT uint struct fields to uint pointers
  • Delete false error message in daemon when starting from round 0
  • Fix Freeze Address Search Filter + Migration
  • Fix idb/mocks/IndexerDb.go regeneration
  • Migration that clears account data for accounts that have been closed
  • Retry db transactions on a serialization error
  • Return the right close amount for transfer transactions.

Algorand Indexer 2.3.4

28 Apr 19:58
1cfd8bb
Compare
Choose a tag to compare

GitHub Logo

Highlights

This release adds support for an upcoming protocol upgrade, as well as
fixes the following migration issues for people upgrading from 2.2.x to 2.3.x:

  • The migration may have exited with the following error. update account asset, pq: null value in column \"frozen\" violates not-null constraint
  • The migration may have completed, but be stuck in error status, reporting error during migration 7 (Compute cumulative account rewards for all accounts.): m7: len(assetDataMap): 77 \u003e 0

Changes

Enhancement

  • Update consensus params to support V27

Bug Fixes

  • Fix frozen null-constraint during import
  • Delete assets from asssetDataMap in migration when updating accounts

Algorand Indexer 2.3.3

21 Apr 01:21
511095d
Compare
Choose a tag to compare

GitHub Logo

Highlights

This is a bug fix release to address an issue where a few blocks on TestNet were erroring due to no deltas for the sender. No migrations are necessary for this change and can be applied directly to 2.3.2.

Changes

Bug Fix

  • Make sure there are deltas before attaching the delta object in REST layer

Algorand Indexer 2.3.2

12 Apr 18:01
f6ba02c
Compare
Choose a tag to compare

GitHub Logo

Highlights

This release includes the following:

  • Cumulative rewards support is now available in indexer! This is complicated to calculate and requires a non-blocking migration to implement (see upgrade notes below)
  • Add REST API endpoints for create/delete fields
  • Support for upcoming protocol upgrade
  • Many optimizations and bug fixes

Important Changes

Cumulative rewards are now computed and stored in the account rewards field.
Round at which things are added or removed from the database is now reported. There is also a deleted flag for each of these indicating whether the record is currently deleted from the blockchain:
account: created-at-round, closed-at-round
asset: created-at-round, destroyed-at-round
asset holding: opted-in-at-round, opted-out-at-round
application: created-at-round, deleted-at-round
account application: opted-in-at-round, closed-out-at-round

Major Bugs Addressed

  • Fix for negative asset integer bug seen on BetaNet
  • JSON encoding import issue
  • Asset holding accounting did not handle default-frozen = true correctly. This is now fixed.

Known Issues

  • This release is not compatible with the other 2.3.0-beta releases due to migration refactoring. A full indexer database rebuild is required to upgrade from 2.3.0-betas.
  • Application state rewind has not been implemented and returns a generic error. We are implementing a better error message for this state.

Upgrade Notes (Please Read)

Full Rebuild Required For BetaNet and TestNet indexers

Due to improvements in block importing, a full rebuild is necessary for BetaNet and TestNet indexers. This is not required for MainNet.

Mandatory Migration

Adding cumulative rewards support and some of the data cleanups requires a migration. However, this was written to run asynchronously and will not require downtime. There is minimal impact to query performance while running, but the migration is expected to take around twelve hours to complete and may consume a few GB of RAM. The server can be restarted at any time, and the migration will pick up where it left off. You can observe if the migration has finished by checking the /health REST API endpoint. The percent progress is available in the log file or from standard out if no log file is configured.

Configuration File Name Change

If you were previously using a configuration file with indexer, you will need to rename it. If you had previously been using a file named algorand-indexer, algorand-indexer.yml, or algorand-indexer.yaml, you should rename this file to indexer, indexer.yml, or indexer.yaml. The location of the configuration file has not changed.

Changes

New Features

  • Add support for cumulative rewards
  • Capture create and close rounds for things that can be created and closed
  • Add Create/Delete to REST Response

Enhancements

  • Switch to algod v2 client
  • Degrade ReadOnly Node Service When Migration is Required
  • IndexerDb should block importer until db is available
  • Logging Improvements
  • Naming cleanup and append to log file instead of overwriting
  • remove support for e2etest.py and use e2elive.py
  • Pipeline - add mule build docs
  • Pipeline - parameterize STAGING in build task
  • Added github templates for internal ticketing
  • Include txn type into panic message
  • Add 'deleted' flag to the database and API
  • Add basic benchmark queries against a database to help prevent query performance regression
  • Move db.CommitRoundAccounting out of the accounting package
  • Better rewind error message
  • Modify GetMaxRound to return the accounting_round instead of the max block round
  • Validation scripts to verify accounting
  • Change GetBlock to retrieve content in a single transaction
  • Update to support upcoming consensus protocols
  • Support databases behind load balancers
  • Don't return special accounts in results
  • Add pending rewards to rewards in account APIs

Bug Fixes

  • Config file name change
  • Fix golint
  • Fixing typo in README.md postgress connection string (thanks PSJoe)
  • Make sure GetMaxRound returns a value if there are no rounds processed
  • Fix asset close accounting issue
  • Fix handling of some transactions whose JSON encoding would fail to be received by PostgreSQL
  • On account close, delete a bunch of fields out of account.account_data because they'd be cleared by algod
  • When local state delta had a single key deletion did not happen
  • Round writer check to prevent advancing on import errors
  • Special case if multiple writers are accidentally run
  • Always send json to PostgreSQL as a Go string not []byte
  • Small fixes to pipeline code
  • Adding line to copy mdhash to prevent overwriting (#366)
  • Many improvements to accounting logic

Algorand Indexer 2.2.2

24 Mar 14:25
Compare
Choose a tag to compare

GitHub Logo

Increased traffic impacted indexer query performance. This hotfix adds indices to the postgres database tables.

Changes

Enhancement

  • Add indexes to speed queries

Algorand Indexer 2.3.1-beta3

11 Mar 20:11
1adebc1
Compare
Choose a tag to compare
Pre-release

GitHub Logo

2.3.0-beta releases are incompatible with these versions due to migration refactoring, a full indexer database rebuild is required to upgrade from 2.3.0-betas.

Changes

Enhancement

  • Modify GetMaxRound to return the accounting_round instead of the max block round

Bug Fix

  • Small fixes to pipeline code

Algorand Indexer 2.3.1-beta2

11 Mar 20:11
235b098
Compare
Choose a tag to compare
Pre-release

GitHub Logo

2.3.0-beta releases are incompatible with these versions due to migration refactoring, a full indexer database rebuild is required to upgrade from 2.3.0-betas.

Changes

Enhancement

  • Better rewind error message

Bug Fixes

  • Round writer check to prevent advancing on import errors
  • Special case if multiple writers are accidentally run
  • Always send json to PostgreSQL as a Go string not []byte