Liquid Stake with compassSOL for an 9.66% 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 - Nov 12 - web3.js v2, skip preflights in the CLI, and SIMD-0191

By Changelog

Published on 2024-11-13

Explore Solana's latest developments: web3.js v2 release, CLI preflight skipping, SIMD-0191 for transaction constraints, and performance enhancements.

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

Solana's Latest Upgrades: Enhancing Developer Experience and Network Performance

In the ever-evolving world of blockchain technology, Solana continues to make strides in improving its ecosystem for developers and users alike. The latest episode of the Solana Changelog, featuring Nick from the Solana Foundation DevRel team and Jonas, brings to light several significant updates and improvements that are set to enhance the Solana experience across the board.

SIMD-0191: Relaxing Transaction Constraints

One of the most notable updates discussed in this changelog is SIMD-0191, which aims to relax transaction constraints, specifically for loading failures. This improvement, proposed by Andrew Fitzgerald from ANZA, is actually a part of a larger initiative that was previously encapsulated in SIMD-83. By breaking down the larger proposal into more manageable pieces, the Solana team is making it easier to implement and understand these crucial changes.

The Problem with Current Transaction Processing

Currently, when transactions are processed on the Solana network, they are subject to various constraints that can cause them to fail automatically. These failures occur before the transactions are included in a block, meaning that validators spend compute resources processing these transactions without being able to collect transaction fees. This scenario creates an inefficiency in the system where valuable computational work is performed without compensation.

How SIMD-0191 Addresses the Issue

The proposed changes in SIMD-191 aim to relax some of these constraints, allowing transactions that would have previously failed to be included in blocks. This modification has two significant benefits:

  1. Validators will be able to collect fees for transactions they process, even if those transactions ultimately fail.
  2. The network becomes more efficient by ensuring that computational work is properly compensated.

Jonas emphasizes the importance of this change, stating, "I think it's a great idea that the validators get paid for what they are actually processing. Otherwise, you can just send them tons of stuff and deduce them, basically. So I think it's a very good change."

CLI Improvements: Skip Preflight Checks

Another significant update comes in the form of improvements to the Solana Command Line Interface (CLI). From version 2.2 of Agave, developers will have the ability to define the skip preflight check. This feature is particularly crucial for program deployments, which have been a pain point for many developers in the Solana ecosystem.

The Importance of Skip Preflight Checks

Jonas explains the significance of this feature: "So now in the CLI from version 2.2 of Agar, we will be able to define the skip pre-flight check. And with these, it will be way easier to land transactions, and especially deploying because the CLI also sends transactions."

This improvement addresses issues related to stake-weighted transactions when using connections like Helios and Triton. By allowing developers to skip preflight checks, it becomes easier to deploy programs and land transactions successfully.

Best Practices for Program Deployment

Jonas provides some valuable advice for developers looking to optimize their program deployments:

  1. Check current fees using tools like the gas tracker by QuickNode or by querying RPC providers' APIs.
  2. For non-stake nodes, set compute units slightly above the low and increase max sign attempts (e.g., to 1000).
  3. When using public endpoints, expect deployment times of around 10 minutes for an average Anchor program.
  4. For stake nodes (paid nodes), use the --use-rpc-for-write flag to deploy programs in just a few seconds.

Jonas also mentions a helpful tip for developers: "If anything fails, I don't know if everyone knows, but you can just do Solana program show buffers, then it shows you the buffers, and you can close them again so that you get your SOL back in case you have an error."

Performance Enhancements

The changelog highlights several commits aimed at improving Solana's performance and efficiency.

Lifting CPI Caller Restrictions

One of the feature gates mentioned is the lifting of CPI (Cross-Program Invocation) caller restrictions. This change, stemming from SIMD-163, removes one of the CPI checks, making CPI calls more efficient. Nick explains, "It makes it so data doesn't have to be double deserialized and double handled. So it makes all transactions that are doing CPI more efficient, which is awesome."

Doubling Program Cache Size

Another performance-related commit doubles the program cache size for validators. Nick elaborates, "He doubled the program cache size, making it so the total program cache that the validators will actually have stored within their RAM, just doubles the size. It makes it so the automatic program eviction from the cache happens less frequently so they can actually cache things for more data for a little bit longer."

This change is expected to improve overall network performance by reducing the frequency of program reloading.

Removing Executable Flag Checks

The changelog also mentions a feature gate for removing executable flag checks within the runtime. This change optimizes account handling by relying on the owner check instead of a separate Boolean value to determine if an account is executable.

Nick explains the rationale: "Basically the runtime has been updated to instead of having this Boolean value stored within each of the accounts, whether it's executable or not, AKA a program account or not. They're actually just using the owner check instead because anything that's executable has to be owned by the loader program, one of the loader programs."

This optimization removes the need for a binary value stored in every account on Solana, potentially leading to significant storage and processing efficiencies across the network.

Web3.js Version 2: A Major Milestone

One of the most exciting announcements in this changelog is the imminent release of Web3.js version 2. This new version of the popular JavaScript library for interacting with the Solana blockchain brings several improvements and changes that developers should be aware of.

Key Features of Web3.js v2

While the full details of Web3.js v2 weren't discussed in depth during the changelog, Jonas and Nick highlighted some important points:

  1. Improved Performance: The new version is reportedly faster and smaller in size compared to its predecessor.
  2. API Changes: Developers should note that there are some differences in how certain functions are called or implemented.
  3. Backwards Compatibility: The current version will still be available, allowing developers to transition at their own pace.

Trying Out Web3.js v2

Jonas encourages developers to start experimenting with the new version: "What you can already do is you can try it out by just using it too, I think, instead of at RC. And yeah, definitely give it a try. It's faster, it's smaller, but it's also a bit different. So I think it makes sense to try it out, see if you can convert programs, see if you run into problems, report bugs."

This proactive approach will not only help developers familiarize themselves with the new API but also contribute to identifying and resolving any potential issues before the final release.

Solana Cookbook Updates

In conjunction with the Web3.js v2 release, the Solana Cookbook is being updated to include code snippets for both version 1 and version 2 of Web3.js. This side-by-side comparison will be invaluable for developers looking to understand the differences and migrate their code.

Nick mentions, "We're gonna start going through updating the Solana cookbook with code snippets for the version one version two comparison. You can see here how to create a key pair. Looks very similar, but is just a little bit different."

This initiative by the Solana Foundation DevRel team will greatly assist developers in transitioning to the new version while maintaining support for existing projects using version 1.

Community Contributions to Documentation

The Solana team is actively encouraging community contributions to the documentation, especially regarding Web3.js v2 examples. Jonas invites developers to participate: "If you want to add some features yourself, you can just click the edit page button and add your own Web3.js v2 examples here. So it would be great help for us."

This open approach to documentation not only helps keep the resources up-to-date but also fosters a sense of community ownership and collaboration within the Solana ecosystem.

Velos: A New Data Streaming Client for Solana

The changelog briefly touched upon Velos, a new specialized data streaming client for Solana. While details were limited, the potential impact of this tool is significant.

Reducing Infrastructure Costs

According to the brief mention, Velos claims to reduce infrastructure costs by up to 50% for streaming Solana data. This substantial reduction could make it much more accessible for developers and projects to run their own indexers and data analysis tools.

Nick expands on the potential of Velos: "One of the things that they're shooting for is making it so people can run their own indexers and like index anything on Solana with just less infrastructure costs, you don't have to run like a full node or a full RPC in order to do it, which is really, really cool."

Implications for the Ecosystem

The introduction of tools like Velos could lead to a more decentralized and robust data infrastructure within the Solana ecosystem. By lowering the barrier to entry for running indexers and data analysis tools, we might see an increase in the diversity of data services and applications built on Solana.

Solana StackExchange: A Thriving Developer Community

The changelog concluded with a shoutout to the active participants on the Solana StackExchange, highlighting the platform's importance in supporting the growing developer community.

Top Contributors

Jonas mentioned several top contributors by name, including Jimmy, Aradah, Abhishek Phalia, Russo, Hannah (a core contributor at ANZAR), John, Nick Frosty, and Jacob Creed. This recognition not only celebrates individual contributions but also showcases the diverse and active community supporting Solana development.

The Value of Community Support

The importance of the StackExchange platform cannot be overstated. As Jonas points out, "In the recently, we had like lots of new questions because we have so many new devs coming in and they all have questions. So whenever we answer a question helps everybody. So it's really cool that everyone is helping here."

This collaborative environment is crucial for onboarding new developers and solving complex problems within the Solana ecosystem. The active participation on StackExchange is a strong indicator of the health and growth of the Solana developer community.

Conclusion: Solana's Continuous Improvement

The updates discussed in this Solana Changelog demonstrate the platform's commitment to continuous improvement and developer support. From low-level optimizations like relaxing transaction constraints and improving CPI efficiency to user-facing improvements like Web3.js v2 and enhanced CLI functionality, Solana is addressing pain points and opening new possibilities for developers.

The introduction of tools like Velos and the ongoing community engagement through platforms like StackExchange further reinforce Solana's position as a leading blockchain platform for developers. As these changes roll out and new tools become available, we can expect to see even more innovative applications and improved performance across the Solana ecosystem.

For developers and users alike, these updates promise a more efficient, accessible, and powerful Solana experience. As the platform continues to evolve, staying informed through resources like the Solana Changelog and actively participating in the community will be key to leveraging the full potential of what Solana has to offer.

Facts + Figures

  • SIMD-0191 aims to relax transaction constraints for loading failures, allowing validators to collect fees for processed transactions even if they fail.
  • The Solana CLI will introduce a skip preflight check feature from version 2.2 of Agave, making it easier to deploy programs and land transactions.
  • Program deployment times on public endpoints are currently around 10 minutes for an average Anchor program.
  • A new feature gate lifts CPI caller restrictions, making Cross-Program Invocations more efficient by removing one of the CPI checks.
  • The program cache size for validators has been doubled, reducing the frequency of program eviction from the cache.
  • A feature gate has been introduced to remove executable flag checks within the runtime, optimizing account handling.
  • Web3.js version 2 is set to be officially released, promising improved performance and a smaller size compared to version 1.
  • The Solana Cookbook is being updated with side-by-side comparisons of Web3.js v1 and v2 code snippets.
  • Velos, a new data streaming client for Solana, claims to reduce infrastructure costs by up to 50% for streaming Solana data.
  • The Solana StackExchange continues to be an active platform for developer support, with numerous contributors helping new developers.

Questions Answered

What is SIMD-0191 and how does it improve Solana?

SIMD-0191 is a proposal to relax transaction constraints for loading failures on Solana. It improves the network by allowing validators to collect fees for transactions they process, even if those transactions ultimately fail. This change ensures that validators are compensated for their computational work, making the network more efficient and economically viable for validators.

How will the new skip preflight check in the Solana CLI benefit developers?

The skip preflight check feature in the Solana CLI will make it significantly easier for developers to deploy programs and land transactions. By allowing developers to bypass certain pre-transaction checks, it addresses issues related to stake-weighted transactions when using connections like Helios and Triton. This feature is particularly beneficial for program deployments, which have been a pain point for many Solana developers.

What improvements does Web3.js version 2 bring to Solana development?

Web3.js version 2 brings several improvements to Solana development, including faster performance and a smaller overall size compared to version 1. While specific API changes weren't detailed in the changelog, the new version is expected to offer a more efficient and streamlined experience for developers working with Solana. The Solana Cookbook is being updated to provide side-by-side comparisons of v1 and v2 code snippets to assist developers in transitioning to the new version.

How does doubling the program cache size improve Solana's performance?

Doubling the program cache size for validators improves Solana's performance by reducing the frequency of program eviction from the cache. This means that validators can store more program data in their RAM for longer periods, leading to faster transaction processing times and reduced computational overhead. By minimizing the need to frequently reload programs, the network can operate more efficiently, especially during periods of high transaction volume.

What is Velos and how does it benefit the Solana ecosystem?

Velos is a new specialized data streaming client for Solana that claims to reduce infrastructure costs by up to 50% for streaming Solana data. This tool benefits the Solana ecosystem by making it more accessible for developers and projects to run their own indexers and data analysis tools without the need for a full node or RPC. By lowering the barrier to entry for data services, Velos could potentially lead to a more diverse and robust data infrastructure within the Solana ecosystem.

Related Content

Solana Changelog - November 14 - Blockstore, Breakpoint, and Relaxed Transaction Constraints

Explore Solana Breakpoint highlights, Web3.js improvements, and upcoming changes to transaction constraints in this comprehensive Solana Changelog episode.

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 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 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 May 8 - MoveStake, Core Concepts, and Bigtable Support

Explore the latest Solana developments including the MoveStake proposal, CLI enhancements, Bigtable support for test validators, and revamped core concept documentation.

Solana Changelog - Mar 19: Anza's Agave Client, Compute, and create-solana-program

Explore Solana's latest developments: Anza's Agave client, block space challenges, priority fees, and new developer tools like create-solana-program.

Solana Changelog March 7 - Verifiable Builds, Admin RPC, and Geyser

Explore the latest Solana developments including verifiable builds, admin RPC improvements, and Geyser interface updates for enhanced performance and security.

Solana Changelog March 21 - Priced Compute Units and the Solana Developer Forum

Explore Solana's latest developments, including the Priced Compute Units proposal, validator improvements, and the launch of the Solana Developer Forum.

Solana Changelog April 18 - Automatic Repair, Saga, and Helium

Discover Solana's latest developments including the Saga phone launch, Helium network migration, and innovative automatic cluster repair proposal.

Solana Changelog - Apr 2 - CLI Explorer, Priority Fees When Deploying, and More

Explore the latest Solana developments including dynamic block limits, CLI explorer tool, priority fees for program deployment, and key ecosystem improvements.

Solana Changelog - April 23 - Migrating BPF Programs, Priority Fees on the CLI, and More

Explore the latest Solana developments including BPF program migration, CLI priority fee updates, the upcoming Bonkathon, and major Anchor 0.30 release changes.

Solana Changelog - Feature Activation, Decoupling the SVM, and Rust v1.76

Explore Solana's newest developments including feature activation schedules, SVM decoupling, Rust upgrade to v1.76, and upcoming events in this comprehensive changelog.

Solana Changelog - January 17, 2023 - SIMD 3, Compute Cost Updates, Golana

Explore Solana's latest developments including SIMD 3 proposal for dynamic base fees, compute cost updates, and the introduction of Golana for Go developers.

Solana Changelog Oct 23

Discover how Solana is attracting more developers than ever, with insights on the largest crypto hackathon and recent performance optimizations.

Solana Changelog Oct 30th

Explore the latest Solana developments including Old Faithful RPC on Filecoin, verified builds in Explorer, and a new transaction size specification