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
.