Differences from Solana
While mostly compatible with Solana, Atlas introduces a few key differences that developers should be aware of.
- Blocks are produced every 50ms instead of 400ms.
- Timestamps from Atlas are returned as milliseconds instead of seconds.
- The "blockhash" used by Atlas is a "state root" of the chain. This means that the full account state is present in the pre-image of the blockhash, but this has no effect on any of the existing RPC interfaces that use blockhashes.
- There are no confirmation levels for transactions on Atlas. Transactions are either "finalized" (which means executed by the sequencer) or not processed.
- Address lookup tables are not supported. Instead, transaction size limits have been increased from 1280 bytes to 12,800 bytes (10x) to allow for more accounts to be included in a transaction.
Atlas is a young system that is still subject to change, so developers should expect more changes in the future.
Address Lookup Tables
Atlas does not support Address Lookup Tables (ALTs). Address lookup tables are a feature of Solana that allow you to create a list of addresses on-chain ahead of time that may be referenced in a future transaction to get around the 1280 byte transaction size limit.
Atlas allows users to send transactions up to 12,800 bytes (10x). This improves the developer experience by allowing the user to include more accounts in a transaction without the overhead of needing to create an account on-chain. This also enables more efficient program deploys because more data can be included in each transaction reducing the number of transactions and cost required for a program deploy.
No change is required by the user to utilize the new transaction size limits and is backwards compatible with the existing Solana SDKs. When building a transaction, just include all of the accounts as you normally would.