Weekly Stacks 2.0 Progress Thread

12.23.2020

Fourth Week of Xenon
Happy Holidays, Stackers! We’ve got a huge batch of technical updates under the tree this week. As of last week, code for the Stacks 2.0 mainnet is officially feature complete, and the next month will be devoted to testing, fixing bugs, improving performance, and writing documentation. The launch event in January is sure to be quite the celebration, so sign up here to make sure you don’t miss the party!

For a more descriptive overview of technical updates, examine the specific Github pull requests:

stacks-blockchain: v24.2.1.0-xenon

  • v2 of Xenon merged from next to master. → Github
  • Implemented additional Clarity token functions (ft-get-supply, ft-burn?, nft-burn?). → Github
  • Refactored the runtime_cost function to take a Vec instead of a single u64, enabling Clarity cost functions to take multiple size input args. → Github
  • Added a read-only method that returns a price, given a namespace and a name (it previously required to pass the price function). → Github
  • Made the prepare phase proof-of-burn only. → Github
    • It tweaks PoxConstants so that reward_slots() is the difference between the reward cycle length and prepare phase length.
    • We’ve also shortened the prepare phase (from 240 to 100 blocks).
  • Added transaction fees to the miner’s block reward. → Github
    • Per SIP-001, each miner gets all of its anchored block’s transaction fees, as well as 40% of the microblocks it produces, as well as 60% of the microblocks it confirms.
  • This PR integrated the cost voting contract with the boot code and LimitedCostTracker. → Github
  • This PR addresses miner commitment issues by introducing a “burn parent modulus” to allow the stacks-node to detect when a commitment may be missed. → Github
    • This PR also updates the smoothing function to: min(last_burn, median).
  • Resolved remaining placeholder addresses. → Github
  • We now allow small test genesis files to be used in mocknet mode. → Github

stacks-blockchain-api: v0.35.1

  • This PR implemented batched postgres inserts using prepared statements. → Github
    • Local benchmarks have the STX balance imports taking ~15 seconds with this PR, vs the previous ~30 minutes.
  • Set a temporary limit of 200 STX asset events in a given transaction. → Github
    • A couple endpoints that returned the stx-mint events for the genesis transaction were extremely resource intensive due to loading in ~330k at once.

docs

  • Updated mining.md to fix various typographical errors. → Github
  • Updated API documentation from the latest in stacks-blockchain. → Github
  • Correctly configured s, mstx_balance, and ustx_balance in stacks-node config. → Github
  • Added a new pull request template. → Github
  • Added an example for usage of UTF-8 strings. → Github
  • Added a URL checker and fixed broken URLs. → Github
  • Updated Stacks overview page. → Github
  • Improved CLI references. → Github
  • Added Stacks Blockchain API guide. → Github
  • Update CLI guide content. → Github
  • Added language style checker, fixed random style errors. → Github
  • Updated the CLI references with correct explorer URLs. → Github
  • Removed API from top section in overview. → Github
  • This PR changed the bootstrap node from testnet-miner.blockstack.org to xenon.blockstack.org. → Github
  • Added a Github action for vale checks. → Github
  • Redesigned Clarity onboarding. → Github

stacks-wallet: v3.1.1

  • Added a “Terms of Use” page. → Github
  • Bumped ini (format parser and serializer for nodes) from 1.3.5 to 1.3.8 in /app. → Github

Resources:

Note: We’re aware of instability issues currently on the testnet, and are actively working on addressing node crashes on Xenon.