Skip to content

Releases: stacks-network/stacks-core

Release 2.0.10

18 Mar 17:01
59363a2
Compare
Choose a tag to compare

This is a low-priority hotfix release to address two bugs in the block downloader. The chainstate directory of 2.0.10 is compatible with 2.0.9. If booting up a node from genesis, or an existing node has stalled in downloading blocks, this hotfix is necessary for your node.

Fixed

  • Bug in microblocks inventory vector calculation that included invalidated microblocks as present bit. This bug will impact nodes booting up from genesis, but not affect nodes currently running at the chain tip (#2518).
  • Bug in microblocks downloader logic that would cause the stacks-node to fail to wake-up to process newly arrived microblocks in certain instances (#2491).

Release 2.0.9

04 Mar 23:35
e7f178b
Compare
Choose a tag to compare

This is a low-priority hotfix release that patches a TOCTTOU bug in how the node handles blocks uploaded to it by 3rd parties, which if executed may lead to a denial-of-service (node crash) in the node while it is bootstrapping. People who run public nodes should upgrade to this release on their next node restart. Private nodes, such as those running behind a NAT or are otherwise unreachable from the Internet, are not affected.

Release 2.0.8

03 Mar 00:48
dc66d07
Compare
Choose a tag to compare

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 in clarity-cli and unit tests (no changes in stacks-node
    behavior).

Release 2.0.7

26 Feb 10:20
7b61252
Compare
Choose a tag to compare

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

15 Feb 23:58
d8dbbca
Compare
Choose a tag to compare

[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

13 Feb 05:08
ad14520
Compare
Choose a tag to compare

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

08 Feb 04:41
1c94f69
Compare
Choose a tag to compare
Merge pull request #2426 from blockstack/fix/disable-atlas

Disabling Atlas

Release 2.0.3

05 Feb 01:52
107846a
Compare
Choose a tag to compare

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 the stacks-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
    next LeaderBlockCommit operations using the UTXOs of the previous
    transaction with a replacement by fee. The fee increase increments
    can be configured with the setting rbf_fee_increment.

Release 2.0.2

15 Jan 19:04
Compare
Choose a tag to compare
cargo fmt

Release 2.0.1

14 Jan 18:48
7b83c6f
Compare
Choose a tag to compare
Merge pull request #2344 from blockstack/fix/peer-versions

Fix: peer version to 0x18 rather than 0x17