Runtime_parameters.md 4.5 KB

Runtime Parameters - (Bounty 23, #289)

This lists and briefly describes chain constants that are changed via runtime upgrades for Joystream substrate based testnets prior and including Giza. With the Olympia release parameter profiles are introduced (not part of this document).

Changing constants requires test deployments for verification and extensive testing to catch bugs.

  • MILLISECS_PER_BLOCK: defines target duration per block. Actual average duration varies depending on network performance.
  • BONDING_DURATION: days user has to wait when unbonding tokens staked for validation.
  • EPOCH_DURATION_IN_BLOCKS: number of minutes per epoch

More constants are defined in lib.rs:

  • VERSION: it is good practice to increment spec on code updates.
  • block parameters, discussed in #2124
    • BlockHashCount
    • MaximumBlockWeight
    • AvailableBlockRatio
    • MaximumBlockLength
  • ExistentialDeposit: minimal balance under which an account is removed from active balances to save chain space, should be >0.
  • TransferFee and CreationFee are obsolete (#2187)
  • MaxLocks neither changed nor discussed in Joystream, see description
  • InitialMembersBalance: obsolete
  • REWARD_CURVE: fixed staking parameters defining mining rewards, see #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
  • 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
    • ProposalCancellationFee
    • ProposalRejectionFee
    • ProposalTitleMaxLength
    • ProposalDescriptionMaxLength
    • ProposalMaxActiveProposalLimit
    • ProposalMaxPostEditionNumber: disabled
    • ProposalMaxThreadInARowNumber: unused
    • ProposalThreadTitleLengthLimit:
    • ProposalPostLengthLimit
    • TextProposalMaxLength
    • RuntimeUpgradeWasmProposalMaxLength: code file size limit, last increased for Alexandria
  • contracts pallet, likely obsolete
    • TombstoneDeposit: unused
    • RentByteFee: unused
    • RentDepositOffset: unused
    • SurchargeReward: unused
  • storage constants, see #2722
    • MaxDistributionBucketFamilyNumber
    • DataObjectDeletionPrize
    • BlacklistSizeLimit
    • MaxRandomIterationNumber
    • MaxNumberOfPendingInvitationsPerDistributionBucket
    • StorageModuleId
    • StorageBucketsPerBagValueConstraint
    • DefaultMemberDynamicBagNumberOfStorageBuckets
    • DefaultChannelDynamicBagNumberOfStorageBuckets
    • DistributionBucketsPerBagValueConstraint
    • MaxDataObjectSize