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

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

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

Learn more

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

By Solana-Changelog

Published on 2023-05-02

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

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

Solana Changelog: Account Interfaces, Web3.js Experimental, and Tea

In the latest Solana Changelog, Nick and Jonas from the Solana Foundation discuss recent updates and improvements to the Solana ecosystem. This week's highlights include new account interfaces, experimental changes to Solana Web3.js, and the introduction of the Tea package manager for easier Solana installations.

Account Interfaces: A New Frontier for Solana Programs

One of the most exciting developments discussed in this changelog is the proposal for account interfaces in Solana programs. This new feature, outlined in an sRFC (Solana Request for Comments), aims to standardize how programs interact with accounts, potentially revolutionizing the way developers create and use Solana programs.

Account interfaces would define a standard set of accounts required for specific operations. For example, a transfer operation might require an owner account, a to account, and an authority account. This standardization allows for greater interoperability between programs and opens up new possibilities for token standards and other applications.

Jonas explains the concept: "The interface would define a certain amount of accounts, for example, for a transfer, it would be owner, to, authority, and then just how much you want to transfer. Now, how much is actually data, not so it would be owner, to, authority, and the mint. And then your implementation could have some additional accounts to this."

This approach offers flexibility while maintaining a consistent structure across different implementations. Developers interested in learning more about this proposal can find detailed information on the Solana forum.

Web3.js Experimental: Streamlining Solana Development

The Solana Web3.js library, a crucial tool for developers working with Solana, has undergone significant changes in its experimental version. These updates aim to improve performance, reduce bundle size, and enhance developer experience.

Reduced Bundle Size

One of the most notable improvements is the dramatic reduction in bundle size. Nick explains, "It makes the bundle size so very small. Like when you start talking about RPC methods, it gets down to about 3 KB instead of the massive 40, 50 KB that they are currently."

This reduction is achieved through a clever use of TypeScript interfaces. Jonas asks for clarification: "How do these interfaces, how do they not have implementation, but still can do the RPC codes?" Nick explains that the TypeScript interfaces are removed during the transpilation process to JavaScript, resulting in a much smaller bundle size for production builds.

Improved RPC Handling

The experimental version also introduces new features for handling RPC requests. Developers can now abort RPC requests and use different transfer protocols simultaneously. These improvements offer greater control and flexibility when working with Solana's RPC methods.

Removal of RPC Batching

A significant change in the experimental version is the removal of RPC batching. While this feature allowed developers to send multiple RPC requests simultaneously, it came with several drawbacks. Stephen Luscher, in a detailed Twitter thread, explains the reasoning behind this decision:

  1. Performance issues: If one request in a batch took longer to process, it would delay the entire batch.
  2. Load problems for RPC nodes: Large batches of requests could cause strain on RPC nodes.
  3. Error handling difficulties: If one request in a batch failed, it could cause issues for the entire batch.

As an alternative to batching, developers can use JavaScript Promises to send multiple requests concurrently and handle them separately. This approach offers more granular control and better error handling.

Tea: Simplifying Solana Installation

The introduction of Tea, a new package manager, promises to significantly simplify the process of installing Solana and its dependencies. Developed by the team behind Homebrew, Tea aims to streamline the installation process for developers.

Jonas explains, "If you use the Tea packet manager, then all you need to do is to type Solana in your terminal and install all the dependencies like Rust, for example, and it will be just magically doing it in the back end."

This tool has the potential to lower the barrier to entry for new Solana developers, making it easier than ever to get started with Solana development. Additionally, Tea has plans to support open-source projects by providing ways for them to earn money, potentially addressing the issue of underfunded and underrecognized projects in the ecosystem.

Validator Improvements: Enhancing Network Performance

Several commits highlighted in the changelog focus on improving the experience for Solana validators, which in turn enhances the overall performance and reliability of the Solana network.

Automatic Snapshot Purging

One quality-of-life improvement for validators is the automatic purging of snapshot directories before archiving. Nick explains, "It makes it so when they're actually restarting their own validator or if you're trying to like start up a fresh validator, it'll automatically purge the snapshot directory."

This feature simplifies the process of restarting validators or updating software, reducing the manual work required by validator operators.

Optimized Bootstrap RPC Sorting

Another improvement for validators is the sorting of vetted bootstrap RPCs based on ping times. Nick elaborates, "Every time they do a restart of a validator, not like the whole network, but every time they do a restart of a validator, you can download the most recent snapshot of the entire state of Solana. And this just makes it a little bit easier, a little bit faster to try to download those snapshots."

This optimization allows validators to catch up to the network more quickly, improving the overall responsiveness and reliability of the Solana network.

TPU QUIC Field Addition

The addition of a TPU QUIC field to the RPC contact info is another noteworthy improvement. Jonas explains, "This will probably make the transaction from the legacy contact info to the new contact info easier. And yeah, now you can like get the TPU QUIC field from a certain validator."

This change facilitates the transition to newer networking protocols, potentially improving communication efficiency within the Solana network.

Compute Unit Limit Correction

A bug fix related to compute unit limits was also highlighted in the changelog. The correction ensures that compute unit limits are accurately calculated for built-in programs. Nick clarifies, "It's just like a sorted little minor tweaks and like the knobs to turn in calculate compute units and the whole like compute budget itself, a little bit of changes to that."

This adjustment will result in slight changes to the compute units assigned to transactions, leading to more accurate resource allocation and potentially improving overall network efficiency.

The Future of Solana Development

The changes and improvements discussed in this changelog demonstrate Solana's commitment to continual enhancement of its ecosystem. From streamlining development tools to optimizing validator operations, these updates aim to make Solana more accessible, efficient, and powerful for developers and users alike.

The introduction of account interfaces, if implemented, could lead to more standardized and interoperable Solana programs. The experimental changes to Web3.js promise to make client-side development more efficient and flexible. Meanwhile, tools like Tea have the potential to lower the barrier to entry for new Solana developers.

As the Solana ecosystem continues to evolve, it's clear that the focus remains on improving performance, usability, and developer experience. These ongoing enhancements contribute to Solana's position as a leading blockchain platform for building fast, scalable decentralized applications.

Developers, validators, and users of the Solana ecosystem can look forward to benefiting from these improvements in the coming weeks and months. As always, the Solana community is encouraged to provide feedback, participate in discussions, and contribute to the ongoing development of the platform.

Stay tuned for future changelogs and updates from the Solana team, as they continue to push the boundaries of what's possible in blockchain technology.

Facts + Figures

  • Account Interfaces proposal aims to standardize how Solana programs interact with accounts.
  • Solana Web3.js experimental version reduces bundle size for RPC methods from 40-50 KB to about 3 KB.
  • RPC batching has been removed from the experimental version of Solana Web3.js.
  • Tea package manager simplifies Solana installation process, including dependencies like Rust.
  • Automatic snapshot purging feature added for Solana validators.
  • Vetted bootstrap RPCs are now sorted based on ping times for faster validator catch-up.
  • TPU QUIC field added to RPC contact info for easier transition to new networking protocols.
  • Compute unit limits are now correctly calculated for built-in Solana programs.
  • The Solana Web3.js repository has moved from the main Solana monorepo to its own repository.
  • Tea package manager is developed by the team behind Homebrew.
  • Account Interfaces proposal is detailed in sRFC-00003 on the Solana forum.
  • Solana Web3.js experimental version allows aborting RPC requests and using different transfer protocols simultaneously.
  • Tea package manager plans to support open-source projects by providing ways for them to earn money.

Questions Answered

What are Account Interfaces in Solana?

Account Interfaces are a proposed feature for Solana programs that aim to standardize how programs interact with accounts. They define a set of required accounts for specific operations, such as transfers, allowing for greater interoperability between programs. This standardization could potentially revolutionize the way developers create and use Solana programs, opening up new possibilities for token standards and other applications.

How does the experimental version of Solana Web3.js improve performance?

The experimental version of Solana Web3.js improves performance primarily by reducing the bundle size. It achieves this by representing RPC methods as TypeScript interfaces, which are removed during the transpilation process to JavaScript. This results in a dramatic reduction in bundle size from 40-50 KB to about 3 KB for RPC methods. Additionally, it introduces features like the ability to abort RPC requests and use different transfer protocols simultaneously, offering developers more control and flexibility.

Why was RPC batching removed from Solana Web3.js?

RPC batching was removed from the experimental version of Solana Web3.js due to several drawbacks. These include performance issues where one slow request could delay the entire batch, load problems for RPC nodes when dealing with large batches, and difficulties in error handling. As an alternative, developers are encouraged to use JavaScript Promises to send multiple requests concurrently and handle them separately, providing more granular control and better error handling.

What is the Tea package manager and how does it simplify Solana installation?

Tea is a new package manager developed by the team behind Homebrew. It simplifies the Solana installation process by automating the installation of Solana and its dependencies, including Rust. Users can simply type "Solana" in their terminal, and Tea will handle the installation process in the background. This tool aims to lower the barrier to entry for new Solana developers and streamline the setup process.

How do recent validator improvements enhance Solana network performance?

Recent validator improvements enhance Solana network performance in several ways. Automatic snapshot purging simplifies the process of restarting validators or updating software. Optimized bootstrap RPC sorting based on ping times allows validators to catch up to the network more quickly. The addition of a TPU QUIC field to RPC contact info facilitates the transition to newer networking protocols. These improvements collectively contribute to a more responsive and reliable Solana network.

What changes were made to compute unit limits in Solana?

A bug fix was implemented to ensure that compute unit limits are accurately calculated for built-in Solana programs. This correction involves minor adjustments to the calculation of compute units and the overall compute budget. As a result, there will be slight changes to the compute units assigned to transactions, leading to more accurate resource allocation and potentially improving overall network efficiency.

How does the removal of RPC batching affect Solana developers?

The removal of RPC batching from the experimental version of Solana Web3.js requires developers to adopt alternative approaches for handling multiple RPC requests. Instead of batching, developers are encouraged to use JavaScript Promises to send multiple requests concurrently and handle them separately. This change offers more granular control over individual requests and improves error handling capabilities, although it may require some adjustments to existing code that relies on RPC batching.

What future plans does the Tea package manager have for supporting open-source projects?

While specific details weren't provided, the Tea package manager has plans to support open-source projects by providing ways for them to earn money. This initiative aims to address the issue of underfunded and underrecognized projects in the ecosystem. The exact mechanisms for this support are yet to be revealed, but it could potentially create new opportunities for sustainability in open-source development within the Solana ecosystem.

Related Content

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

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

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: 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 Aug 14

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

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 - 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 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 - January 31, 2023 - Geyser Improvements, Program-Test, and Bokken

Explore the latest Solana updates including a proposed fee market for storage, Geyser improvements, and the game-changing Bokken debugger for Solana programs.

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 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 May 23 - Lite RPC, Programmable Smart Wallets, and Idle Games

Explore the latest Solana updates including Lite RPC for efficient transactions, programmable smart wallets, and exciting developments in game creation on the blockchain.

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

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 - 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 Changelog: MoveStake, Core Concepts, and Bigtable Support

Dive into the latest Solana updates including proposed MoveStake instructions, CLI enhancements, and a comprehensive revamp of core concept documentation.