Liquid Stake with compassSOL for an 7.32% 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 6.7% APY staking with Solana Compass

Help decentralize and secure the Solana network delegating your stake to us and earn an impressive 6.7% 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 6.7% APY staking with Solana Compass

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

Learn more

Solana Changelog Aug 14

By Changelog

Published on 2024-08-15

Discover the latest Solana updates including SIMD-0164, Web3.js 2.0 Release Candidate, and improved developer tools for enhanced testing and deployment.

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

Solana Changelog: Enhancing Developer Experience and Network Functionality

In the ever-evolving world of blockchain technology, Solana continues to make strides in improving its ecosystem for developers and users alike. The latest Solana Changelog, presented by Jacob and Jonas, brings to light several significant updates and improvements that are set to enhance the Solana experience. From new instructions to developer tool upgrades, this changelog covers a range of topics that are crucial for anyone involved in the Solana ecosystem.

SIMD-0164: ExtendProgramChecked Instruction

One of the most notable updates discussed in the changelog is the introduction of SIMD-0164, which proposes the ExtendProgramChecked instruction. This new instruction builds upon the existing ExtendProgram functionality, adding an important security feature.

The ExtendProgramChecked instruction introduces an owner check, ensuring that only the rightful owner of a program can extend it. This change addresses a potential security concern where anyone could previously extend a program, potentially causing inconvenience or disruption.

Jonas explains the significance of this update: "It's basically just adding an owner check. So not only the owner of the program can actually extend it. So you can't annoy your friends anymore by extending their programs." While this might seem like a small change, it's a crucial step in maintaining the integrity and security of programs on the Solana network.

The addition of this owner check brings consistency to the Solana ecosystem, aligning with best practices in blockchain security. It's a testament to Solana's commitment to continuous improvement and addressing potential vulnerabilities before they can be exploited.

Core BPF Migration: Checks for Executable Accounts

Another significant update mentioned in the changelog relates to the Core BPF (Berkeley Packet Filter) migration. This change involves reintroducing checks for executable accounts, a feature that had previously been removed.

The reintroduction of this check addresses an edge case that the developers encountered during the migration process. Jacob and Jonas discuss the reasoning behind this change:

Jacob: "I was wondering how they were going to check executable accounts when they were removed. I was thinking they would always just check the owner would be the BPF loader program. But I guess there's some edge case where they can't do that."

Jonas: "Yeah, that makes sense. I guess that makes sense. But yeah, they apparently found some edge case they reverted it."

This change demonstrates the Solana team's thoroughness in ensuring that all possible scenarios are accounted for in the Core BPF migration. While it might result in a slight increase in account data size (due to the retention of the executable bit), the benefits in terms of security and consistency outweigh this minor drawback.

SVM API Examples: Enhancing Developer Understanding

The Solana Virtual Machine (SVM) is a crucial component of the Solana ecosystem, serving as the runtime environment for smart contracts and other on-chain programs. To help developers better understand and utilize the SVM, new examples have been added to the documentation.

These examples, created by a developer named Joe, showcase how to use the SVM API effectively. One particular example mentioned is a payment channel implementation, which can be particularly useful for developers working on complex applications.

Jacob highlights the importance of these examples: "Definitely go check it out if you're interested in building on the SVM." This addition to the documentation is particularly valuable for projects working on layer 2 solutions, roll-ups, or other advanced applications on Solana.

Jonas adds: "I think it's good for like all of these projects that's tried to build roll-ups or layer 2s or ephemeral roll-ups like magic blocks, sonic, Eclipse and so on. So yeah, it's nice. It's going to be easier."

These examples serve as a valuable resource for developers looking to push the boundaries of what's possible on Solana, potentially leading to more innovative and efficient applications in the future.

Local Validator Improvements: Clone Feature Set

One of the most exciting updates for developers is the improvement to the local validator setup. This change addresses a significant pain point that developers have been facing when testing their programs locally before deploying to DevNet or MainNet.

Previously, developers could encounter situations where a program would work perfectly in their local environment but fail when deployed to DevNet due to differences in activated features. This discrepancy could lead to unexpected errors, such as stack frame issues, which were only discoverable after deployment – a less than ideal scenario for developers.

Jonas explains the significance of this update: "There were some people who had a program which worked locally, then they deployed it to DevNet and then it stopped working with some stack frame errors. And this was because there was a feature which was activated locally but not on DevNet or MainNet."

The new "clone feature set" functionality allows developers to easily replicate the exact feature set of DevNet or MainNet in their local testing environment. This ensures that the local development experience closely mirrors the production environment, reducing surprises and errors during deployment.

Jacob emphasizes the importance of this change: "Yeah, it makes it to where like all the people that had confusion about this don't have to have confusion anymore." This update significantly improves the developer experience, allowing for more accurate testing and smoother deployments.

Custom Genesis Size for Local Clusters

Another improvement to the local testing environment is the ability to customize the genesis size. This change allows developers to include more accounts in the genesis block than was previously possible, which can be particularly useful for certain types of applications or testing scenarios.

Jacob explains: "This is so that people can basically put more accounts that would have previously been able to fit in the genesis to speed up some of the setup process." This enhancement not only improves the flexibility of local testing but also has potential implications for custom Solana environments, such as the Solana Permissioned Environments (SPE).

This change demonstrates Solana's commitment to providing developers with powerful and flexible tools for local testing and custom environments, potentially opening up new possibilities for enterprise and specialized applications on the Solana blockchain.

Platform Tools Update: Version 1.42

A significant update to the Solana platform tools has been released with version 1.42. This update brings a crucial improvement to the development process, particularly in identifying and preventing stack frame issues.

Previously, developers could build their programs with the compiler tools without any indication of potential stack frame limitations. These issues would only become apparent after deployment and execution in a production environment, leading to unexpected errors and potentially misleading error messages.

Jacob highlights the importance of this change: "You wanna know at compile time that you're gonna run to stack frame issues instead of when you deploy and you write over the code to interact with your smart contract and then you finally get those stack frame issues."

With the new update, these stack frame issues are now caught at compile-time, providing developers with immediate feedback and preventing the deployment of programs that would fail due to stack limitations. This not only saves time and resources but also improves the overall reliability of programs deployed on Solana.

Jonas adds: "This is way better. So a bunch of complaints about this recently and try to investigate with people." The update has been backported to version 1.18, ensuring that developers using the stable release can also benefit from this improvement.

Web3.js 2.0 Release Candidate

One of the most anticipated updates in the Solana ecosystem is the release candidate for Web3.js 2.0. This new version brings significant improvements in terms of performance, size, and modularity.

Jacob provides an overview of the improvements: "It's a very tree shakeable. It's very small. And it can be like the IO speed is like 700X better than the old Web3.js." These performance improvements are substantial and could lead to much faster and more efficient dApp interactions on Solana.

The new version is also more modular, allowing developers to import only the specific functionalities they need. Jonas explains the benefits: "Now that you have all these different packages here, you can only use the one that you actually need. And I heard before, like the loading times for really long, if you just use Web3.js and now you can actually only use the stuff you need, which makes your pages faster and loading times and probably use a set memory."

This modular approach not only improves performance but also reduces the overall package size, which can lead to faster load times for web applications using Web3.js.

The release candidate also includes new tools and packages, such as @solana/errors, which can provide more detailed information about specific errors thrown by smart contracts. This can be invaluable for debugging and improving the user experience of Solana-based applications.

Deprecation of getStakeActivation

The changelog also includes an important deprecation notice for the getStakeActivation function in Web3.js 2.0. While this might seem like a loss of functionality, the Solana team has provided alternatives that actually improve upon the original implementation.

Jonas explains: "The @getStakeActivation function will be deprecated in 2.0. But it's not a big deal. I mean, from some of them, maybe it is, but you can replicate the functionality of getStakeActivation actually in the client and JavaScript."

The Solana developers have provided example implementations in both JavaScript and Rust, demonstrating how to replicate the functionality of getStakeActivation on the client side. This change is part of a broader effort to optimize RPC calls and improve overall network efficiency.

Jacob adds some context to this decision: "It was probably just like really heavy on the RPC side. It's things like Git program accounts is also very heavy. Now get program accounts is not deprecated, but it will be at some point in the future. But it's very heavy on the RPC. So there are better solutions than these on the client side than putting in the RPC."

This change encourages developers to implement more efficient solutions on the client side, potentially leading to better performance and reduced load on RPC nodes. It's a forward-thinking move that aligns with Solana's goals of scalability and efficiency.

Solana StackExchange: Fostering Community Knowledge

The changelog concludes with a highlight of the Solana StackExchange, a crucial resource for developers in the Solana ecosystem. The hosts mention some of the top contributors, emphasizing the importance of this platform for knowledge sharing and problem-solving within the community.

Jacob emphasizes the value of contributing to StackExchange: "Remember this helps out all developers, both current and future on Solana. So definitely contribute up to good questions, good answers, and make Solana development better for everyone."

The Solana StackExchange serves as a repository of knowledge, helping to lower the barrier to entry for new developers and providing a platform for experienced developers to share their expertise. It's an essential component of the Solana ecosystem, fostering a culture of collaboration and continuous learning.

Conclusion: A Testament to Solana's Continuous Improvement

The August 14th Solana Changelog demonstrates the platform's commitment to continuous improvement and developer experience. From security enhancements like the ExtendProgramChecked instruction to powerful developer tools and the eagerly anticipated Web3.js 2.0, these updates collectively strengthen Solana's position as a leading blockchain platform.

These changes not only address current pain points for developers but also lay the groundwork for future innovations. The improvements to local testing environments, the introduction of new SVM examples, and the optimizations in Web3.js all contribute to a more robust and developer-friendly ecosystem.

As Solana continues to evolve, these regular changelogs serve as a valuable resource for developers, investors, and enthusiasts to stay informed about the latest improvements and capabilities of the platform. They reflect Solana's responsive approach to community feedback and its proactive stance on addressing potential issues before they become problematic.

The Solana team's focus on performance, security, and developer experience is evident in these updates. As the platform continues to grow and attract more developers and users, these ongoing improvements will play a crucial role in maintaining Solana's position as a fast, secure, and developer-friendly blockchain platform.

For developers and projects building on Solana, staying updated with these changelogs and actively participating in the ecosystem through platforms like StackExchange is crucial. It ensures that they can take full advantage of the latest features and best practices, ultimately leading to better, more efficient, and more secure applications on the Solana blockchain.

As we look forward to future updates and improvements, it's clear that Solana is not resting on its laurels but is actively working to push the boundaries of what's possible in blockchain technology. The future looks bright for Solana and its growing ecosystem of developers, projects, and users.

Facts + Figures

• SIMD-0164 introduces the ExtendProgramChecked instruction, adding an owner check to the existing ExtendProgram functionality.

• The Core BPF migration reintroduces checks for executable accounts to address an edge case discovered during development.

• New SVM API examples, including a payment channel implementation, have been added to assist developers working with the Solana Virtual Machine.

• Local validator improvements now allow developers to clone the feature set from DevNet or MainNet, ensuring more accurate local testing.

• Custom genesis size functionality has been added for local clusters, allowing developers to include more accounts in the genesis block.

• Platform Tools version 1.42 introduces compile-time detection of stack frame issues, preventing deployment of programs with potential runtime errors.

• Web3.js 2.0 Release Candidate boasts IO speeds up to 700 times faster than the previous version.

• The new Web3.js is more modular and tree-shakeable, allowing developers to import only the specific functionalities they need.

• The getStakeActivation function will be deprecated in Web3.js 2.0, with client-side alternatives provided in JavaScript and Rust.

• The Solana StackExchange continues to grow, with notable contributors like Jimmy doubling their reputation in recent months.

Questions Answered

What is the ExtendProgramChecked instruction?

The ExtendProgramChecked instruction is a new feature introduced in SIMD-0164 that adds an owner check to the existing ExtendProgram functionality. This instruction ensures that only the rightful owner of a program can extend it, preventing unauthorized modifications and potential disruptions. It's an important security enhancement that brings consistency to the Solana ecosystem and aligns with best practices in blockchain security.

How does the clone feature set for local validators improve development?

The clone feature set for local validators allows developers to replicate the exact feature set of DevNet or MainNet in their local testing environment. This improvement addresses a significant pain point where programs could work locally but fail when deployed due to differences in activated features. By ensuring that the local development experience closely mirrors the production environment, this feature reduces surprises and errors during deployment, leading to smoother and more reliable development processes.

What improvements does Web3.js 2.0 bring?

Web3.js 2.0 brings several significant improvements to the Solana development ecosystem. It offers substantially better performance, with IO speeds up to 700 times faster than the previous version. The new version is also more modular and tree-shakeable, allowing developers to import only the specific functionalities they need, which leads to smaller package sizes and faster load times for web applications. Additionally, it includes new tools like @solana/errors for better error handling and debugging.

Why is the getStakeActivation function being deprecated?

The getStakeActivation function is being deprecated in Web3.js 2.0 as part of an effort to optimize RPC calls and improve overall network efficiency. While this function is being removed from the RPC, developers can replicate its functionality on the client side using JavaScript or Rust. This change encourages more efficient solutions and reduces the load on RPC nodes, aligning with Solana's goals of scalability and performance.

How do the Platform Tools updates improve the development process?

The Platform Tools update to version 1.42 introduces compile-time detection of stack frame issues. Previously, these issues would only become apparent after deployment and execution in a production environment. With this update, developers can identify and address potential stack frame limitations during the compilation process, preventing the deployment of programs that would fail due to these limitations. This improvement saves time, resources, and enhances the overall reliability of programs deployed on Solana.

What is the significance of the Core BPF migration changes?

The Core BPF (Berkeley Packet Filter) migration changes involve reintroducing checks for executable accounts. This update addresses an edge case discovered during the migration process that couldn't be handled by simply checking the owner of the program. While it results in retaining the executable bit in account data, it ensures comprehensive coverage of all possible scenarios, maintaining the security and consistency of the Solana network.

How does the custom genesis size feature benefit developers?

The custom genesis size feature for local clusters allows developers to include more accounts in the genesis block than was previously possible. This enhancement improves the flexibility of local testing and has potential implications for custom Solana environments. It can be particularly useful for certain types of applications or testing scenarios that require a larger initial state, potentially opening up new possibilities for enterprise and specialized applications on the Solana blockchain.

What role does the Solana StackExchange play in the ecosystem?

The Solana StackExchange plays a crucial role in fostering community knowledge and problem-solving within the Solana ecosystem. It serves as a platform for developers to ask questions, share knowledge, and collaborate on solutions to common issues. By contributing to StackExchange, developers help to lower the barrier to entry for newcomers and create a valuable repository of information that benefits the entire Solana community. The platform is essential for continuous learning and improvement in the rapidly evolving world of blockchain development.

Related Content

Solana Changelog - August 1 - Gamejam, RWA, Quick Program Deploys

Explore the latest Solana developments including the Game Jam, RWA security token standards, and improved program deployment speeds in this week's Changelog.

Solana Changelog - July 25 - Events, Pyre, and Anchor

Discover the latest Solana updates including the upcoming Game Jam, SIMD57 proposal for on-chain events, and exciting ecosystem developments in this week's Solana Changelog.

Solana Changelog: August 8th, 2022 - Offline Signing, QUIC & APR.dev

Discover the latest Solana updates including offline message signing, QUIC implementation progress, and new developer tools like APR.dev and Svelte Scaffold.

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 - August 15 - Bankrun JS, Bubblegum, and Radiance

Discover the latest Solana updates including Game Jam results, light client developments, and new tools like Bankrun and Radiance enhancing the developer experience.

Solana Changelog Aug 21 - SIMD Updates, Commits, and Developer Resources

Discover the latest Solana updates, including SIMD-0163, new commits, and exciting developer resources like Luzid in this week's Solana Changelog.

Solana Changelog - August 15 - Bankrun JS, Bubblegum, and Radiance

Explore the latest Solana updates including game jam success, new developer tools, light client progress, and innovative local testing solutions

Solana Changelog - August 1 - Gamejam, RWA, Quick Program Deploys

Discover the latest Solana updates including the exciting Game Jam, new RWA security token standard, and improvements in program deployment speed.

Solana Changelog July 6 - Cubik, SPL-token, and Solana-Tools

Explore the latest Solana updates including Cardinal Labs shutdown, Jupiter's Token 2022 support, Cubik's tooling round, and new developer resources

Solana Changelog - July 25 - Events, Pyre, and Anchor

Discover the latest Solana updates including the upcoming Game Jam, SIMD57 proposal for on-chain events, and crucial Anchor improvements in this week's changelog.

Solana Ecosystem Call: February 2024

Dive into the latest Solana developments with Dan Romero, Brian Johnson, and key project launches in this packed ecosystem call

Solana Changelog May 2 - Account Interfaces, Web3.js Experimental, and Tea

Discover the latest Solana updates including account interfaces, Web3.js experimental changes, and the new Tea package manager for easier Solana installations.

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 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.

Breakpoint 2023: Introducing the New Web3.js

Steven Luscher presents the new Web3.js with enhanced features and performance improvements.