Weekly Stacks 2.0 Progress Thread

December 16, 2020

Third Week of Xenon

Hello again, Blockstack Brigade! In case you missed it, as of Tuesday, Stacks 2.0 is officially feature complete! This is an exciting milestone for Stacks 2.0, and signals that the final stretch is upon us. Over the next month, PBC, the Stacks Foundation, and the entire community will be tightening the screws and polishing up the stacks-blockchain to make sure it’s totally prepared for the big release. We’re already looking forward to seeing you at the launch event!

Also not to be missed, a brand new Stacks 2.0 Whitepaper came out Monday to provide an easy-to-understand overview of the network and ecosystem.

Last, a quick note for STX Miners: There is an important update related to Daemon Technologies’ Mine to 1 Million STX Challenge you should see on the forum.

For expanded details on all of the technical updates, click through the items below to view original Github issue:

stacks-blockchain: v24.0.0.0-xenon

  • This PR implements microblock fork-handling and basic mining. → Github
    • Refactors the chainstate storage and indexing logic for microblocks.
    • Updates the block inventory and download logic to use the new microblock indexing system.
    • Implements the PoisonMicroblock transaction variant.
    • It modifies the anchored block mining logic to detect microblock forks in the microblock stream it confirms.
    • Removes the miner payment cache, and removes coinbase sharing and smoothing.
  • Fixed the bug that NCC group discovered in the MARF proof verifier. → Github
  • Allowed a CostTracker to intercept the cost calculation of contract-call invocations when specific targets are used. → Github
  • Enhanced Clarity Tuples. → Github
    • Removes implicit tuple syntax.
    • Supports non-tuple key-values in data maps.
  • [Stacks v1 → v2 Upgrade] Imported STX balances & vesting schedules into Stacks 2.0. → Github
    • Uses a Rust build script to compress the STX balance and vesting contents from chainstate.txt into deflate streams.
    • During the STX balance and vesting export, mapped the placeholder addresses to the known STX addresses. → Github
  • Implemented the proposed coinbase schedule and the pay-forward of missed sortitions scheme. → Github
  • The map function in Clarity is now variadic and allows functions that takes more than one argument, mapping them over a number of sequences matching their arity. → Github
  • Now we do not bypass read-only checks for writing operations. → Github
  • Added a new Github workflow to automate the change, commit, and PR creation of updating the chainstate and chainstate consensus files for the V1 → V2 migration. → Github
  • Introduced a merge function into Clarity. → Github
  • Cost Function Voting Contract has been implemented. → Github
  • Implemented the networking parts of Atlas along with a revisited BNS/SNS contract. → Github
  • chainstate.txt genesis data hashed in v2/info endpoint. → Github
  • This PR made next’s Xenon mode use Xe as the magic bytes for Bitcoin operations. → Github
  • Implemented auto-unlock vesting schedules for STX tokens. → Github
  • Implemented three conveniences for Clarity. → Github
    • let* - This is an iterative let, where binding definitions may use prior binding values in the same let.
    • element-at - Get the ith element from a sequence.
    • contains - Does the given sequence contain an entry that is-eq to the given item?
  • We changed a config variable name from mstx_balance to ustx_balance in tomls and readmes. → Github
  • Fixed an inconsistent mempool admission. → Github
  • Support is complete for transferring STX via On-Bitcoin operations . → Github
  • Fixed an issue where tx-log was not building correctly. → Github
  • Committed production Stacks 1.0 chainstate.txt (block 653759). → Github

explorer: v1.1.1

  • Updated the testnet environment variable. → Github

docs

  • Added a new guide instructing users of the Angular framework how to work with Blockstack auth/connect. → Github
  • Refactored mobile search state to be in global state, added icon to trigger open. → Github
  • Added redirects for mining and stacking pages. → Github
  • Added missing redirects from top level chapter changes. → Github
  • Added hardware requirements for running a miner. → Github
  • Updated the stacking integration guide to use the new stacking lib. → Github
  • Added instructions for stacking delegation. → Github
  • Fixed incorrect links on Bounties page. → Github
  • Fixed incorrect Bitcoin ports to start mining. → Github
  • Fixed old ‘for our current token holders’ link. → Github

ux

  • Updated Dockerfile/script for extensions such as in Firefox. → Github
  • Fixed extension build instructions, and simplified the build commands using npm scripts. → Github
  • Improvements around extension packaging. → Github
    • Create a signed Firefox extension (.xpi file) in Github Actions.
    • Tweaked the build-ext.sh script to create the zip file in the repository root by default.
    • Changed the default zip file name to connect-extension.zip.
    • README updates around the extension, mainly consolidating it all in one place.

stacks-wallet: v3.1.1

  • Continuous Integration: Run TS Compiler. → Github
    • Run type check on ci, fix type errors, add skipLibCheck.
    • Automated Release. → Github
  • Bumped major version. → Github
    • Forced a “breaking change”, committing without review.
  • Testing of breaking change. → Github