Here's a diagram that shows all the different parts of a Solana transaction.
More details below π
1/ Each Solana transaction contains a message, and the first part of each message is its header.
The header is simple, it just contains the numbers described in the diagram.
2/ The next part of the transaction message is an array of accounts. They are ordered based on whether they require a signature and whether they are writable.
This array also contains the addresses of the programs used by the instructions.
3/ Notably, Solana forces you to explicitly specify which accounts require signatures, and which accounts are writeable.
That's why when you create an instruction on the client-side (TypeScript in this example), it looks like this π
4/ The message blockhash is pretty self-explanatory. It's included so that validators can reject txs that are too old.
5/ Solana transactions can contain multiple instructions!
This is important, b/c you may want to execute multiple instructions atomically (i.e. all of them succeed, or all of them fail).
The indexes described in the diagram index into the account addresses array we saw above.
6/ Each Solana transaction also contains an array of signatures.
Each item is a digital signature of the message, signed by some private key.
7/ That's it! For more details, check out the official docs.
1/ Here's a thread of all the Solana threads I've written (a thread of threads), plus some great threads/tweets by other folks. I'll try to keep adding onto this in the future.
First, 11 resources to get started with Solana development
Here's my smooth brained understanding of Solana and rollups
1/ First off, a rollup is a L2 scaling solution. With rollups, a bunch of transactions are executed off-chain, and their data is posted on L1. This increases throughput, because instead of L1 processing 10 individual txs, it can process 1 "rolled-up" tx.
2/ So is Solana planning on having rollups on top of its L1? No β
Just spent the past hour reading about Solana and rollups on Twitter. 99% of it went over my head but it was interesting π. Links to some of the more interesting threads I read below...
We're starting with a mushroom-inspired NFT collection (b/c mushrooms are awesome), but our larger goal is to help onboard more artists and creators into web3.
Right now, getting into web3 as an artist is hard π΅βπ«.
Which blockchain should you choose? Which marketplace should you list on? How do you make an NFT collection? How do you airdrop NFTs to people? How do you market yourself?
We're building a community that cares about helping artists. With that community, we'll create tools and resources that make it easy for any artist or creator to get started with web3.