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[]