Releases: CounterpartyXCP/counterparty-core
v10.6.0
Release Notes - Counterparty Core v10.6.0 (2024-10-25)
This release includes a protocol change to fix a regression for the case when there have been multiple dispensers opened at a single address. The bug prevents users from triggering dispensers at addresses where there have previously been closed dispensers (rather than simply re-opened dispensers).
Upgrading
This release is a protocol change from mainnet block 868,300 (in about one week). It also includes a backwards-incompatible change in the API:
/v2/addresses/<address>/balances/<asset>
and/v2/assets/<asset>/balances/<address>
now return a list that may include balances attached to UTXOs of<address>
.
This release also includes a bugfix for chained UTXO movements within the same block. This bugfix requires an automatic reparse starting from block 867000. Given the current slowdowns in catching up with the API database, we recommend using counterparty-server bootstrap
before restarting your server.
IMPORTANT All wallets should use the compose_dispense()
call to trigger dispenses rather than the legacy create_send()
. Due to the above bug, using create_send()
can make it possible for users to send BTC to an address where the dispenser will fail. All node hosts should migrate to compose_dispense()
ASAP.
ChangeLog
Protocol Changes
- Block 868300: Dispenses are now triggered if at least one dispenser on the address is valid rather than only if all of them are valid.
Bugfixes
- Catch invalid pubkeys in the compose API correctly
- Run reparse only if necessary
- Fix
message_data
when retrieving information about fairminter or fairmint transactions - Use
threading.Event()
to cleanly stop threads and subprocesses started bycounterparty-server
- Don't update UTXOs balances cache on mempool transaction
- Update UTXOs balances cache before transacation parsing to catch chained UTXO moves in the same block
Codebase
- Use a lock file for RS Fetcher thread
- Add checkpoint for block 867290
API
- Have
/v2/addresses/<address>/balances/<asset>
and/v2/assets/<asset>/balances/<address>
now return a list that may include balances attached to UTXOs of<address>
- Add the following routes:
/v2/blocks/<int:block_index>/fairminters
/v2/blocks/<int:block_index>/fairmints
/v2/compose/attach/estimatexcpfees
- Add
status
argument for Fairminters routes - Make
/blocks/last
faster by adding an index to theledger_hash
field - Have
/v2/addresses/<address>/sweeps
now also search by thedestination
field - Add
asset_events
argument for Issuances routes - Raise an error on
fairmint.compose()
when the fairminter is free and the quantity is not zero - Add
get_asset
andgive_asset
arguments for/v2/orders
route
CLI
- Add support for
--bootstrap-url
tostart
command
Credits
- Ouziel Slama
- Adam Krellenstein
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
issuances
table 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_quantity
andcommission
) - Fix Gunicorn stability issue due to bad signal handling
- Use a different log file for each Gunicorn worker
- Populate
address_events
table on new fairmint and fairminter - Have bootstrap respect the
--data-dir
flag - Add normalized quantities to fairminters and fairmints API
Codebase
- Redo mandatory reparses for all pre-release versions
- Add missing index to
address_events
table - Add missing compound index to
issuances
table - Add missing compound index on
status
,tx_index
andasset_longname
- Optimize database
rowtracer
- Optimize
ledger.get_last_issuance()
,ledger.asset_issued_total()
andledger.asset_destroyed_total()
API
- Have
--force
properly bypass checks that node is caught up - Have
/v2/blocks/last
return the last-parsed block and not the block currently being parsed - Change route
/v2/fairminters/<tx_hash>/mints
to/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-size
and--max-log-file-rotations
flags - Disable mempool synchronization when
--no-mempool
is 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
DEBUG
level - Have
--force
skip mandatory reparses - Add
bootstrap-always
option for the--catch-up
flag - Replace
--database-file
flag by--data-dir
flag - Have GUnicorn log
TRACE
Credits
- Ouziel Slama
- Adam Krellenstein
v10.5.0-rc.1
Release Notes - Counterparty Core v10.5.0-rc.1(2024-10-20)
This is a hotfix release and includes fixes for a number of critical stability bugs in the nodes software as well as significant performance optimizations for parsing Fair Mint transactions.
Upgrading
This update requires an automatic reparse from block 865999.
ChangeLog
Bugfixes
- Fix non-deterministic bug in asset name generation
- Fix subasset name in
issuances
table when created by a fairminter - Fix missing balance check for fairminter creation
- Fix missing check of locked description
- Fix missing compound index on
status
,tx_index
andasset_longname
- Fix checking when a fairmint reach the hard cap
- Fix divisibility check when creating a fairminter
- Fix description checking when creating a fairminter
Codebase
- Mandatory reparse for all alphas and betas
- Add missing index to
address_events
table - Add missing compound index to
issuances
table - Support several required reparsing by major version
- Optimize database
rowtracer
- Optimize
ledger.get_last_issuance()
,ledger.asset_issued_total()
andledger.asset_destroyed_total()
- Tweak thread handling logic
API
- Have
--force
bypass checks that node is caught up - Have
/v2/blocks/last
return the last parsed block and not the block currently being parsed - Change route
/v2/fairminters/<tx_hash>/mints
to/v2/fairminters/<tx_hash>/fairmints
- Add the following new routes:
/v2/fairmints
/v2/fairmints/<tx_hash>
CLI
- Add
--max-log-file-size
and--max-log-file-rotations
flags - Disable mempool synchronization when
--no-mempool
is passed - Make the number of Waitress threads configurable
- Make the number of Gunicorn threads per worker configurable
- Log all configuration options on startup at
DEBUG
level
Credits
- Ouziel Slama
- Adam Krellenstein
v10.5.0-alpha.3
Release Notes - Counterparty Core v10.5.0-alpha.3 (2024-10-19)
This is a hotfix release to fix a non-deterministic bug in asset name generation.
Upgrading
This update requires an automatic reparse from block 865999.
ChangeLog
Bugfixes
- Fix non-deterministic bug in asset name generation
- Fix sub-asset name in
issuances
table when created by a fairminter - Fix missing index on
address_events.event_index
- Fix missing balance checking when creating a fairminter
- Fix missing check of locked description
- Fix missing compound index on
status
,tx_index
andasset_longname
- Fix divisibility checking when creating a fairminter
Codebase
- Support several required reparsing by major version
- Optimize database
rowtracer
- Optimize
ledger.get_last_issuance()
andledger.asset_issued_total()
API
- Have
--force
bypass checks that node is caught up /v2/blocks/last
returns the last parsed block and not the block currently being parsed
CLI
- Add
--max-log-file-size
and--max-log-file-rotations
flags
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.5.0-alpha.2
Release Notes - Counterparty Core v10.5.0 (2024-10-18)
This is a hotfix release to fix a non-deterministic bug in asset name generation.
Upgrading
This update requires an automatic reparse from block 865999.
ChangeLog
Bugfixes
- Fix non-deterministic bug in asset name generation
- Fix sub-asset name in
issuances
table when created by a fairminter - Fix missing index on
address_events.event_index
- Fix missing balance checking when creating a fairminter
- Fix missing check of locked description
- Fix missing compound index on
status
,tx_index
andasset_longname
Codebase
- Support several required reparsing by major version
- Optimize database
rowtracer
API
CLI
- Add
--max-log-file-size
and--max-log-file-rotations
flags
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.5.0-alpha.1
Release Notes - Counterparty Core v10.5.0 (2024-10-18)
This is a hotfix release to fix a non-deterministic bug in asset name generation.
Upgrading
This update requires an automatic reparse from block 865999.
ChangeLog
Bugfixes
- Fix non-deterministic bug in asset name generation
- Fix sub-asset name in
issuances
table when created by a fairminter
Codebase
- Support several required reparsing by major version
API
CLI
- Add
--max-log-file-size
and--max-log-file-rotations
flags
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.4.8
Release Notes - Counterparty Core v10.4.8 (2024-10-17)
This is a hotfix release to fix a number of additional issues that arose with the recent protocol changes.
Upgrading
This is not a protocol change, and no database reparsing is necessary.
ChangeLog
Bugfixes
- Fix fair minting rollback
- Fix API server crash due to missing sanity check
- Retry maximum 10 times on Bitcoin Core RPC call error
Codebase
API
CLI
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.4.7
Release Notes - Counterparty Core v10.4.7 (2024-10-17)
This is a hotfix release to fix API v1 with Waitress.
Upgrading
ChangeLog
Bugfixes
- Fix API v1 with Waitress (remove hop-by-hop headers)
Codebase
- Check API v1 in regtest test suite
API
- Use
127.0.0.1
insteadlocalhost
as default forAPI_HOST
andRPC_HOST
(to force IPv4)
CLI
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.4.6
Release Notes - Counterparty Core v10.4.6 (2024-10-17)
This is a Hotfix release to address the slowness of block parsing.
Upgrading
ChangeLog
Bugfixes
Codebase
- Use of RAM cache to verify balances attached to a UTXO
API
CLI
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein
v10.4.5
Release Notes - Counterparty Core v10.4.5 (2024-10-16)
This is a minor release with a number of bugfixes and minor improvements to the API.
Upgrading
This release is not a protocol change and does not require a database reparse. However a minor bug in the reorg-handling logic was detected and fixed. If your node hashes for block 865699 were not equal to L: 6d64717, TX: f71fa92, M: 8734a58, then you should either rollback to 865690 or restart with the latest bootstrap file. This bug is not believed to have affected node consensus.
ChangeLog
Bugfixes
- Fix
TypeError
inis_server_ready()
function - Handle
AddressError
in API calls - Fix RSFetcher pre-fetcher queue
- Fix RSFetcher blockchain reorganization management
Codebase
- Retry when Bitcon Core returns a 503 error
API
- Use UTXOs locks when
unspents_set
is used (formerlycustom_inputs
) - Tweak and fix
asset_events
field (new eventstransfer
andchange_description
;reissuance
only ifquantity
greater than 0;lock
also when locked with thelock
argument) - Add Waitress WSGI server support and make it the default
- Fix missing parentheses in SQL queries
- Fix
dispenser.close_block_index
type in API database - Set CORS in pre-flight requests
CLI
Credits
- Ouziel Slama
- Warren Puffett
- Adam Krellenstein