v10.5.0
Release Notes - Counterparty Core v10.5.0 (2024-10-22)
This release includes fixes for a number of critical stability bugs as well as significant performance optimizations for parsing Fair Mint transactions. We have also made many other bugfixes and tweaks to the API and CLI in response to user feedback.
Upgrading
IMPORTANT: This update requires an automatic reparse from block 865999. However, reparses have become very slow recently due to the high transaction volume. We recommend that users upgrade to this version (even if they were running a pre-release version) either by bootstrapping their databases or by rebuilding them from scratch. You can bootstrap either by running counterparty-server bootstrap (if your node is not Dockerized) or by temporarily adding --catch-up=bootstrap-always as an argument to counterparty-server in your Docker Compose file. If you would like to rebuild your node from scratch, simply delete your existing database and restart the server.
ChangeLog
Bugfixes
- Fix critical non-determinism in asset name generation
- Fix subasset name in
issuancestable when created by a fairminter - Fix check for when a fairmint reachs its hard cap
- Fix missing check for locked asset descriptions
- Fix missing balance check for fairminter creation
- Fix divisibility check for fairminter creation
- Fix description check for fairminter creation
- Fix null fields in fairminters API (
earned_quantity,paid_quantityandcommission) - Fix Gunicorn stability issue due to bad signal handling
- Use a different log file for each Gunicorn worker
- Populate
address_eventstable on new fairmint and fairminter - Have bootstrap respect the
--data-dirflag - Add normalized quantities to fairminters and fairmints API
Codebase
- Redo mandatory reparses for all pre-release versions
- Add missing index to
address_eventstable - Add missing compound index to
issuancestable - Add missing compound index on
status,tx_indexandasset_longname - Optimize database
rowtracer - Optimize
ledger.get_last_issuance(),ledger.asset_issued_total()andledger.asset_destroyed_total()
API
- Have
--forceproperly bypass checks that node is caught up - Have
/v2/blocks/lastreturn the last-parsed block and not the block currently being parsed - Change route
/v2/fairminters/<tx_hash>/mintsto/v2/fairminters/<tx_hash>/fairmints - Add the following new routes:
/v2/fairmints/v2/fairmints/<tx_hash>
/v2/addresses/<address>/balances/<asset>and/v2/assets/<asset>/balances/<address>now return a list that may include balances attached to UTXOs of<address>
CLI
- Add
--max-log-file-sizeand--max-log-file-rotationsflags - Disable mempool synchronization when
--no-mempoolis passed - Make the number of Waitress threads configurable
- Make the number of Gunicorn threads per worker configurable
- Log all configuration options on startup at the
DEBUGlevel - Have
--forceskip mandatory reparses - Add
bootstrap-alwaysoption for the--catch-upflag - Replace
--database-fileflag by--data-dirflag - Have GUnicorn log
TRACE
Credits
- Ouziel Slama
- Adam Krellenstein