Liquid Stake with compassSOL for an 7.46% APY from staking, MEV + fees

Enjoy the freedom of liquid staking in Solana Defi while delegating your stake to the high performance Solana Compass validator. Stake or unstake at any time here, or with a Jupiter swap.

Benefit from our high staking returns and over 2 years experience operating a Solana validator, and receive additional yield from priority fees + MEV tips

Earn 7.0% APY staking with Solana Compass

Help decentralize and secure the Solana network delegating your stake to us and earn an impressive 7.0% APY yield on your SOL, while supporting us to create new guides and tools. Learn more

Stake your SOL

  1. Click to connect your wallet
  2. Enter the amount you wish to stake
  3. Kick back and enjoy your returns
  4. Unstake from your wallet or our staking dashboard

Earn 7.0% APY staking with Solana Compass

Help decentralize and secure the Solana network delegating your stake to us and earn an impressive 7.0% APY yield on your SOL, while supporting us to create new guides and tools.

Learn more

Solana Changelog - Jan 30: Transaction CU Cost, Simulation for Token Accounts, and Fee to Write Lock

By Solana-Changelog

Published on 2024-01-30

Discover Solana's latest improvements including transaction cost tracking, token account simulation fixes, and proposals for write lock fees. Learn how these changes enhance Solana's speed and efficiency.

The notes below are AI generated and may not be 100% accurate. Watch the video to be sure!

Solana's Latest Changelog: Enhancing Network Efficiency and Developer Experience

In the ever-evolving world of blockchain technology, Solana continues to push the boundaries of innovation and performance. The latest Solana Changelog, presented by Jacob and Nick, reveals significant improvements and proposals aimed at enhancing the network's efficiency, transaction processing, and overall developer experience. Let's dive deep into the key updates and their potential impact on the Solana ecosystem.

SIMD-110: Exponential Fee for Write Lock Accounts

One of the most intriguing proposals discussed in this changelog is SIMD-110, which addresses the issue of write locks on accounts. This proposal aims to introduce an exponential fee structure for accounts that are repeatedly write-locked, potentially solving a significant bottleneck in Solana's transaction processing capabilities.

The Problem with Write Locks

Write locks are a necessary feature in blockchain systems to prevent concurrent modifications to the same account. However, they can also be a double-edged sword. When an account is write-locked, it prevents other transactions involving that account from being processed in parallel, potentially reducing the overall transaction throughput of the network.

Jacob explains the current situation:

"A lot of people are sending transactions that are locking accounts that basically with the write lock, so they can't be parallelized in a block. Reducing the amount of transactions you can do over a specific program."

This issue is particularly noticeable with popular decentralized applications (dApps) on Solana. For instance, if a large number of users are interacting with a dApp like Jupiter (a popular decentralized exchange on Solana), and these transactions are write-locking many accounts, it can significantly slow down the network's ability to process other transactions in the same block.

The Proposed Solution

SIMD-110 proposes an innovative solution to this problem: an exponential fee structure for write-locked accounts. Under this proposal, if an account has been write-locked over a certain number of consecutive blocks, the fee for continuing to write-lock that account would increase exponentially.

This approach aims to discourage unnecessary or prolonged write-locks, incentivizing developers to optimize their applications for better parallelization. By doing so, it could potentially increase the overall transaction throughput of the Solana network, allowing for more efficient use of block space and improving the user experience across the entire ecosystem.

Community Feedback and Considerations

While both Jacob and Nick express support for the general idea behind SIMD-110, they also acknowledge that it's a proposal open for community feedback. Nick states:

"I think it's a really cool idea. I think I'm personally for something of this kind of vein of write locking or having a fee on write lock accounts, because like you said, it definitely affects transaction speed and how many transactions can actually get put into a block in some ways."

However, it's important to note that this is just one of several approaches being considered to improve transaction inclusion on Solana. Jacob mentions other potential solutions, such as dynamic storage fees and improvements to the transaction scheduler.

The Solana community is encouraged to review SIMD-110 and provide feedback, as this proposal could have significant implications for developers and users alike.

TransactionState: Adding TransactionCost

Another important update highlighted in the changelog is a commit that adds TransactionCost to the TransactionState. This change is poised to improve the accuracy of transaction cost estimation and potentially lead to more efficient block composition.

Improving Transaction Inclusion

The new TransactionCost feature allows for better tracking of the actual compute usage of transactions versus what was initially requested. Nick explains the significance:

"With this commit, it will allow transactions to actually track the cost and the fees that were put into them. So that way the scheduler can better detect how much compute usage is actually being used versus requested."

This improvement is particularly important given Solana's compute unit usage caps on blocks. Currently, if a block hits its compute unit cap, no more transactions can be included, even if there's still physical space available. By more accurately tracking the actual compute usage of transactions, the network can potentially pack more transactions into each block, improving overall throughput.

Jacob adds context to why this is crucial:

"For those that don't know, there's compute unit usage caps on blocks. So if you hit that cap, it's over. And if people request too much for their transaction and it hits that cap, it could have been a better block basically."

This change could lead to more efficient use of block space, potentially increasing the number of transactions that can be processed in each block and improving the overall performance of the Solana network.

Dubious Dependency Removal Project

In an effort to enhance the security and stability of the Solana codebase, the Solana Labs team has initiated the "Dubious Dependency Removal" project. This initiative aims to reduce the attack surface of the Solana validator client by removing or vendoring certain dependencies.

Enhancing Security and Build Times

The project involves removing dependencies tied to the Solana monorepo, such as percentage or FSAR. By doing so, the team aims to reduce the potential attack vectors that could arise from vulnerabilities in these dependencies.

Jacob explains the approach:

"So Solana Labs, their validator client, what they're trying to do is they're trying to remove the different dependencies that are tied to the Monoripo to have less kind of like a less attack service of any of these dependencies have issues."

Nick adds that this project could have additional benefits beyond security:

"Hopefully it'll both speed up build times, remove some surface area for attacks, and then hopefully help with some of the dependency issues that people have been having. Like maybe you have a runtime dependency versus build dependency. They're not necessarily noted the same."

By streamlining dependencies, the Solana team is not only improving security but also potentially enhancing the development experience by reducing build times and clarifying dependency relationships.

RPC: Parse Token Accounts in Simulate Transaction

A significant bug fix highlighted in this changelog addresses an issue with the simulate_transaction RPC call, specifically relating to the parsing of token accounts.

Improving Simulation Accuracy

Previously, there was a discrepancy between the data returned by transaction simulations and the actual data from landed transactions, particularly for token accounts. Nick explains the fix:

"If you didn't know, the JSON parse would actually not parse token accounts during simulate transactions. So the transaction simulation, vice the actual transaction that would get landed, those would actually differ a little bit because of this bug."

This bug fix ensures that the data returned from transaction simulations will more closely match the actual transaction data when it's executed on-chain. This improvement is particularly important for wallet developers and other applications that rely on transaction simulations for security checks and user protection.

Jacob emphasizes the importance of this fix:

"Simulate transactions are super important. It's one of the ways that wallets do some security checks and integrity checks and try to protect their users. So this is going to be something that's going to be really, really useful for the ecosystem."

By aligning simulation results more closely with actual transaction outcomes, this fix enhances the reliability of pre-flight checks and improves the overall developer experience when working with Solana transactions.

Solana Playground: A Powerful Developer Tool

The changelog concludes with a spotlight on Solana Playground, a browser-based integrated development environment (IDE) for building and testing Solana programs.

Streamlining Solana Development

Solana Playground offers developers a quick and easy way to write, compile, and test Solana programs directly in their web browser. Jacob highlights a particularly useful feature that many developers might not be aware of:

"You can actually test your instructions from your program directly from the browser without writing any code. So for example, this is just a counter program. We can just do this with a, basically I can use my initialize and you can just hit that test button and it passes without me writing any code."

This feature significantly streamlines the testing process for Solana developers. Instead of writing extensive test scripts, developers can use the Playground's interface to quickly test their program's instructions, saving time and reducing the potential for errors in test code.

Improving the Developer Experience

The ability to test program instructions without additional code is a game-changer for Solana developers. It allows for rapid iteration and validation of program logic, potentially accelerating the development cycle for Solana applications.

Jacob emphasizes the potential impact of this tool:

"Definitely try it out. Play around with the test if you don't, if you haven't already, because it might make your testing life cycle on Solana programs a lot better."

By reducing the barriers to entry and simplifying the testing process, Solana Playground contributes to a more accessible and efficient development ecosystem for Solana.

Conclusion: Solana's Continuous Improvement

The latest Solana Changelog demonstrates the network's commitment to continuous improvement and innovation. From addressing network efficiency with proposals like SIMD-110 to enhancing developer tools like Solana Playground, these updates collectively contribute to a more robust, efficient, and developer-friendly blockchain ecosystem.

As Solana continues to evolve, these changes promise to solidify its position as a leading blockchain platform, capable of handling high-throughput applications while maintaining security and decentralization. The ongoing efforts to optimize transaction processing, improve simulation accuracy, and enhance developer tools all point towards a bright future for Solana and its growing ecosystem of decentralized applications.

For developers, users, and investors in the Solana ecosystem, staying informed about these changes is crucial. Each update, no matter how small, contributes to the overall advancement of the platform, potentially opening new opportunities for innovation and growth in the world of decentralized finance and beyond.

As we look forward to future updates, it's clear that Solana's dedication to technical excellence and user experience will continue to drive its evolution as a leading blockchain platform.

Facts + Figures

  • SIMD-110 proposes an exponential fee structure for accounts that are repeatedly write-locked to improve transaction throughput.
  • The TransactionCost feature added to TransactionState allows for better tracking of actual compute usage in transactions.
  • Solana blocks have compute unit usage caps, which when hit, prevent additional transactions from being included.
  • The Dubious Dependency Removal project aims to enhance security and potentially improve build times for the Solana validator client.
  • A bug fix for the simulate_transaction RPC call now correctly parses token accounts, aligning simulation results more closely with actual transaction outcomes.
  • Solana Playground allows developers to test program instructions directly in the browser without writing additional code.
  • The Solana team is considering multiple approaches to improve transaction inclusion, including dynamic storage fees and scheduler improvements.
  • Write locks on accounts can significantly reduce the parallelization of transactions within a block, affecting overall network performance.
  • The exponential fee proposal for write-locked accounts aims to discourage unnecessary or prolonged write-locks.
  • Accurate transaction cost estimation could lead to more efficient block composition and potentially increase the number of transactions per block.
  • The Solana ecosystem is continuously evolving, with regular updates aimed at improving network efficiency, security, and developer experience.

Questions Answered

What is SIMD-110 and how does it aim to improve Solana's performance?

SIMD-110 is a proposal to introduce an exponential fee structure for accounts that are repeatedly write-locked on the Solana network. It aims to improve Solana's performance by discouraging unnecessary write-locks, which can reduce transaction parallelization within blocks. By implementing this fee structure, the proposal seeks to incentivize more efficient use of write-locks, potentially increasing the overall transaction throughput of the network and improving its ability to process a higher volume of transactions concurrently.

How does the new TransactionCost feature benefit the Solana network?

The new TransactionCost feature added to TransactionState allows for more accurate tracking of the actual compute usage of transactions versus what was initially requested. This benefits the Solana network by enabling the transaction scheduler to make more informed decisions about transaction inclusion in blocks. With more precise cost information, the network can potentially pack more transactions into each block, making more efficient use of the available compute resources and potentially increasing overall transaction throughput.

What is the Dubious Dependency Removal project and why is it important?

The Dubious Dependency Removal project is an initiative by Solana Labs to remove or vendor certain dependencies from the Solana validator client. This project is important because it aims to reduce the potential attack surface of the validator by minimizing dependencies that could introduce vulnerabilities. Additionally, this effort may lead to improved build times and clearer dependency relationships, enhancing both the security and development experience of the Solana ecosystem.

What improvement has been made to the simulate_transaction RPC call?

A significant improvement has been made to the simulate_transaction RPC call, specifically in how it handles token accounts. Previously, there was a bug where token accounts were not properly parsed during transaction simulations, leading to discrepancies between simulated and actual transaction results. This fix ensures that token accounts are correctly parsed during simulations, aligning the simulation results more closely with the actual on-chain transaction outcomes. This improvement is crucial for applications that rely on transaction simulations for security checks and user protection.

What is Solana Playground and how does it enhance the developer experience?

Solana Playground is a browser-based integrated development environment (IDE) for building and testing Solana programs. It enhances the developer experience by allowing developers to write, compile, and test Solana programs directly in their web browser. A key feature of Solana Playground is the ability to test program instructions without writing additional code, streamlining the testing process and potentially accelerating the development cycle for Solana applications. This tool significantly reduces barriers to entry for new Solana developers and improves efficiency for experienced ones.

How does the proposed exponential fee for write-locked accounts work?

The proposed exponential fee for write-locked accounts works by increasing the fee for continuing to write-lock an account based on how many consecutive blocks it has been locked. If an account has been write-locked over a certain number of blocks, the fee for maintaining that lock would increase exponentially. This mechanism aims to discourage unnecessary or prolonged write-locks, incentivizing developers to optimize their applications for better parallelization and more efficient use of network resources.

Why are write locks a concern for Solana's performance?

Write locks are a concern for Solana's performance because they prevent parallelization of transactions involving the locked accounts within a block. When an account is write-locked, other transactions that need to modify that account cannot be processed simultaneously, potentially reducing the overall transaction throughput of the network. This issue becomes particularly problematic with popular decentralized applications that may frequently write-lock accounts, limiting the network's ability to process other transactions efficiently.

How does Solana Playground's testing feature work without requiring additional code?

Solana Playground's testing feature allows developers to test their program's instructions directly through the browser interface without writing additional test code. Developers can use the Playground's UI to initialize their program, select instructions, and execute tests with a simple button click. This streamlined process eliminates the need for writing separate test scripts, saving time and reducing the potential for errors in test code. The feature significantly simplifies the testing lifecycle for Solana programs, making it easier for developers to validate their code quickly and efficiently.

Related Content

Solana Changelog - Jan 30: Transaction CU Cost, Simulation for Token Accounts, and Fee for Write Lock

Discover Solana's latest improvements including transaction cost tracking, token account simulation, and a proposal for write lock fees to enhance network efficiency.

Solana Changelog Jul 3 - RPC Deprecations, Actions, and Blinks

Explore Solana's latest developments including RPC method deprecations, new Actions and Blinks features, and upcoming changes to compute unit charging.

Solana Changelog - Optional Borsh, Precompiles, and new Web3.js

Discover Solana's latest developments including optional Borsh in SDK, precompile standardization, core BPF migration progress, and exciting Web3.js updates for enhanced developer experience.

Solana Changelog March 14 - Tiered Account Storage, Debugging Programs, and Anchor

Explore Solana's latest developments including tiered account storage, program debugging, and major Anchor updates in this comprehensive changelog.

Solana Changelog March 14 - Tiered Account Storage, Debugging Programs, and Anchor

Discover Solana's latest developments including tiered account storage, new debugging tools, and significant Anchor updates. Learn about compressed NFTs and upcoming Grizzlython submissions.

Solana Changelog - December 5 - Geyser, GroupMember Extension, and Core BPF Programs

Discover the latest Solana developments including Geyser plugin logging, new token extensions, and improvements to core BPF programs. Learn how these updates enhance Solana's ecosystem and developer experience.

Solana Changelog - October 17 - Duplicate Block Prevention, Anchor, and Cargo Registry

Explore Solana's latest improvements including turbine for duplicate block prevention, Anchor's efficiency boost, and the new Cargo Registry service for seamless program deployment.

Solana Changelog - Feb 20 - Feature Activation, Decoupling the SMV, and Rust v1.76

Explore Solana's recent developments including feature activation schedules, SVM decoupling efforts, and the upgrade to Rust v1.76. Learn about upcoming events and Stack Exchange updates.

Solana Changelog - Token Extensions and Transaction Size Fees

Explore Solana's latest developments including token extensions, transaction size fees, and the upcoming Mountain Dew 5 event in this comprehensive changelog.

Solana Changelog - Jan 16 - Lower Program Deploy Costs, Halve Rent, Luzid Test Validator

Explore Solana's latest improvements including lower program deployment costs, potential rent reductions, and the innovative Luzid test validator for enhanced developer experience.

Solana Changelog - Optional Borsh, Precompiles, and new Web3.js

Explore Solana's latest developments including optional Borsh, precompiles standardization, core BPF migration progress, and exciting Web3.js updates in this comprehensive changelog.

Solana Changelog - Token Extensions and Transaction Size Fees

Discover the latest Solana updates including token extensions, transaction size fees, and developer resources in this comprehensive changelog.

Solana Changelog - November 1, 2022 - Error Logging, Open-Source Proposals, and Voter Withdrawals

Discover Solana's latest updates including enhanced error logging, community-driven proposals, and exciting new developer resources in this comprehensive changelog.

Solana Changelog - April 9 - Flare and GetEpochStake

Discover the latest Solana upgrades including GetEpochStake, improved indexing, and the Flare CLI tool. Learn how these changes enhance performance and developer experience on Solana.

Solana Changelog - MoveStake, Core Concepts, and Bigtable Support

Explore the latest Solana developments including MoveStake proposal, CLI improvements, and revamped core concept documentation. Learn how these changes enhance the Solana ecosystem.