Earn 5.75% APY staking with Solana Compass + help grow Solana's ecosystem

Stake natively or with our LST compassSOL to earn a market leading APY

Podcast Summary Changelog

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

Solana 🧭 Compass By Solana 🧭 Compass Mar 19, 2024 15 min read

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.


Comments

Please login to leave a comment.

Related Content

Solana Changelog - Mar 12 - Solana hackathon, Anza fork, Anchor IDLs, Windows support

Exciting updates in the Solana ecosystem including the Renaissance Hackathon, Anza's fork of the validator client, improvements to Anchor IDLs, and enhanced Windows support.

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.

Jump Crypto: The State Of Firedancer | Michael McGee

Michael McGee from Jump Crypto discusses Firedancer's development challenges, the conformance problem, Alpenglow impact, and why Solana's compute limit is holding back performance.

Alpenglow: Solana's 100x Improvement

Solana's Alpenglow proposal promises 100x faster finality at 150ms. Deep dive into what this means for validators, Firedancer, and the future of blockchain performance.

Solana Changelog - Mar 12 - Solana hackathon, Anza fork, Anchor IDLs, Windows support

Exciting updates in the Solana ecosystem: Renaissance Hackathon begins, Anza forks Solana validator client, and major Anchor IDL enhancements on the horizon.

Solana Changelog Jul 24 - EpochRewards, Agave v2.0 Release Schedule, Solana Godot SDK

Dive into the latest Solana updates, including EpochRewards documentation, Agave v2.0 release schedule, Solana Godot SDK for game development, and the approval of SecP256R1 precompile for enhanced hardware compatibility.

Anza D1: The Future of Solana Core Development

Discover how Solana is doubling block space, reducing latency, and improving user experience through innovative core development and modular architecture.

Solana Changelog - Nov 20 - Agave validator v2.0, loaded account costs

Explore Solana's latest upgrades including Agave 2.0, performance improvements, and the upcoming Web3.js v2 release. Learn about new features, compute unit costs, and ecosystem developments.

Solana's Path To Decentralized Nasdaq | Max Resnick

ANZA's lead economist Max Resnick reveals Solana's ambitious roadmap to compete with TradFi, including Alpenglow timeline, multiple concurrent leaders, and revolutionary market structure changes

Jump Crypto: How To Improve Solana?

Jump Crypto's Michael McGee reveals where Solana's biggest performance wins are hiding, how Firedancer achieves hundreds of thousands of TPS, and why most blockchain problems are just bugs waiting to be fixed.

Solana Changelog Oct 9 - Program Runtime ABI v2, Updating Rust to 1.81.0, Agave v2.0 transition

Explore Solana's latest updates including Program Runtime ABI v2, Rust 1.81.0 upgrade, and the transition to Agave v2.0. Learn how these changes improve network efficiency and developer workflows.

Solana Changelog Nov 6th

Explore the latest Solana updates including Agave v2.1, Web3.js v2 release candidate, SIMD-0187 proposal, and upcoming Anchor v0.31.0 features in this comprehensive changelog.

The State of the Network: Anza

Solana's Anza team unveils major network upgrades: 2 years uptime, 200x faster networking, 150ms finality with Alpenglow, and revolutionary market structure changes

Solana Changelog Aug 28 - Simulate Compute Units, Deprecating Legacy Vote Instructions, and Radar Hackathon

Discover the latest Solana updates including CLI compute unit simulation, deprecated vote instructions, and the exciting Radar hackathon starting September 2nd.

Alpenglow: Solana's Largest Protocol Upgrade Ever | Brennan Watt, Anza

Explore how Alpenglow, Solana's largest protocol upgrade, aims to revolutionize transaction finality and network performance while maintaining decentralization and security.

Solana tokens

Solana Token Markets

Explore all tokens →