Solana Tech Roundup
The Solana StackExchange election is still going on, where you can vote for your moderators that help curate and answer technical questions. Help vote the new moderators in to make it easier to use the Solana StackExchange. Finally, If you're a developer going to Breakpoint November 4-7, make sure you apply for a discounted developer ticket.
Proposal Highlight
Upgradable Program Recovery
Today if you close a program, the program and associated accounts cannot be recovered. This proposes a way to recovery upgradable programs, making the funds not entirely lost in the case of accidental closure.
The proposal is still being discussed. Join the discussion on Github!
Commit Highlights
web3.js feat: update Connection to support versioned transactions
- Add support for versioned transaction fields in getTransaction, getParsedTransaction, getBlock, and getTransactions responses
Set cap for new allocations per transaction
- Set a per-transaction cap on the amount of accounts data space that can be allocated up to 20MB.
List of Changes
August 26
- Solana SDK (Rust): Relax keypair ordering restriction for VersionedTransaction::try_new
- Callers can't always anticipate the order of signer keys in a compiled message so this method should be flexible enough to handle keypairs in any order.
- Solana explorer: Add information about NFToken (**notes alternative NFT standard) NFTs and Collection
- This adds NFToken support to the Solana Explorer so that users can see NFToken NFTs and Collections and do some basic /exploring/.
- Validator feature: Switch concurrent replay from feature to param
- Concurrent slot replay has been merged but is currently not active and controlled by a feature switch. Switching to a parameter would allow some set of validators to opt in to testing this capability.
- Zk token sdk: batch discrete log
- It is possible to take advantage of batch compression to improve the performance, but the current implementation does not use batching.
- Validator: Fix startup panic if removing accounts directory fails
August 28
- web3.js fix: replace tweetnacl impl
- replace the ed25519 keygen, signing, and verifying algorithms with smaller ones having fewer dependencies.
August 29
- web3.js feat: add VersionedMessage.deserializeMessageVersion utility function
- Lack of utility function to check the version of a serialized message without fully deserializing the message
- Set cap for new allocations per transaction
- Set a per-transaction cap on the amount of accounts data space that can be allocated to 20MB.
August 30
- Featurize spinner in rpc-client and tpu-client
- The client progress bars pull in dependencies that are only useful when building a command-line. Wrap spinner module and client methods that use it in a spinner feature in rpc-client and tpu-client
August 31
- web3.js feat: update Connection to support versioned transactions
- Add support for versioned transaction fields in getTransaction, getParsedTransaction, getBlock, and getTransactions responses
- collect min prioritization fees when replaying sanitized transactions
- Users need to know the estimated minimum compute-unit price that their transactions should have in order to land in block. A cache of block minimum prioritization fee is populated, transaction by transaction, during replay. RPC service can query it to provide user estimated min fee to land to block, or access particular write account.