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

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

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

Learn more

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

By Changelog

Published on 2024-03-19

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

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

Solana's Latest Developments: Agave Client, Block Space, and Developer Tools

In the latest episode of the Solana Changelog, hosts Jacob and Nick dive into the recent developments in the Solana ecosystem. From the Anza team's Agave validator client to discussions on increasing block space and new developer tools, this week's update covers critical aspects of Solana's ongoing evolution.

Anza's Agave: A New Chapter for Solana Validator Clients

The Solana ecosystem continues to expand with the introduction of Anza's Agave validator client. This development marks a significant shift in the landscape of Solana validators, building upon the foundation laid by the Solana Labs validator client.

What is Agave?

Agave is a new validator client developed by the Anza team, who are known for their work as core protocol engineers within the Solana ecosystem. This client represents a fork of the original Solana Labs validator client, now under the stewardship of the Anza team.

The transition to Agave reflects a broader trend of specialization and diversification within the Solana ecosystem. While it maintains the core functionality of a Solana validator, Agave brings new branding and potentially unique optimizations to the table. This move aligns with Solana's commitment to fostering a diverse and robust network of validators.

Addressing Solana's Block Space Challenges

One of the most pressing issues facing the Solana network is the limitation of block space, which directly impacts transaction throughput and user experience. The current compute cap limit of 48 million per block has led to discussions about potential solutions to increase network capacity.

Understanding the Current Limitations

The 48 million compute unit cap per block serves as a critical constraint on Solana's transaction processing capabilities. This limit applies to all transactions within a block, regardless of their individual compute unit usage. As a result, during periods of high network activity, users may experience transaction drops due to block space limitations.

Proposals for Increasing Block Space

Tully, a prominent figure in the Solana community, has suggested an aggressive increase in block space to test the network's capacity. However, this approach comes with its own set of challenges and considerations.

Nick offers a nuanced perspective on the matter:

"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. But I definitely think that there should be things that go on before that."

Optimizing Compute Usage

Before implementing drastic increases in block space, both hosts agree that optimizing compute usage per transaction should be a priority. The current system allows for significant wasted compute resources due to high default compute budgets for transactions.

Nick explains:

"So 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 unnecessary consumption of block space, potentially exacerbating congestion issues during high-traffic periods.

Proposed Solutions

Several ideas were discussed to address the block space challenge:

  1. Better optimization of compute usage per transaction
  2. Implementing more sensible defaults for compute budgets
  3. Removing default compute budgets, forcing developers to set appropriate limits
  4. Increasing developer awareness about compute optimization techniques
  5. Introducing economic incentives to encourage efficient use of block space

Jacob emphasizes the importance of developer education:

"People are just blindly writing code because they don't know what the after effects are. Also, as you said, we get basically free compute. If you have right now, it's a per instruction on a transaction without using the compute request call, you can get 200k for free of compute units per instruction on a specific transaction adds up quick."

The Role of Priority Fees in Managing Block Space

In light of the block space challenges, the use of priority fees has become an increasingly important tool for users and developers to ensure their transactions are processed in a timely manner.

Understanding Priority Fees

Priority fees allow users to pay an additional fee to increase the likelihood of their transaction being included in the next block. This mechanism becomes particularly crucial during periods of network congestion when block space is at a premium.

New Guide on Using Priority Fees

To help developers and users navigate the complexities of priority fees, Solana has published a comprehensive guide. Jacob 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 detailed information on implementing priority fees, including specifics on requesting appropriate compute limits for different types of transactions. For instance, it advises that simple transfers require only 300 compute units, a stark contrast to the often-excessive default allocations.

Tiered Storage and Cold Accounts

The discussion also touched on ongoing developments in Solana's storage architecture, particularly concerning tiered storage and the concept of cold accounts.

Tiered Storage Optimizations

A notable commit in the Agave client repository addresses changes to tiered storage implementation. While specific details were not elaborated upon, this development hints at ongoing efforts to optimize data storage and retrieval within the Solana ecosystem.

Cold Accounts vs. State Compressed Accounts

The hosts briefly mentioned a shift in approach regarding cold accounts and state compressed accounts. This change, while specific to the Agave client implementation, reflects broader considerations in optimizing blockchain data storage and access patterns.

Nick notes:

"It's not required by consensus, but it's an optimization on the validator client. And we love optimizations."

These optimizations, while not mandated by the Solana consensus mechanism, demonstrate the ongoing efforts to improve validator performance and efficiency.

New Developer Tools: create-solana-program

In an exciting development for Solana developers, Loris from the Anza team has introduced a new tool called create-solana-program. This tool aims to simplify the process of creating Solana programs, complementing the existing create-solana-dapp utility.

What is create-solana-program?

create-solana-program is a command-line interface (CLI) tool designed to generate boilerplate code for Solana programs written in Rust. It provides developers with a quick and efficient way to set up the initial structure and interfaces for their on-chain programs.

Nick explains the tool's functionality:

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

Integration with create-solana-dapp

The hosts discussed the potential for integrating create-solana-program with the existing create-solana-dapp tool. This integration could provide a more comprehensive solution for developers, covering both the on-chain program development and front-end application creation.

Nick envisions the future collaboration:

"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 Optimizations

The discussion also touched on the possibility of create-solana-program facilitating easier implementation of compute optimizations. This could include streamlined methods for logging public keys and handling program entry points while maintaining consistent front-end connections.

Jacob speculates on the potential benefits:

"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 pub keys, easy way to basically do the entry point while at the same time keeping the front end connections the same?"

While the exact implementation details are yet to be determined, the hosts agreed that such features would be valuable additions to the tool, potentially contributing to more efficient Solana programs in the long run.

The Solana Program GitHub Organization

Another significant development discussed in the changelog is the creation of a new GitHub organization dedicated to Solana programs. This organization, simply named "Solana Program," represents a collaborative effort to centralize and maintain critical Solana programs.

Purpose of the Solana Program Organization

The Solana Program GitHub organization serves as a new home for many essential Solana programs, including those from the Solana Program Library (SPL) and native system programs. This move reflects a broader shift in how core Solana programs are maintained and developed.

Nick elaborates on the significance of this change:

"Basically, what's happening with this repo is a lot of the SPL programs and how they're maintained. They're currently under the Solana Labs GitHub organization and Solana Labs has been maintaining them. But with this Solana Labs ANZA split and you've got the fire dancer team doing all their amazing work, there's more and more organizations that are working together to maintain all of the programs that are so common on the Solana blockchain itself."

Transition to BPF Programs

One of the key aspects of this organizational shift is the gradual transition of native, enshrined programs to BPF (Berkeley Packet Filter) programs. This change decouples these critical programs from the validator runtime, allowing for more flexible updates and maintenance.

Nick explains the process:

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

Benefits for the Ecosystem

This transition and centralization of Solana programs offer several benefits to the ecosystem:

  1. Easier maintenance and updates for core programs
  2. Simplified implementation for alternative validator clients
  3. Enhanced collaboration between different teams working on Solana's core infrastructure
  4. Improved transparency and accessibility for developers looking to understand or contribute to these programs

Jacob highlights the potential impact on alternative validator implementations:

"This will be really cool, especially when they do do that move to BPF. So that like fire dancers had a lot of time spent trying to implement these native programs on Solana. If they're just all BPF in all one single location, we can definitely make it easier overall for a new clients to implement these native programs."

Solana Stack Exchange: Fostering Developer Support

The changelog also touched on the importance of the Solana Stack Exchange in supporting the developer community. This platform serves as a crucial resource for developers seeking answers to their Solana-related questions.

Top Contributors of the Week

The hosts highlighted the top contributors to the Solana Stack Exchange for the week:

  1. John
  2. Whitezill
  3. Breeze Wang

These individuals were recognized for their valuable contributions in answering questions and supporting the Solana developer community.

The Importance of Stack Exchange

Both hosts emphasized the significance of Stack Exchange in accelerating the development process and creating a lasting knowledge base for the Solana ecosystem.

Jacob explains:

"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. So definitely if you're interested in helping out, please do. And the simplest way you can help out is just upvote good questions and answers."

How to Contribute

The hosts encouraged listeners to participate in the Solana Stack Exchange, even if they don't feel qualified to answer questions directly. Simple actions like upvoting helpful questions and answers can significantly impact the platform's effectiveness.

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 Rapidly Evolving Ecosystem

This week's Solana Changelog highlights the dynamic nature of the Solana ecosystem. From the introduction of new validator clients like Agave to ongoing discussions about increasing block space and the development of new tools like create-solana-program, it's clear that Solana continues to evolve at a rapid pace.

The challenges faced by the network, such as block space limitations, are being met with innovative solutions and collaborative efforts. The transition of core programs to BPF and the centralization of program repositories demonstrate a commitment to flexibility and ease of maintenance.

As the ecosystem grows, the importance of developer support through platforms like Stack Exchange becomes increasingly apparent. The Solana community's focus on education, optimization, and collaborative problem-solving bodes well for the network's future.

With these developments, Solana is positioning itself to address current limitations while laying the groundwork for future scalability and efficiency. As the blockchain landscape continues to evolve, Solana's adaptive approach and focus on developer experience suggest a promising path forward for the ecosystem.

Facts + Figures

  • Anza's Agave is a new validator client forked from the Solana Labs validator client
  • The current compute cap limit on Solana is 48 million per block
  • Simple transfers on Solana require only 300 compute units
  • Without specifying, transactions can receive a default of 250k or 1 million compute units
  • The Solana Program GitHub organization is now home to many core Solana programs
  • Core Solana programs are being migrated from enshrined programs to BPF programs
  • The top Stack Exchange contributors for the week were John, Whitezill, and Breeze Wang
  • create-solana-program is a new CLI tool for generating Rust code for Solana programs
  • Solana has published a guide on how to use priority fees at solana.com/developers/guides
  • The Solana ecosystem is exploring ways to increase block space and optimize compute usage

Questions Answered

What is Anza's Agave validator client?

Agave is a new validator client developed by the Anza team, who are core protocol engineers within the Solana ecosystem. It's a fork of the original Solana Labs validator client, now maintained and branded under the Anza team. This client represents a part of the ongoing diversification and specialization within the Solana validator landscape, potentially bringing unique optimizations while maintaining core Solana validator functionality.

How is Solana addressing block space challenges?

Solana is exploring multiple avenues to address block space challenges. These include discussions about increasing the overall block space, optimizing compute usage per transaction, implementing more sensible defaults for compute budgets, and educating developers on efficient coding practices. There's also consideration of economic incentives to encourage more efficient use of block space. The community is cautious about aggressive increases without first implementing optimizations and better practices.

What is the create-solana-program tool?

create-solana-program is a new command-line interface (CLI) tool developed by Loris from the Anza team. It's designed to generate boilerplate code, interfaces, and clients for Rust-based Solana programs. This tool complements the existing create-solana-dapp utility, which focuses on front-end development. There are plans to potentially integrate these tools in the future to provide a more comprehensive solution for Solana developers, covering both on-chain program development and front-end application creation.

What changes are happening with Solana's core programs?

Solana is transitioning many of its core programs, including those from the Solana Program Library (SPL) and native system programs, to BPF (Berkeley Packet Filter) programs. This transition involves moving these programs from being enshrined in the validator runtime to standalone BPF programs. Additionally, a new GitHub organization called "Solana Program" has been created to centralize and maintain these critical programs, facilitating easier updates and collaboration between different teams working on Solana's infrastructure.

How can developers contribute to the Solana ecosystem through Stack Exchange?

Developers can contribute to the Solana ecosystem through Stack Exchange by answering questions, upvoting helpful questions and answers, and generally participating in the community. Even if someone doesn't feel qualified to answer questions directly, simply upvoting good content helps improve the platform's effectiveness. This participation helps create a lasting knowledge base for the Solana ecosystem and accelerates the development process by providing easily accessible solutions to common problems.

What is the current state of priority fees on Solana?

Priority fees on Solana are becoming increasingly important as a tool for managing transaction processing during times of network congestion. Solana has published a comprehensive guide on how to use priority fees, available at solana.com/developers/guides. This guide provides detailed information on implementing priority fees, including specifics on requesting appropriate compute limits for different types of transactions. Using priority fees effectively can help ensure transactions are processed in a timely manner, especially when block space is at a premium.

How is Solana addressing compute unit optimization?

Solana is addressing compute unit optimization through several approaches. There's a push for better developer education about efficient coding practices and the importance of requesting appropriate compute budgets. The ecosystem is also considering implementing more sensible defaults for compute usage and potentially removing default compute budgets altogether, forcing developers to set appropriate limits. Tools like create-solana-program may also incorporate features to facilitate easier implementation of compute optimizations in the future.

What is the significance of the new Solana Program GitHub organization?

The new Solana Program GitHub organization represents a significant shift in how core Solana programs are maintained and developed. It serves as a centralized repository for many essential Solana programs, including SPL programs and native system programs that are being transitioned to BPF. This organization facilitates easier maintenance, updates, and collaboration between different teams working on Solana's core infrastructure. It also simplifies the process for alternative validator clients to implement these core programs, potentially leading to a more diverse and robust Solana ecosystem.

Related Content

Solana Changelog - Agave Client, Compute Optimization, and Create-Solana-Program

Explore Solana's latest developments including the Agave validator client, compute optimization strategies, and new tools like Create-Solana-Program 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 - 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 - 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 - 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.

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: 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 - 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 - 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 - 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 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 - September 13th, 2022 - Transaction v0, Fee Markets for Storage & SuperTeam Earn!

Explore Solana's latest developments including versioned transactions, fee markets for storage, and the exciting launch of SuperTeam Earn.

Solana Changelog: Confidential Transfers, PubSub Upgrades, and Developer Resources

Explore Solana's latest updates including confidential transfers in token CLI, PubSub improvements, and new developer resources for cryptography and program architecture.

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