Skip to content

Commit

Permalink
Update Release Notes for v10.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
adamkrellenstein committed Dec 12, 2024
1 parent dcdecdb commit e8e0f85
Showing 1 changed file with 41 additions and 43 deletions.
84 changes: 41 additions & 43 deletions release-notes/release-notes-v10.8.0.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,75 @@
# Release Notes - Counterparty Core v10.8.0 (2024-12-??)
# Release Notes - Counterparty Core v10.8.0 (2024-12-12)

This release includes some significant architectural changes to the codebase to improve node stability and performance. Most notably, the data storage requirements of the Counterparty database have been reduced from ~50 GB to ~25 GB. Numerous bugs have been fixed, and all node hosts are recommended to upgrade ASAP.


# Upgrading

This upgrade requires a mandatory, automatic reparse from block 871780.


# ChangeLog

## Protocol Changes

## Bugfixes

- Fix `block.close_block_index` field type
- Set `issuances.reset` and `issuances.locked` default value to False instead None
- Save also `utxo_address` in `address_events` table
- Clean useless indexes
- Don't rollback or reparse to a block index higher than current block index
- Fix dividend distribution to UTXO order after a rollback
- Exclude zero balances when getting balances by address and asset
- Remove lock file from RSFetcher
- Handle correctly RSFetcher invalid version
- Clean shutdown; Correctly close the Ledger DB and State DB (ensure that all connections are closed and that the one with write permission is closed last)
- Fix `get_price` and `give_price` fields: returns 0 not null
- Always includes all outputs in transaction decoded by RSFetcher
- Fix UTXO balances cache: don't cache `detach`, add cache fir `attach`, clean cache when balance is empty
- Fix XCP price calculation in `fairmint.validate()`
- Set `issuances.reset` and `issuances.locked` default values to `False` rather than `None`
- Fix `get_price` and `give_price` fields: return `0` rather than `null`
- Store `utxo_address` in the `address_events` table
- Fix order of results during dividend distribution to UTXOs
- Fix XCP price calculation for fair mints
- Handle RSFetcher version mismatches correctly
- Improve shutdown process and correctly close the Ledger DB and State DB
- Always include all outputs in transactions decoded by RSFetcher
- Fix UTXO balances cache: don't cache `detach`; add cache for `attach`; clean the cache when the balance is empty

## Codebase

- Fix `block.close_block_index` field type
- Eliminate unnecessary database indexes
- Don't rollback or reparse to a block index higher than current block index
- Remove the lockfile for the RSFetcher process
- Replace `counterparty.api.db` with `state.db`
- Add `issuances.asset_events`, `dispenses.btc_amount` and `mempool.addresses` field in Ledger DB
- Remove duplicate table from `state.db`
- Add `api/dbbuilder.py` module and refactor migrations to build `state.db`
- Use migrations to rollback `state.db`
- Remove rollback event by event in `state.db`
- Add version checking for `state.db`: launch a rollback when a reparse or a rollback is necessary for the Ledger DB
- Use `event_hash` to detect Blockchain reorganization and launch a rollback of `state.db`
- Rollback State DB from Ledger DB rather than rolling back event-by-event
- Remove duplicate tables from State DB
- Add `issuances.asset_events`, `dispenses.btc_amount` and `mempool.addresses` field to the Ledger DB
- Add version checking for State DB: launch a rollback when a reparse or a rollback is necessary for the Ledger DB
- Refactor functions to refresh `util.CURRENT_BLOCK_INDEX` in `wsgi.py`
- Remove `compose_utxo()` function and clean `compose_attach()` and `compose_detach`
- Add `transaction_type` field in `transactions` table
- Clean `block.parse_tx()`; One `TRANSACTION_PARSED` event for each `NEW_TRANSACTION` event
- API Watcher checks reorg if no event to parse and not on each block
- Remove `compose_utxo()` function and clean up `compose_attach()` and `compose_detach`
- Add `transaction_type` field to the`transactions` table
- Refactor `block.parse_tx()`
- Include only one `TRANSACTION_PARSED` event for each `NEW_TRANSACTION` event
- Fix API Watcher reorg checks
- Use `multiprocessing.Event` to stop API process when the Ledger process dies
- Catch up with RPC when ZMQ is late
- Restart RSFetcher when it returns None too many times
- Exclude transaction with SIGHASH
- Restart RSFetcher when it returns `None` too many times

## API

- Add `description_locked` in asset info
- Tweak `compose_movetoutxo` documentation
- Add `transaction_type` parameter for Get Transactions endpoints
- Add `transaction_types_count` table in State DB
- Exclude zero balances when retreiving balances by address and asset
- Add `description_locked` to the `asset_info` field
- Add `transaction_type` parameter for `Get Transactions` endpoints
- Add `transaction_types_count` table to the State DB
- Add the following routes:
- `/v2/transactions/counts`
- `/v2/blocks/<int:block_index>/transactions/counts`
- `/v2/addresses/<address>/transactions/counts`
- Add sortable field `asset_longname` in `balances` table
- Add the ability to retrieve balances by asset long name
- Add sortable field `asset_longname` to the `balances` table
- Add the ability to retrieve balances by asset longname
- When composing an attach / move, use 10,000 sats for the value, rather than 546
- Add `send_type` filter for `sends` table (`send`, `attach`, `move` or `detach`)
- Document how mempool events work
- Add `events` field in transactions results when `verbose=true`
- Add the `send_type` filter for `sends` table (`send`, `attach`, `move` or `detach`)
- Add `events` field to transactions results when `verbose=true`

## CLI

- Add `build-state-db` command
- `rollback` and `reparse` commands trigger a re-build of the State DB
- Add current process name and current thread name in logging messages
- Have `rollback` and `reparse` commands trigger a re-build of the State DB
- Add current process name and current thread name to log messages
- Add `--log-exclude-filters` and `--log-include-filters` flags


# Credits

* droplister
* Ouziel Slama
* Adam Krellenstein
- Ouziel Slama
- Warren Puffet
- Adam Krellenstein

0 comments on commit e8e0f85

Please sign in to comment.