Эх сурвалжийг харах

Bounty 23: Runtime Parameters Explanation #734

Traumschule 2 жил өмнө
parent
commit
778ab46c2b

+ 63 - 0
working-groups/operations-group/Runtime_parameters.md

@@ -0,0 +1,63 @@
+# Runtime Parameters - ([Bounty 23](https://pioneer.joystreamstats.live/#/proposals/249), #289)
+
+This lists and briefly describes chain constants that are changed via [runtime](https://github.com/Joystream/joystream/tree/master/runtime) upgrades for Joystream [substrate](https://github.com/paritytech/substrate) based testnets prior and including [Giza](https://www.joystream.org/giza/).
+With the [Olympia release](https://github.com/Joystream/joystream/issues/2855) parameter [profiles](https://github.com/Joystream/joystream/pull/3462) are introduced (not part of this document).
+
+Changing [constants](https://github.com/Joystream/joystream/blob/master/runtime/src/constants.rs) requires [test deployments](./Network-deployment) for verification and extensive testing to catch bugs.
+- `MILLISECS_PER_BLOCK`: defines target duration per block. Actual average duration varies depending on [network performance](https://github.com/Joystream/community-repo/blob/master/contributions/research/validators/Babylon/11.4_Research_Max_Validator_Change_report.md).
+- `BONDING_DURATION`: days user has to wait when unbonding tokens staked for [validation](https://github.com/Joystream/helpdesk/tree/master/roles/validators#rewards).
+- `EPOCH_DURATION_IN_BLOCKS`: number of minutes per epoch
+
+More constants are defined in [lib.rs](https://github.com/Joystream/joystream/blob/master/runtime/src/lib.rs):
+- VERSION: it is [good practice](https://github.com/Joystream/joystream/tree/master/runtime#versioning-the-runtime) to increment spec on code updates.
+- block parameters, discussed in [#2124](https://github.com/Joystream/joystream/issues/2124)
+  - BlockHashCount
+  - MaximumBlockWeight
+  - AvailableBlockRatio
+  - MaximumBlockLength
+- `ExistentialDeposit`: minimal balance under which an account is removed from active balances to save chain space, [should be >0](https://github.com/paritytech/substrate/issues/10117).
+- `TransferFee` and `CreationFee` are obsolete ([#2187](https://github.com/Joystream/joystream/pull/2187))
+- `MaxLocks` neither changed nor discussed in Joystream, see [description](https://github.com/paritytech/substrate/pull/7103)
+- `InitialMembersBalance`: [obsolete](https://github.com/Joystream/joystream/pull/1855)
+- `REWARD_CURVE`: fixed [staking parameters](https://github.com/Joystream/helpdesk/tree/master/roles/validators#fixed-parameters) defining mining rewards, see [#507](https://github.com/Joystream/community-repo/issues/507)
+  - min_inflation: minimal inflation for 0 stake
+  - max_inflation: maximum inflation per year
+  - ideal_stake: percent staked for maximum rewards
+  - falloff: reward reduction for higher than ideal stake
+  - max_piece_count: validator count limit
+  - test_precision: internal, used in tests, [details](https://github.com/paritytech/substrate/blob/ded44948e2d5a398abcb4e342b0513cb690961bb/frame/staking/reward-curve/src/lib.rs#L54)
+- working groups
+  - MaxNumberOfCuratorsPerGroup: unused
+  - ChannelOwnershipPaymentEscrowId: Channel Transfer Payments Escrow Account seed for ModuleId to compute deterministic AccountId
+  - VideosMigrationsEachBlock: Video migrated in each block during migration
+  - ChannelsMigrationsEachBlock: Channel migrated in each block during migration
+  - MaxWorkerNumberLimit: max workers per WG
+- proposals, see [#210](https://github.com/Joystream/joystream/issues/210)
+  - ProposalCancellationFee
+  - ProposalRejectionFee
+  - ProposalTitleMaxLength
+  - ProposalDescriptionMaxLength
+  - ProposalMaxActiveProposalLimit
+  - ProposalMaxPostEditionNumber: disabled
+  - ProposalMaxThreadInARowNumber: unused
+  - ProposalThreadTitleLengthLimit: 
+  - ProposalPostLengthLimit
+  - TextProposalMaxLength
+  - `RuntimeUpgradeWasmProposalMaxLength`: code file size limit, last [increased for Alexandria](https://github.com/Joystream/joystream/issues/1216)
+- [contracts pallet](https://paritytech.github.io/substrate/master/pallet_contracts/pallet/trait.Config.html), [likely obsolete](https://github.com/paritytech/substrate/issues/4268)
+  - TombstoneDeposit: unused
+  - RentByteFee: unused
+  - RentDepositOffset: unused
+  - SurchargeReward: unused
+- storage constants, see [#2722](https://github.com/Joystream/joystream/issues/2722)
+  - MaxDistributionBucketFamilyNumber
+  - DataObjectDeletionPrize
+  - BlacklistSizeLimit
+  - MaxRandomIterationNumber
+  - MaxNumberOfPendingInvitationsPerDistributionBucket
+  - StorageModuleId
+  - StorageBucketsPerBagValueConstraint
+  - DefaultMemberDynamicBagNumberOfStorageBuckets
+  - DefaultChannelDynamicBagNumberOfStorageBuckets
+  - DistributionBucketsPerBagValueConstraint
+  - MaxDataObjectSize