This is it: our first Solana program.
Naturally, we're going to start with "hello, world", but we'll take a look at some of the key things going on here.
First thing's first, we have to understand what's in a Solana transaction.
For a closer look at transactions, check out the Solana Core Docs or the Solana Cookbook.
The anatomy of a transaction is as follows, but here's the keys:
🔑 Transactions are for the Solana runtime. They contain information that Solana uses to allow or deny a transaction (signers, blockhash, etc.) and choose whether to process instructions in parallel.
🔑 Instructions are for Solana programs. They tell the program what to do.
🔑 Our program receives one instruction at a time (program_id
, accounts
, instruction_data
).
signatures: [ s, s ]
message:
header: 000
addresses: [ aaa, aaa ]
recent_blockhash: int
instructions: [ ix, ix ]
program_id: xxx
accounts: [ aaa, aaa ]
instruction_data: b[]