Constant DRIVE_VERSION_V9
pub const DRIVE_VERSION_V9: DriveVersion;Expand description
Drive version 9. Introduced in protocol v14, carrying both of v14’s drive-side changes:
- Shared-prefix aggregate index fix —
DRIVE_DOCUMENT_METHOD_VERSIONS_V4bumps the four index walkers to v2 (and the document update walker to v1) so contracts that pair an aggregating (countable / summable) index with a compound index sharing its leading property can insert, update, and delete documents. - Contract-level ranked aggregates — the same V4 table adds the
detect_ranked_moderouting slot,grove_methods.batchgains the three indexed-tree creation slots, andmethods.verifygainsdocument_ranked.verify_ranked_top_k_proof. All are 0 at introduction; the ranked grammar itself is gated one layer up byCONTRACT_VERSIONS_V6’s meta schema v3. - Contest restart over orphaned vote trees — the same V4 table bumps
insert_contested.add_contested_vote_subtree_for_non_identities_operationsto 1 so a new contest recreates the abstain or lock vote tree over the storage an earlier poll’s cleanup left behind (it only removed the trees that received votes) instead of failing withCorruptedContractIndexes. - Contract groups —
create_initial_state_structure4 creates theContractGroupsroot tree (key 68) with its groups and members subtrees;DRIVE_CONTRACT_GROUP_METHOD_VERSIONS_V1carries the insert, fetch, prove and estimation slots;DRIVE_STATE_TRANSITION_METHOD_VERSIONS_V4moves the contract create converter to 1 so a version 1 create transition also emits the group registration and membership operations. - Tokens sharing a pre-programmed release time:
DRIVE_TOKEN_METHOD_VERSIONS_V2bumpsadd_pre_programmed_distributionsto 1 so a contract whose tokens release at the same time queues the shared release-time tree once. v0 queued it once per token in one batch, which a node verifying batch consistency refuses as an internal error. - Moderation election windows: the same V4 table adds
insert_contested.fetch_charter_election_windows(Nonebefore), so anelectedChartercontest runs on the join and vote windows of its target contract instead of the generic ones. - End-date cleanup of ended vote polls:
DRIVE_VOTE_METHOD_VERSIONS_V3bumpscleanup.remove_contested_resource_vote_poll_end_date_query_operationsto 2, so the cleanup removes an end date only once none of its polls remain. - summableOffCountIndex counter batches:
apply_drive_operations1 andconvert_drive_operations_to_grove_operations1 refuse a batch moving one document type’s summableOffCountIndex counters for more than one document; convert 1 then converts as 0 does.
Everything else matches DRIVE_VERSION_V8.