Liquid Stake with compassSOL for an 7.62% 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.1% APY staking with Solana Compass

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

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

Learn more

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

By Solana-Changelog

Published on 2024-06-12

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.

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

Solana Changelog: Optional Borsh, Precompiles, and Web3.js Improvements

In the ever-evolving landscape of blockchain technology, Solana continues to push the boundaries of innovation and developer-friendly improvements. The latest Solana Changelog, featuring insights from Nick and Jacob of the Solana Foundation DevRel team, brings exciting updates that promise to enhance the Solana ecosystem's performance, flexibility, and user experience.

SIMD-0152: Precompiles Standardization

One of the most intriguing developments discussed in this changelog is the proposal for SIMD-0152, which aims to create a standardized approach for precompiles in the Solana ecosystem. Precompiles are essentially pre-existing functions that perform specific operations, often related to cryptographic processes, which are optimized for efficiency.

Currently, Solana has two precompiles in place:

  1. ED25519 curve
  2. SECP256K1 signatures (Ethereum-compatible)

These precompiles handle signature verification tasks, but the new SIMD proposes a common specification that would allow for easier addition of more precompiles in the future. This standardization is particularly exciting for the potential inclusion of "Pythagorasprime," as mentioned by the proposal's author.

The benefits of this standardization are multifaceted. It would streamline the process of adding new precompiles, which has historically been a labor-intensive task requiring significant work from various teams, including those working on financial applications and alternative clients like SIG.

Jacob emphasized the importance of this development:

"Solana seems to want to add every single one under the sun. And I know that every single time that it's added, it has a lot of work to like the finance crew and other clients because they have to rewrite it from scratch."

While SIMD-0152 hasn't been officially accepted yet, it's open for discussion and contribution from the community. This collaborative approach ensures that the final implementation will meet the needs of developers and users across the Solana ecosystem.

Commits: Enhancing Developer Experience

The changelog also highlighted several important commits that are set to improve the developer experience on Solana.

Compute Budget Crate

One notable commit comes from Buffalo Joe, a former member of the DevRel team, who created a separate compute budget crate. This change extracts the compute budget functionality from the larger Solana program runtime, allowing for more modular and efficient use of resources.

Jacob explained the benefits:

"Basically a lot of these different changes that removing crates and pulling into different crates, it helps it to where like, hey, if you do not use it while you are building your program, you have a faster build time."

This modularization is part of a broader trend in Solana development, aimed at optimizing performance and reducing unnecessary overhead for developers.

Optional Borsh in SDK and Program Crates

Perhaps the most significant commit discussed was the work done by Kevin to make Borsh optional in the SDK and program crates. This change is a massive improvement to the developer experience, addressing issues that have plagued the ecosystem in the past.

Jacob enthusiastically described the impact:

"What we saw, if you remember about a year ago, actually. Yeah, a year ago. The Borsh upgrade on Solana program actually broke a bunch of things within the ecosystem. So if you went from anchor 0.26 to anchor 0.28, you had to do a whole bunch of work to upgrade. This makes it optional to where you will never run into that issue again, which is awesome."

The optional Borsh implementation is already receiving praise from key figures in the Solana community, including the Anchor maintainer. This change is expected to eliminate many potential headaches for developers, especially as further Borsh upgrades are anticipated in the future.

Core BPF Migration Progress

The ongoing Core BPF (Berkeley Packet Filter) migration continues to make strides. This initiative aims to move native programs from the Solana runtime into dedicated BPF programs, known as Core BPF.

Nick provided an update on recent developments:

"I think last week we actually mentioned the SIMD amendment to update the migration process because of the upgrade authority for the core BPF programs to make them on a feature gate, vice a multi-sig. And good old Buffalo Joe here, he's already added in the code to have that support."

This change will allow for more flexible and controlled upgrades of core programs through feature gates rather than requiring version upgrades of the entire runtime. It's a significant step towards a more modular and maintainable Solana architecture.

The migration process is being approached cautiously, starting with smaller programs before tackling more complex ones. Jacob noted:

"My understanding though, it's gonna be quite a wide process. The smaller ones, they're still a bit scary, like vote program, but we'll figure out how it goes as we go."

This methodical approach ensures that each step of the migration is thoroughly tested and validated before moving on to more critical components of the Solana ecosystem.

Web3.js: Technology Preview 3 (TP3)

One of the most exciting announcements in this changelog is the release of Technology Preview 3 (TP3) for Solana's Web3.js library. This preview represents a significant step forward in improving the developer experience for those building on Solana.

The goals of this new version include:

  • Smaller bundle size
  • Improved efficiency
  • Easier extensibility

Jacob emphasized the importance of community involvement in this preview:

"It's a preview for a reason, check it out, try it out, give your feedback that like, hey, this devx on this specific part sucks, because if you do it now, you can get it before a major release, and you can actually get it into where the devx is better in the long run."

This iterative approach to development, with a strong focus on user feedback, demonstrates Solana's commitment to creating tools that truly serve the needs of its developer community.

Nick added:

"Stephen Luscher and Loris, they're really in Calum, too. They're really taking all that feedback to heart to make this like the best possible user and developer experience they can. So share all your feedback, open issues on the web3.js repo."

Improved Error Logging in Web3.js

Another significant improvement discussed is the enhanced error logging capabilities in Web3.js version 1.9921. This update addresses a long-standing pain point for developers who often encountered cryptic error codes like "0x1" or "0x0" without much context.

Jacob explained the significance of this change:

"So what we found out is that all the information about your transaction and the error that came with it were actually being sent back by the RPC, but they were being truncated by web3.js. This allows you to see the full log, the full stack trace every time you run into an error, instead of being like, what the heck did I run into with 0x1, especially as a new developer."

This improvement in error reporting is expected to significantly reduce debugging time and frustration for developers, particularly those new to the Solana ecosystem. It's a clear example of how Solana is continuously working to lower the barrier to entry for blockchain development.

Solana StackExchange Growth

The changelog wrapped up with a shoutout to the growing Solana StackExchange community. This platform has become an invaluable resource for developers seeking answers to their Solana-related questions.

Nick highlighted some of the top contributors:

"Big shout out for Jimmy and Aari. They're the top of the list up there. Of course, John Chigway is also up there. And James, but, and you got some of the other friendly faces we see all the time, and everyone keep up the great work on stack exchange."

Jacob noted the impressive growth of the platform:

"Yeah, it's helping out a lot. There's been a ton of new users every week on stack exchange. So like, wow, we actually have 17,000 users. I feel like the last time I looked at this, it was like 12,000. So, wow, okay."

This rapid growth in StackExchange users is a testament to the expanding Solana developer community and the increasing interest in building on the platform.

Conclusion: Solana's Continuous Improvement

The latest Solana Changelog underscores the blockchain's commitment to continuous improvement and developer-centric innovation. From standardizing precompiles to enhancing core libraries and improving error reporting, each update aims to make the Solana ecosystem more accessible, efficient, and user-friendly.

As the Core BPF migration progresses and new tools like the updated Web3.js become available, developers can look forward to an even more robust and flexible platform for building decentralized applications. The growing StackExchange community further reinforces the collaborative spirit that drives Solana's evolution.

With these updates, Solana is not just keeping pace with the rapidly evolving blockchain landscape – it's setting the standard for what a high-performance, developer-friendly blockchain should be. As the ecosystem continues to grow and mature, we can expect even more exciting developments in the future, further cementing Solana's position as a leading platform for decentralized innovation.

Facts + Figures

  • SIMD-0152 proposes a standardized approach for precompiles in Solana, potentially including support for Pythagorasprime.
  • Currently, Solana has two precompiles: ED25519 curve and SECP256K1 signatures.
  • Buffalo Joe created a separate compute budget crate to improve build times for developers.
  • Kevin made Borsh optional in the SDK and program crates, addressing issues from previous Borsh upgrades.
  • The Core BPF migration is ongoing, with recent changes allowing for upgrades via feature gates instead of multi-sig.
  • Web3.js Technology Preview 3 (TP3) has been released, focusing on smaller bundle size, improved efficiency, and easier extensibility.
  • Web3.js version 1.9921 introduces improved error logging, providing full stack traces instead of cryptic error codes.
  • The Solana StackExchange community has grown to 17,000 users, up from around 12,000 in recent memory.
  • Top contributors to Solana StackExchange include Jimmy, Aari, John Chigway, and James.
  • The Core BPF migration is starting with smaller programs before moving to more complex ones like the vote program.

Questions Answered

What is SIMD-0152 and why is it important for Solana?

SIMD-0152 is a proposal to create a standardized approach for precompiles in the Solana ecosystem. It's important because it will make it easier to add new precompiles in the future, streamlining the process that has historically been labor-intensive. This standardization could potentially include support for new cryptographic functions like Pythagorasprime, and it will reduce the workload on teams that need to implement these precompiles across different clients and financial applications.

How does making Borsh optional in SDK and program crates benefit developers?

Making Borsh optional in SDK and program crates provides significant benefits to developers by eliminating potential compatibility issues that arose from previous Borsh upgrades. In the past, moving from one version of Anchor to another (e.g., 0.26 to 0.28) required substantial work due to Borsh-related changes. With this new implementation, developers won't encounter these issues, making upgrades smoother and reducing the likelihood of breaking changes in the future. This change enhances the overall developer experience and stability of Solana development.

What improvements does the new Web3.js Technology Preview 3 (TP3) bring?

Web3.js Technology Preview 3 (TP3) brings several key improvements to Solana development. It focuses on creating a smaller bundle size, which can lead to faster loading times for applications. The preview also aims to improve efficiency in interactions with the Solana blockchain. Additionally, TP3 is designed to be more easily extensible, allowing developers to customize and build upon the library more effectively. The Solana team is actively seeking feedback on this preview to ensure it meets the needs of the developer community before its official release.

How does the new error logging in Web3.js version 1.9921 help developers?

The new error logging in Web3.js version 1.9921 significantly helps developers by providing more detailed and useful error information. Previously, developers would often encounter cryptic error codes like "0x1" or "0x0" without much context, making debugging difficult. With this update, Web3.js now displays the full log and stack trace for errors, which were always sent by the RPC but were being truncated. This improvement allows developers, especially those new to Solana, to more easily understand and diagnose issues in their code, potentially saving significant time and frustration during the development process.

What is the Core BPF migration and how will it change Solana's architecture?

The Core BPF (Berkeley Packet Filter) migration is an ongoing process to move native programs from the Solana runtime into dedicated BPF programs. This change will allow for more flexible and controlled upgrades of core programs through feature gates, rather than requiring version upgrades of the entire runtime. The migration is being approached cautiously, starting with smaller programs before moving to more complex ones. This architectural change will make Solana more modular and maintainable, allowing for easier updates and potentially improving overall system performance and flexibility.

How has the Solana StackExchange community grown, and why is this significant?

The Solana StackExchange community has grown significantly, reaching 17,000 users from around 12,000 in recent memory. This growth is significant because it indicates a rapidly expanding Solana developer ecosystem. A larger and more active StackExchange community means more resources and support are available for developers building on Solana. This growth helps lower the barrier to entry for new developers, facilitates knowledge sharing, and accelerates problem-solving within the community, all of which contribute to the overall health and growth of the Solana ecosystem.

What are precompiles in Solana and why are they important?

Precompiles in Solana are pre-existing functions that perform specific operations, often related to cryptographic processes, which are optimized for efficiency. Currently, Solana has two precompiles: one for the ED25519 curve and another for SECP256K1 signatures (Ethereum-compatible). These are important because they handle critical operations like signature verification in a highly optimized manner, contributing to Solana's high performance. The proposed standardization of precompiles (SIMD-0152) aims to make it easier to add more of these efficient functions in the future, potentially expanding Solana's capabilities and interoperability with other blockchain systems.

How is Solana improving its developer experience through these updates?

Solana is improving its developer experience through several key updates. The optional Borsh implementation in SDK and program crates eliminates potential compatibility issues during upgrades. The new Web3.js preview (TP3) aims to provide a more efficient and extensible library for interacting with Solana. Improved error logging in Web3.js version 1.9921 makes debugging easier by providing more detailed error information. The ongoing Core BPF migration will allow for more flexible upgrades of core programs. Additionally, the growing StackExchange community provides better support and resources for developers. Together, these updates make Solana development more accessible, efficient, and user-friendly.

Related Content

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 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 May 16 - IDL Standard, 1.14.17, and Dune

Explore Solana's latest developments including IDL standardization, 1.14.17 release progress, and Dune Analytics integration for enhanced on-chain data analysis.

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 - Trident, Unruggable, and SyscallGetSysvar

Explore Solana's latest developments including new ZK features, core BPF program conversions, rent collection changes, and exciting new developer tools like Trident and Unruggable wallet.

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 - 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 - April 9 - Flare and GetEpochStake

Discover the latest Solana developments including the Flare CLI for smart contract interaction, GetEpochStake proposal, and crucial performance enhancements for validators.

Solana Changelog - April 16 - Vote Instructions, Bank Forwarding, QoS

Discover the latest Solana upgrades including vote instruction deprecation, bank forwarding filters, and QoS enhancements for improved network performance and developer experience.

Solana Changelog May 16 - IDL Standard, 1.14.17, and Dune Analytics

Discover the latest Solana developments, including IDL standardization, 1.14.17 release progress, and Dune Analytics integration for enhanced on-chain data analysis.

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 - EpochStakes, SolFuzz, and Optimizations

Explore Solana's recent advancements including validator reward proposals, performance optimizations, and new developer resources in this comprehensive changelog.

Solana Changelog Jul 17 - Deprecations, Precompiles, and Developer Resources

Explore Solana's latest changes including precompile improvements, deprecated code removals, and exciting new developer resources in this comprehensive update.

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 - August 8th, 2022 - Offline Signing, QUIC & APR.dev

Explore Solana's newest features including offline message signing, QUIC protocol implementation, and developer resources like APR.dev and Svelte Scaffold.