A ledger may contain up to 50 transactions (parameter max_tx_set_size
in ledger details). This value is not a constant, it is determined by the current protocol version, and may be changed by validators voting in the nearest future. Each transaction may contain up to 100 operations.
You don't need to worry about ledger sequence, operation identifiers, etc. They are generated automatically by Stellar Core validators. Stellar gives you an abstraction layer that hides insignificant details.
The only important parameter is an account sequence. A transaction always contain source_account
and source_account_sequence
parameters. If current account sequence doesn't match the parameter specified in transaction, it will fail. That's why Horizon doesn't allow you to submit more than one transaction in each ledger (the API call result is not returned until the ledger is closed). Once the transaction is applied, account sequence is incremented.
It is highly recommended to load up-to-date account details before building a transaction. More details here.