Solana Tech Roundup
This past week there has been progress on offline message signing. This highly requested feature is finally merged and should be making its way to being implemented on the ledger. Be on the lookout for it!
Breakpoint starts next week! If you haven't gotten your tickets and you're a developer, make sure you apply for a discounted developer ticket.
Change Highlight
Support 2x Transaction Size
Currently the network supports transactions of size 1280 bytes, 1232 of which you can use when sending transactions. With the adoption of QUIC coming on the network the ability to double that size now becomes possible. Transaction sizes in the future could be two times or more the size of transactions today, enabling developers to do more things with their programs. You can follow the work today on Github.
Commit Highlights
Add off-chain messages support
- Big feature people have been looking forward to. Adds signing of non-transaction messages with a Solana wallet
Replace deploy command with program deploy in tests
- This PR deprecates Solana Deploy command in tests for non upgradeable programs.
List of Changes
14th October
- [zk-token-sdk] add pubkey proof
- Add a proof-of-knowledge public key validity proof instruction for the twisted ElGamal public key.
- Send both an EAH and a snapshot request from
set_root()
BankForks::set_root()
can send an EAH request and a snapshot request in each invocation.
15th October
- [zk-token-sdk] Restructure proof error types
- Create a dedicated EncryptionError type and use it for errors associated with ElGamal enryption.
- Report total_transactions in replay-slot-stats
16th October
- [web3.js] Add getMultipleParsedAccounts method
- Added
getMultipleParsedAccounts
method toConnection
- Added
- Explorer: Batch account fetching
- Batch account fetches together in one
getMultipleAccounts
request
- Batch account fetches together in one
- Explorer: Show simulation error if no logs are returned
- When no logs are returned, the transaction simulator doesn't display a transaction error
- fix: wrap _rpcWebSocketGeneration around when about to overflow
- Wrap the index back around to 0 after hitting Number.MAX_SAFE_INTEGER.
17th October
- add a lighter way to check whether a block exists in the Bigtable
- RPC: Return the data length for get account requests
- Add a space field to the account response type so that even if a data slice config of length 0 is used, the size of the account can still be known
- Add off-chain messages support
- Adds signing of non-transaction messages with a Solana wallet
18th October
- Replace deploy command with program deploy in tests
- This PR is to get rid of usage of Deploy command in tests for non upgradeable programs.
- accounts hash calculation uses files instead of memory
- accounts hash calc currently consumes large spikes of memory while it is scanning, sorting, de-duping, and hashing.
- enforces hash domain for ping-pong protocol
- enforce hash domain for ping-pong protocol
- program-test: Add working get_stack_height stub call
- When working in "native mode" in program-test, the syscall to sol_get_stack_height defaults to 0
19th October
- RPC: respect data slice config if account parsing fails
- bootstrap: Require known validators to have all snapshot hashes
- Warping works with Epoch Accounts Hash
- Wait to handle snapshot requests until after startup verification is complete
- ABS waits to handle snapshot requests until after startup verification completes.
- enable repair ping/pong cache
- Enable ping creation/verification for repair requests.
- Limit async tasks spawn to runtime for quic transaction send
- If there are too many async tasks already spawned into the runtime, new spawn will be blocked until some outstanding tasks are completed.
- ledger-tool: remove inefficient base58 encoding options
- switch default to base64
- base58 encoding accounts data is painfully slow, not useful at all and default behavior for ledger-tool
20th October