Solana Tech Roundup
This week Mainnet-beta reached supermajority on 1.9, bringing a slew of performance improvements and features waiting to be activated. 1.10 should come shortly afterwards with QUIC, bringing even more performance improvements to Solana.
Proposal Highlight
Return Data from BPF Programs
In Solidity it is permitted to return any number of values from a function. With integrations like Solang, return data needs to be permitted on RPC, Transactions, and CPI.
This proposal unlocks the capability to return data in your transactions. Using sol_set_return_data
and sol_get_return_data
, you can return data to the callee of whatever instruction is executed. This return data is limited to 1024 bytes.
This was added as a part of 1.9, and is currently activated as of slot 117936008.
Commit Highlights
- getEstimatedFees on Transactions
- As a part of 1.9, fees are changing slightly for transactions. To get the estimated fees for a transaction, you would normally call
getFeeForMessage
on the JSON RPC API. This commit makes it easy to get the fees given a Transaction in web3.js.
- As a part of 1.9, fees are changing slightly for transactions. To get the estimated fees for a transaction, you would normally call
- Geyser Plugins
- The community created Geyser Plugins enable you to capture transactions, blocks, and account writes in more formats than postgres now. Kafka, SQS, RabbitMQ, gRPC, and more supported!
List of Changes:
March 11
- Adding RocksDB metric reporting macro
- Add Pyth support to Explorer
- Allow search for programIds across clusters on explorer
- Get Estimated Fees for web3.js
- With the new fee changes on Solana, you can now get your fees for a transaction with
getEstimatedFees()
- With the new fee changes on Solana, you can now get your fees for a transaction with
- Add web3.js cjs build
March 13
- If account limit is exceeded at banking stage, drop the exceeding transactions
- This is very important to note because transactions that exceed the account limit cap will not only be dropped, but not retried and will have to be done client-side.
March 14
- Clean up blockstore processor
- Updating Accountdb plugins to be a part of Geyser plugins
- Geyser plugins allow for a lot more ways on getting transaction/blocks/account writes. Super extensible!
March 15
March 16
- Make payer and system program optional when extending a funded lookup table
- This is continued work on Transaction V2 lookup tables. Check out the documentation if you haven't already.
March 17
- Making Address Lookup Table Program Crate BPF compatible
- This is a precursor to getting the program fully ready to be used
- CLI support for versioned transactions
- New V2 transactions coming with the address lookup table
- Adding metrics for flushing and estimated memory
- Make eviction check more efficient
Newsletter
There is now a newsletter version of the Solana Tech Roundup. Be sure to sign up here if you haven't already.