8 Weeks in to Argon
Another exciting week of technical updates for Stacks 2.0 as the protocol continues to mature. For an in-depth description of the current testnet phase, check out this forum post from Diwaker Gupta, Blockstack PBC’s Head of Engineering.
In short, the testnet hit some road bumps last week and encountered reliability issues. Fixes required a handful of resets throughout the week, so we appreciate your patience as the issue was debugged.
Reminder: There are a multitude of bounties available for uncovering bugs in the codebase or building tools that help other developers. → Bounties
Here are highlights from the past week:
- A monster, high-priority fix was applied to trie_ancestor_hash_bytes_cache usage in MARF. This PR corrects an error in the MARF storage that would lead to invalid states. Debugging was led by Aaron Blankstein (Blockstack PBC) and Jude Nelson (Stacks Foundation) — they discovered that the cache needed to be cleared whenever there is a change in the open block. → Full Post-Morten
- Functionality was added that allows easier detection of MARF corruption. This PR adds a high-level testcase in which we confirm that it is possible to render a StacksChainState in an unusable state. It also adds another low-level tool to blockstack-core to replay a chainstate’s blocks and sortitions. → Github
- The DevEx team has started monthly testing with developers never previously exposed to Blockstack in order to evaluate documentation and tutorials. Thanks to this feedback, numerous fixes were applied to reduce obstacles and improve experience. → Github
- Additional features were added to the Explorer Sandbox. Logging in with Blockstack Connect is now available, Sandbox UI has been improved, and minor performance tweaks were pushed. → Github
- Fixed an issue in stacks-transactions-js that caused the broadcastTransaction function to return transaction ID incorrectly formatted with quotes. → Github
- A big shoutout to community member PSQ for his efforts identifying bugs, fixing typos, and cleaning up repositories. This week there was a fantastic discussion around bad nonce output messages. → Github
- PSQ also helped fine-tune the reward ratio decrease per cycle.
- Helpful debug symbols were added to our release profile, plus improvements to debug logging. → Github
- A PR was merged to stacks-blockchain-api that requires an account property in order to check account balance. → Github
- DevEx extraordinaire Alex Graebe did his Sidecar chores this week and added improved docs for core node, address, and search endpoints, better document request and response fields, and a “Run in Postman” button. → Github
- ICYMI - The sidecar repository has been renamed to stacks-blockchain-api for better recognizability. → Github
- A PR was merged that added the literal type pending to MempoolTransactions, facilitating union types. → Github
Again, a huge thank you to everyone experimenting with the testnet! The MARF bug this week is a perfect example of why your efforts are so valuable — this bug was impossible to reproduce locally or in any other environment, only manifesting when someone was mining invalid blocks and a specific sequence of events was triggered.