Adjusts docs about changing the data, size and balance of accounts. (#29007)
This commit is contained in:
parent
3c42c87098
commit
73e55a184b
|
@ -58,7 +58,9 @@ possible to upload a totally new program to an existing program address.
|
||||||
To create an account, a client generates a _keypair_ and registers its public key
|
To create an account, a client generates a _keypair_ and registers its public key
|
||||||
using the `SystemProgram::CreateAccount` instruction with a fixed
|
using the `SystemProgram::CreateAccount` instruction with a fixed
|
||||||
storage size in bytes preallocated.
|
storage size in bytes preallocated.
|
||||||
The current maximum size of an account's data is 10 megabytes.
|
The current maximum size of an account's data is 10 MiB, which can be changed
|
||||||
|
(increased or decreased) at a rate over all accounts of 20 MiB per transaction,
|
||||||
|
and the size can be increased by 10 KiB per account and per instruction.
|
||||||
|
|
||||||
An account address can be any arbitrary 256 bit value, and there are mechanisms
|
An account address can be any arbitrary 256 bit value, and there are mechanisms
|
||||||
for advanced users to create derived addresses
|
for advanced users to create derived addresses
|
||||||
|
|
|
@ -35,14 +35,20 @@ The policy is as follows:
|
||||||
- And only if the data is zero-initialized or empty.
|
- And only if the data is zero-initialized or empty.
|
||||||
- An account not assigned to the program cannot have its balance decrease.
|
- An account not assigned to the program cannot have its balance decrease.
|
||||||
- The balance of read-only and executable accounts may not change.
|
- The balance of read-only and executable accounts may not change.
|
||||||
- Only the system program can change the size of the data and only if the system
|
- Only the owner may change account size and data.
|
||||||
program owns the account.
|
|
||||||
- Only the owner may change account data.
|
|
||||||
- And if the account is writable.
|
- And if the account is writable.
|
||||||
- And if the account is not executable.
|
- And if the account is not executable.
|
||||||
- Executable is one-way (false->true) and only the account owner may set it.
|
- Executable is one-way (false->true) and only the account owner may set it.
|
||||||
- No one can make modifications to the rent_epoch associated with this account.
|
- No one can make modifications to the rent_epoch associated with this account.
|
||||||
|
|
||||||
|
## Balancing the balances
|
||||||
|
|
||||||
|
Before and after each instruction, the sum of all account balances must stay the same.
|
||||||
|
E.g. if one account's balance is increased, another's must be decreased by the same ammount.
|
||||||
|
Because the runtime can not see changes to accounts which were not passed to it,
|
||||||
|
all accounts for which the balances were modified must be passed,
|
||||||
|
even if they are not needed in the called instruction.
|
||||||
|
|
||||||
## Compute Budget
|
## Compute Budget
|
||||||
|
|
||||||
To prevent abuse of computational resources, each transaction is allocated a
|
To prevent abuse of computational resources, each transaction is allocated a
|
||||||
|
|
Loading…
Reference in New Issue