Releases: stacks-network/stacks-core
Release 2.0.8
Upgrade priority: high for miners; medium for everyone else.
This hotfix repairs a denial-of-service vulnerability in the way the Stacks node processes smart contracts. A buggy or malicious smart contract transaction can cause the node to crash while processing it. Node operators should upgrade to this release as soon as possible.
If your node crashes due to this bug, you will need to restart with a new working directory. The denial-of-service bug, if executed, will corrupt the chainstate database. If you restart your node yourself, then you do not need to re-sync.
This is a hotfix release for improved handling of static analysis storage and
improved at-block
behavior. The chainstate directory of 2.0.8 is compatible with
the 2.0.7 chainstate.
Fixed
- Improved static analysis storage
at-block
behavior inclarity-cli
and unit tests (no changes instacks-node
behavior).
Release 2.0.7
This is an emergency hotfix that prevents the node from accidentally deleting
valid block data if its descendant microblock stream is invalid for some reason.
Fixed
- Do not delete a valid parent Stacks block.
Release 2.0.6
[2.0.6] - 2021-02-15
The database schema has not changed since 2.0.5, so when spinning up a
2.0.6 node from a 2.0.5 chainstate, you do not need to use a fresh
working directory. Earlier versions' chainstate directories are
incompatible, however.
Fixed
- Miner RBF logic has two "fallback" logic changes. First, if the RBF
logic has increased fees by more than 50%, do not submit a new
transaction. Second, fix the "same chainstate hash" fallback check. - Winning block txid lookups in the SortitionDB have been corrected
to use the txid during the lookup. - The miner will no longer attempt to mine a new Stacks block if it receives a
microblock in a discontinuous microblock stream.
Release 2.0.5
Note: This release contains a database schema change and therefore a fresh working directory must be used to spin up the node.
During this, miners are recommended to use the new --mine-at-height
command line argument which will instruct the node to not mine until the Stacks chain has synchronized to the provided Stacks block height.
Added
- Miner heuristic for handling relatively large or computationally
expensive transactions: such transactions will be dropped from the
mempool to prevent miners from re-attempting them once they fail.
Miners can also now continue processing transactions that are
behind those transactions in the mempool "queue".
Fixed
- Miner block assembly now uses the correct block limit available via
the node config tx_fees_streamed_produced
fees are included in miner coinbase
events for event observers- SQLite indexes are now correctly created on database instantion
Changed
- STX unlock events are now sent over the events endpoint bundled
into an associated unlock transaction - Atlas attachments networking endpoints are disabled for this
release, while networking issues are addressed in the
implementation
Release 2.0.4
Merge pull request #2426 from blockstack/fix/disable-atlas Disabling Atlas
Release 2.0.3
Note: This release contains a database schema change and therefore a fresh working directory must be used to spin up the node.
During this, miners are recommended to use the new --mine-at-height
command line argument which will instruct the node to not mine until the Stacks chain has synchronized to the provided Stacks block height.
Added
stacks-node --mine-at-height
commandline option, which tells the
stacks-node
not to mine until it has synchronized to the given
Stacks block height- A new RPC endpoint
/v2/blocks/upload/{consensus_hash}
that accepts
an uploaded Stacks block for a given sortition
Changed
- Enabled WAL mode for the chainstate databases. This allows much more
concurrency in thestacks-node
, and improves network performance
across the board. NOTE: This changed the database schema, any
running node would need to re-initialize their nodes from a new chain
state when upgrading. - Default value
wait_time_for_microblocks
: from 60s to 30s - The mempool now performs more transfer semantics checks before admitting
a transaction (e.g., reject if origin = recipient): see issue #2354 - Improved the performance of the code that handles
GetBlocksInv
p2p
messages by an order of magnitude. - Improved the performance of the block-downloader's block and
microblock search code by a factor of 5x.
Fixed
- Miner mempool querying now works across short-lived forks: see issue #2389
- JSON deserialization for high-depth JSON objects
- Atlas attachment serving: see PR #2390
- Address issues #2379, #2356, #2347, #2346. The tracking of the
LeaderBlockCommit
operations inflight is improved, drastically
reducing the number of block commit rejections. When
aLeaderBlockCommit
is not included in the Bitcoin block it was
targeting, it is condemned to be rejected, per the Stacks
consensus. To avoid wasting BTC, the miner now tries to send its
nextLeaderBlockCommit
operations using the UTXOs of the previous
transaction with a replacement by fee. The fee increase increments
can be configured with the settingrbf_fee_increment
.
Release 2.0.2
cargo fmt
Release 2.0.1
Merge pull request #2344 from blockstack/fix/peer-versions Fix: peer version to 0x18 rather than 0x17
Release 2.0.0
Merge pull request #2343 from blockstack/fix/sleep-syncctl sleep 1s if we're in the first reward cycle
v22.2.0.0 - FINAL STACKS 1.0 BUILD
FOR STACKS 1.0 DEPLOYMENTS ONLY
Looking for a Stacks 2.0 release? Check the latest releases, this release is for Stacks 1.0
This is the FINAL release for Stacks 1.0. Any existing Stacks 1.0 deployments should upgrade immediately.
It includes the functionality outlined in this forum post. Specifically
- The node will watch the
.miner
namespace. Once 20 names are registered, a "threshold trigger" is activated - 300 blocks after the threshold trigger is activated, the the node will stop accepting any further Stacks 1.0 transactions