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 - Agave Client, Compute Optimization, and Create-Solana-Program

By Solana-Changelog

Published on 2024-03-19

Explore Solana's latest developments including the Agave validator client, compute optimization strategies, and new tools like Create-Solana-Program in this comprehensive changelog.

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

Solana Changelog: Agave Client, Compute Optimization, and New Developer Tools

In the latest Solana Changelog, hosts Jacob and Nick dive deep into recent developments in the Solana ecosystem. This week's discussion covers a range of topics, from the newly rebranded Agave validator client to strategies for optimizing block space and compute usage. The hosts also explore new developer tools and resources that are set to enhance the Solana development experience.

Agave: The New Face of Solana's Validator Client

Agave, previously known as the Solana Labs Validator Client, has undergone a significant transformation. The ANZA team, responsible for core protocol development, has taken over the reins of this crucial component of the Solana network.

"This is a new name, new branding, roughly the same team, same core protocol engineers," Jacob explains. The transition to Agave represents a continuation of the high-quality development work that the Solana community has come to expect, now under a fresh identity.

The move to rebrand and relocate the validator client to the Agave repository signifies a strategic shift in how Solana's core infrastructure is managed and developed. It allows for more focused development and potentially faster iterations on improvements to the validator software.

Addressing Block Space Challenges on Solana

One of the most pressing issues facing the Solana network is the limitation of block space. Currently, there's a compute cap limit of 48 million units per block, which can lead to transaction drops during periods of high network activity.

Jacob outlines the problem: "If you have a lot of transactions, especially like right now where there's a ton of transactions going on in the network, you could potentially hit the block space cap and your transactions could potentially be dropped."

The discussion around increasing block space is nuanced, with various approaches being considered. Tully, a figure mentioned in the podcast, suggests aggressively increasing the block space to see how the network handles the increased load.

Nick offers a more cautious perspective: "I think potentially increasing the block space, maybe not aggressively at a point of an outage, hopefully not. But definitely increasing block space to some extent, I think could be interesting."

Optimizing Compute Usage: A Prerequisite to Block Space Expansion

Before considering a significant increase in block space, both hosts agree that optimizing compute usage should be a priority. Nick highlights a critical issue with the current system:

"Right now, the default, if you do not manually request a specific compute usage budget for a transaction, you get like what, 250k or 1 million? You get like some really, really high amount that most transactions don't use that by default. They have tons of wasted compute unit budget."

This inefficiency leads to wasted block space, as transactions are allocated more compute units than they actually need. Nick suggests implementing a more sensible default for average transactions or removing the default entirely, forcing developers to set a reasonable compute usage for their transactions.

Jacob concurs, adding: "We definitely need to have better ways of requesting the right compute. And there also needs to be more information about how to optimize your compute on your specific program."

The Economic Implications of Block Space Expansion

The hosts discuss the potential consequences of increasing block space without addressing underlying inefficiencies. Jacob draws an analogy to traffic management:

"It's going to be like increasing the number of lanes on a highway with cars being free and gas being free. It's not going to help."

This comparison underscores the need for economic incentives to encourage efficient use of network resources. Nick agrees, suggesting that any increase in block space should be accompanied by "economic back pressure so that the users are made uncomfortable, forcing the developers to optimize their programs better."

Priority Fees: A Guide to Navigating Congested Block Space

To help developers and users navigate the current block space constraints, the Solana team has published a comprehensive guide on using priority fees. Nick highlights this resource:

"If you're interested in how to use priority fees on Solana to help get you into that block space, because it's highly contentious right now, there's a guide on solana.com/developers/guides exactly on how to use priority fees."

This guide provides valuable information on setting appropriate compute limits for transactions, potentially helping to alleviate some of the current congestion issues on the network.

Tiered Storage and Cold Accounts: Evolving Concepts

The changelog also touches on developments in Solana's storage architecture. A commit related to tiered storage caught Nick's attention, particularly regarding the evolving concepts of cold accounts and state-compressed accounts.

While the specifics of these changes are part of the Agave client implementation and not required by consensus, they represent ongoing efforts to optimize Solana's infrastructure. Jacob notes, "It's not required by consensus, but it's an optimization on the validator client. And we love optimizations."

Create-Solana-Program: A New Tool for Rust Developers

One of the most exciting announcements in this changelog is the introduction of Create-Solana-Program, a tool developed by Loris from the ANZA team. Nick, who has been working on the Create-Solana-Dapp project, explains the significance of this new tool:

"This particular one from Loris is geared towards actually generating the Rust code and the interfaces and the clients for a Rust program itself. So Create-Solana-Dapp, great for generating a front end with the supported front end frameworks. But Loris's tool creates Create-Solana-Program, does the other side of generates a really composable stack for the Rust on-chain program side."

This tool has the potential to streamline the development process for Solana programmers, making it easier to set up and structure Rust-based smart contracts.

Integrating Front-End and Back-End Development Tools

The hosts discuss the possibility of integrating Create-Solana-Program with Create-Solana-Dapp in the future. This integration could provide a more comprehensive development experience, covering both the front-end and back-end aspects of Solana application development.

Nick envisions: "In the future, we're looking at ways how we can better integrate both of these together. So for Create-Solana-Dapp specifically, instead of us doing the current methodology that we're doing for generating the Rust programs, the goal is to be able to use this, which is going to be way more flexible and maintained for the Rust side of things."

Potential for Compute Optimization in Generated Code

Jacob raises an interesting possibility for the Create-Solana-Program tool: "Could this potentially make it easy for to bring a bunch of compute in an optimization to your program to, including easy ways to log pubkeys, easy way to basically do the entry point while at the same time keeping the front end connections the same?"

This suggestion highlights the potential for tools like Create-Solana-Program to not only simplify the development process but also to bake in best practices for compute optimization from the start.

The Solana Program GitHub Organization: A New Home for Core Programs

The changelog introduces the Solana Program GitHub organization, a new initiative that aims to centralize and streamline the management of core Solana programs.

Nick explains: "This is a newer GitHub organization that ANZA team is working on setting up. You can see the create Solana program listed right there. And some of these very common Solana program library programs, the SPL programs that you know, love you got the memo programs, stake program, address lookup tables."

This reorganization reflects the evolving landscape of Solana's development, with multiple organizations now collaborating on maintaining critical infrastructure.

Migrating Native Programs to BPF

An important development mentioned in the changelog is the ongoing effort to migrate programs that are currently enshrined in the Solana protocol to BPF (Berkeley Packet Filter) programs.

Nick elaborates: "Those programs are being migrated to BPF programs. So that way they're not tied with the runtime itself with the actual validator code. They're just standard programs. Like you can see the system program right here. All of these are being moved from slowly but surely from enshrined programs that are deployed with the validator versions to just BPF programs."

This transition will make it easier for alternative client implementations, like Fire Dancer, to support these core programs without having to reimplement them from scratch.

Stack Exchange: Fostering Community Knowledge Sharing

The hosts emphasize the importance of the Solana Stack Exchange in building a robust knowledge base for developers. They highlight the top contributors for the week and encourage community participation.

Jacob stresses the long-term impact of contributing to Stack Exchange: "It's so that you don't have to have people going into Discord and accelerating the development lifecycle of all developers in the future."

Nick adds: "If you're like most devs, when you go to Google Things on Google, trying to find some issue, some area you run into, find the solution, a lot of times you'll end up at Stack Exchange. Just up with the questions and the answers that you actually got good value from and did help you. And that helps the whole Stack Exchange ecosystem be even better."

Conclusion: A Thriving Ecosystem of Tools and Optimizations

This Solana Changelog highlights the dynamic nature of the Solana ecosystem, with ongoing efforts to improve performance, developer experience, and network efficiency. From the rebranding of the validator client to the introduction of new development tools and the continuous optimization of core protocols, Solana continues to evolve rapidly.

The discussions around block space optimization and compute usage efficiency underscore the community's commitment to scaling Solana responsibly. Meanwhile, new tools like Create-Solana-Program and resources such as the priority fees guide demonstrate the ecosystem's focus on empowering developers with better tools and knowledge.

As Solana continues to grow and face new challenges, the collaborative efforts of teams like ANZA, individual contributors, and the broader community will be crucial in maintaining Solana's position as a leading blockchain platform for high-performance decentralized applications.

Facts + Figures

  • Agave is the new name for the Solana Labs Validator Client, now managed by the ANZA team.
  • The current compute cap limit on Solana is 48 million units per block.
  • Default compute usage budget for transactions can be as high as 250k or 1 million units, often leading to wasted resources.
  • Simple transfers on Solana require only 300 compute units.
  • The Solana team has published a guide on using priority fees to navigate block space constraints.
  • Create-Solana-Program is a new tool developed by Loris from the ANZA team for generating Rust code for Solana programs.
  • The Solana Program GitHub organization is being set up to house core Solana programs, including SPL programs.
  • Core Solana programs are being migrated from enshrined programs to BPF programs for better maintainability and cross-client compatibility.
  • Stack Exchange continues to be a vital resource for Solana developers, with top contributors recognized weekly.
  • The hosts emphasize the need for economic incentives to encourage efficient use of network resources when considering block space expansion.

Questions Answered

What is Agave in the context of Solana?

Agave is the new name for the Solana Labs Validator Client. It's a validator client managed by the ANZA team, who are the core protocol developers for Solana. This rebranding represents a continuation of the high-quality development work on Solana's validator software, now under a fresh identity and with potentially more focused development efforts.

How is Solana addressing block space challenges?

Solana is considering various approaches to address block space challenges, including potentially increasing the block space limit. However, the primary focus is on optimizing compute usage within the existing constraints. This includes encouraging developers to set more accurate compute budgets for their transactions and potentially implementing economic incentives to discourage wasteful usage of network resources.

What is Create-Solana-Program?

Create-Solana-Program is a new tool developed by Loris from the ANZA team. It's designed to generate Rust code, interfaces, and clients for Solana programs. This tool complements Create-Solana-Dapp, which focuses on front-end development, by providing a streamlined way to set up the back-end infrastructure for Solana applications. It has the potential to simplify the development process and bake in best practices for compute optimization from the start.

Why is Solana migrating core programs to BPF?

Solana is migrating core programs from being enshrined in the protocol to BPF (Berkeley Packet Filter) programs. This transition makes these programs more flexible and easier to maintain. It also simplifies the process for alternative client implementations, like Fire Dancer, to support these core programs without having to reimplement them from scratch. This move is part of Solana's ongoing efforts to improve the modularity and maintainability of its core infrastructure.

How can developers contribute to the Solana ecosystem beyond coding?

Developers can significantly contribute to the Solana ecosystem by participating in the Solana Stack Exchange. This involves asking well-formulated questions, providing detailed answers, and upvoting helpful content. By contributing to Stack Exchange, developers help build a comprehensive knowledge base that benefits the entire Solana community, making it easier for both new and experienced developers to find solutions to common problems and learn about best practices in Solana development.

Related Content

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 - 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 - January 24, 2023 - Bankless Leader, Explorer Updates, Nonvote RPC

Explore Solana's latest developments including the Bankless Leader proposal, Explorer updates, and impressive ecosystem growth in this comprehensive changelog.

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 - January 24, 2023 - Bankless Leader, Explorer Updates, Nonvote RPC

Explore Solana's latest developments including the Bankless Leader proposal, Explorer updates, and impressive developer ecosystem growth in this comprehensive changelog.

Solana Changelog - October 18, 2022 - Unified Scheduler, BPF to SBF, and Thirdweb Solana!

Explore Solana's latest developments including the unified scheduler proposal, BPF to SBF migration, and Thirdweb's Solana support in this comprehensive breakdown.

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 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 - 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 - 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 - 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 May 31: Interfaces, Solang, and Solana ChatGPT

Explore the latest Solana developments including interfaces, Solang Compiler v0.3.0, and the new Solana ChatGPT plugin in this comprehensive changelog.

Solana Changelog Jul 31 - New Hackathon, Custom Anchor Discriminators, and Blockchain Optimizations

Explore Solana's latest developments including the Radar hackathon, custom Anchor discriminators, ZK compression on DevNet, and blockchain optimizations 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 - Token Extensions and Transaction Size Fees

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