Releases: stellar/go
Releases · stellar/go
Horizon v0.15.2
- Added
horizon db init-asset-stats
command to initializeasset_stats
table. This command should be run once before starting ingestion if asset stats are enabled (ENABLE_ASSET_STATS=true
). - Fixed
asset_stats
table to support longerhome_domain
s. - Fixed slow trades DB query.
Horizon v0.15.1
- Fixed memory leak in SSE stream code.
Horizon v0.15.0
DB migrations add a new fields and indexes on history_trades
table. This is a very large table in CATCHUP_COMPLETE
deployments so migration may take a long time (depending on your DB hardware). Please test the migrations execution time on the copy of your production DB first.
Breaking changes
- Assets stats are disabled by default. This can be changed using an environment variable (
ENABLE_ASSET_STATS=true
) or CLI parameter (--enable-asset-stats=true
). Please note that it has a negative impact on a DB and ingestion time. - In "Offers for Account",
last_modified_time
field endpoint can benull
when ledger data is not available (has not been ingested yet). - "Trades for Offer" endpoint will query for trades that match the given offer on either side of trades, rather than just the "sell" offer. Offer IDs are now synthetic. You have to reingest history to update offer IDs.
Bug fixes and improvements
This release contains several bug fixes and improvements:
- New
/operation_fee_stats
endpoint includes fee stats for the last 5 ledgers. - "Trades" endpoint can now be streamed.
- In "Trade Aggregations" endpoint,
offset
parameter has been added. - Path finding bugs have been fixed and the algorithm has been improved. Check #719 for more information.
- Connections (including streams) are closed after timeout defined using
--connection-timeout
CLI param orCONNECTION_TIMEOUT
environment variable. If Horizon is behind a load balancer with idle timeout set, it is recommended to set this to a value equal a few seconds less than idle timeout so streams can be properly closed by Horizon. - Streams have been improved to check for updates every
--sse-update-frequency
CLI param orSSE_UPDATE_FREQUENCY
environment variable seconds. If a new ledger has been closed in this period, new events will be sent to a stream. Previously streams checked for new events every 1 second, even when there were no new ledgers. - Rate limiting algorithm has been changed to GCRA.
- Rate limiting in streams has been changed to be more fair. Now 1 credit has to be paid every time there's a new ledger instead of per request.
- Rate limiting can be disabled completely by setting
--per-hour-rate-limit=0
CLI param orPER_HOUR_RATE_LIMIT=0
environment variable. - Account flags now display
auth_immutable
value. - Logs can be sent to a file. Destination file can be set using an environment variable (
LOG_FILE={file}
) or CLI parameter (--log-file={file}
). horizon db backfill
command has been fixed.- Fixed
remoteAddrIP
function to support IPv6. - Fixed
route
field in the logs when the request is rate limited.
Friendbot v0.0.1
Initial friendbot release
Horizon v0.14.2
Horizon v0.14.1
This release contains several bug fixes:
- Assets stats can cause high CPU usage on stellar-core DB. If this slows down the database it's now possible to turn off this feature by setting
DISABLE_ASSET_STATS
feature flag. This can be set as environment variable (DISABLE_ASSET_STATS=true
) or CLI parameter (--disable-asset-stats=true
). - Sometimes
/accounts/{id}/offers
returns500 Internal Server Error
response when ledger data is not available yet (for new ledgers) or no longer available (CATCHUP_RECENT
deployments). It's possible to setALLOW_EMPTY_LEDGER_DATA_RESPONSES
feature flag as environment variable (ALLOW_EMPTY_LEDGER_DATA_RESPONSES=true
) or CLI parameter (--allow-empty-ledger-data-responses=true
). With the flag set totrue
"Offers for Account" endpoint will returnnull
inlast_modified_time
field when ledger data is not available, instead of500 Internal Server Error
error.
Bug fixes
- Feature flag to disable asset stats (#668).
- Feature flag to allow null ledger data in responses (#672).
- Fix empty memo field in JSON when memo_type is text (#635).
- Improved logging: some bad requests no longer generate
ERROR
level log entries (#654). /friendbot
endpoint is available only whenFriendbotURL
is set in the config.
Archivist v0.2.0
- Fixed duplicated data when reading an archive file (#374).
Horizon v0.14.0
Breaking changes
- Offer resource
last_modified
field removed (see Bug Fixes section). - Trade aggregations endpoint accepts only specific time ranges now (1/5/15 minutes, 1 hour, 1 day, 1 week).
- Horizon sends
Cache-Control: no-cache, no-store, max-age=0
HTTP header for all responses.
Deprecations
- Account > Signers collection
public_key
field is deprecated, replaced bykey
.
Changes
- Protocol V10 features:
- New
bump_sequence
operation (as in CAP-0001).- New
bump_sequence
operation. - New
sequence_bumped
effect. - Please check CAP-0001 for new error codes for transaction submission.
- New
- Offer liabilities (as in CAP-0003):
/accounts/{id}
resources contain new fields:buying_liabilities
andselling_liabilities
for each entry inbalances
.- Please check CAP-0003 for new error codes for transaction submission.
- New
- Added
source_amount
field topath_payment
operations. - Added
account_credited
andaccount_debited
effects forpath_payment
operations. - Friendbot link in Root endpoint is empty if not set in configuration.
- Improved
ingest
package logging. - Improved HTTP logging (
forwarded_ip
,route
fields,duration
is always in seconds). LOGGLY_HOST
env variable has been replaced withLOGGLY_TAG
and is adding a tag to every log event.- Dropped support for Go 1.8.
Bug fixes
- New fields in Offer resource:
last_modified_ledger
andlast_modified_time
, replace buggylast_modified
(#478). - Fixed pagination in Trades for account endpoint (#486).
- Fixed a synchronization issue in
ingest
package (#603). - Fixed Order Book resource links in Root endpoint.
- Fixed streaming in Offers for Account endpoint.
Horizon v0.13.3
Bug fixes
- Fixed large amounts rendering in
/assets
.
Horizon v0.14.0 rc3
Release Candidate. Do not use in production.