-
Notifications
You must be signed in to change notification settings - Fork 206
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
dcdecdb
commit e8e0f85
Showing
1 changed file
with
41 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |