Stacks Blockchain Versions Save

The Stacks blockchain implementation

2.1.0.0.0-rc3

1 year ago

2.05.0.6.0

1 year ago

Changed

    • The /v2/neighbors endpoint now reports a node's bootstrap peers, so other nodes can find high-quality nodes to boot from (#3401)
    • If there are two or more Stacks chain tips that are tied for the canonical tip, the node deterministically chooses one independent of the arrival order (#3419).
    • If Stacks blocks for a different fork arrive out-of-order and, in doing so, constitute a better fork than the fork the node considers canonical, the node will update the canonical Stacks tip pointer in the sortition DB before processing the next sortition (#3419).

Fixed

    • The node keychain no longer maintains any internal state, but instead derives keys based on the chain tip the miner is building off of. This prevents the node from accidentally producing an invalid block that reuses a microblock public key hash (#3387).
    • If a node mines an invalid block for some reason, it will no longer stall forever. Instead, it will detect that its last-mined block is not the chain tip, and resume mining (#3406).

2.05.0.5.1

1 year ago

Changed

  • The new minimum Rust version is 1.61
  • The act of walking the mempool will now cache address nonces in RAM and to a temporary mempool table used for the purpose, instead of unconditionally querying them from the chainstate MARF. This builds upon improvements to mempool goodput over 2.05.0.4.0 (#3337).
  • The node and miner implementation has been refactored to remove write-lock contention that can arise when the node's chains-coordinator thread attempts to store and process newly-discovered (or newly-mined) blocks, and when the node's relayer thread attempts to mine a new block. In addition, the miner logic has been moved to a separate thread in order to avoid starving the relayer thread (which must handle block and transaction propagation, as well as block-processing). The refactored miner thread will be preemptively terminated and restarted by the arrival of new Stacks blocks or burnchain blocks, which further prevents the miner from holding open write-locks in the underlying chainstate databases when there is new chain data to discover (which would invalidate the miner's work anyway). (#3335).

Fixed

  • Fixed pow documentation in Clarity (#3338).
  • Backported unit tests that were omitted in the 2.05.0.3.0 release (#3348).
  • Fixed event-emitter panic on PoisonMicroblock transaction (#3356)

Full Changelog: https://github.com/stacks-network/stacks-blockchain/compare/2.05.0.4.0...2.05.0.5.1

2.05.0.5.0

1 year ago

Changed

  • The new minimum Rust version is 1.61
  • The act of walking the mempool will now cache address nonces in RAM and to a temporary mempool table used for the purpose, instead of unconditionally querying them from the chainstate MARF. This builds upon improvements to mempool goodput over 2.05.0.4.0 (#3337).
  • The node and miner implementation has been refactored to remove write-lock contention that can arise when the node's chains-coordinator thread attempts to store and process newly-discovered (or newly-mined) blocks, and when the node's relayer thread attempts to mine a new block. In addition, the miner logic has been moved to a separate thread in order to avoid starving the relayer thread (which must handle block and transaction propagation, as well as block-processing). The refactored miner thread will be preemptively terminated and restarted by the arrival of new Stacks blocks or burnchain blocks, which further prevents the miner from holding open write-locks in the underlying chainstate databases when there is new chain data to discover (which would invalidate the miner's work anyway). (#3335).

Fixed

  • Fixed pow documentation in Clarity (#3338).
  • Backported unit tests that were omitted in the 2.05.0.3.0 release (#3348).

2.05.0.5.0-rc1

1 year ago

2.05.0.4.0

1 year ago

[2.05.0.4.0]

Fixed

  • Denormalize the mempool database so as to remove a LEFT JOIN from the SQL query for choosing transactions in order by estimated fee rate. This drastically speeds up mempool transaction iteration in the miner (#3314)

2.05.0.4.0-alpha

1 year ago

2.05.0.3.0

1 year ago

Upgrade instructions can be found here: https://gist.github.com/wileyj/379e6a4d11983e15449918732d75065a

Changelog:

[2.05.0.3.0] - 2022-8-31

Added

  • Added prometheus output for "transactions in last block" (#3138).
  • Added envrionement variable STACKS_LOG_FORMAT_TIME to set the time format stacks-node uses for logging. (#3219) Example: STACKS_LOG_FORMAT_TIME="%Y-%m-%d %H:%M:%S" cargo stacks-node
  • Added mock-miner sample config (#3225)

Changed

  • Updates to the logging of transaction events (#3139).
  • Moved puppet-chain to ./contrib/tools directory and disabled compiling by default (#3200)

Fixed

  • Make it so that a new peer private key in the config file will propagate to the peer database (#3165).
  • Fixed default miner behavior regarding block assembly attempts. Previously, the miner would only attempt to assemble a larger block after their first attempt (by Bitcoin RBF) if new microblock or block data arrived. This changes the miner to always attempt a second block assembly (#3184).
  • Fixed a bug in the node whereby the node would encounter a deadlock when processing attachment requests before the P2P thread had started (#3236).
  • Fixed a bug in the P2P state machine whereby it would not absorb all transient errors from sockets, but instead propagate them to the outer caller. This would lead to a node crash in nodes connected to event observers, which expect the P2P state machine to only report fatal errors (#3228)
  • Spawn the p2p thread before processing number of sortitions. Fixes issue (#3216) where sync from genesis paused (#3236)
  • Drop well-formed "problematic" transactions that result in miner performance degradation (#3212)
  • Ignore blocks that include problematic transactions

2.05.0.3.0-rc0

1 year ago

fix-3216-startup-lock

1 year ago