This repository was archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Changes tries: support forks #950
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
I would say for now, this is not going to happen. It's meant to be the hash function that the header hash is computed with. We should add a type-level constraint there if possible. |
rphmeier
approved these changes
Nov 5, 2018
Contributor
rphmeier
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs merge, generally looks good. Ideally would see a deduplication of convert_hash function and perhaps an optimized lookup path for ancestry traversal when anchor is in the canonical chain.
Member
|
My merge didn't work - will need a little more work I think @svyatonik |
lamafab
pushed a commit
to lamafab/substrate
that referenced
this pull request
Jun 16, 2020
helin6
pushed a commit
to boolnetwork/substrate
that referenced
this pull request
Jul 25, 2023
* add cli command to explore metadata * fmt and clippy * Bump serde from 1.0.160 to 1.0.162 (paritytech#948) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.160 to 1.0.162. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.160...1.0.162) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * extrinsics: Decode extrinsics from blocks (paritytech#929) * Update polkadot.scale Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics: Add extrinsics client Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics: Decode extrinsics Signed-off-by: Alexandru Vasile <[email protected]> * subxt: Add extrinsic error Signed-off-by: Alexandru Vasile <[email protected]> * blocks: Expose extrinsics Signed-off-by: Alexandru Vasile <[email protected]> * examples: Fetch and decode block extrinsics Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics: Fetch pallet and variant index Signed-off-by: Alexandru Vasile <[email protected]> * subxt: Move extrinsics on the subxt::blocks Signed-off-by: Alexandru Vasile <[email protected]> * example: Adjust example Signed-off-by: Alexandru Vasile <[email protected]> * metadata: Collect ExtrinsicMetadata Signed-off-by: Alexandru Vasile <[email protected]> * subxt: Implement StaticExtrinsic for the calls Signed-off-by: Alexandru Vasile <[email protected]> * Adjust examples Signed-off-by: Alexandru Vasile <[email protected]> * codegen: Add root level Call enum Signed-off-by: Alexandru Vasile <[email protected]> * Adjust testing Signed-off-by: Alexandru Vasile <[email protected]> * subxt: Add new decode interface Signed-off-by: Alexandru Vasile <[email protected]> * subxt: Merge ExtrinsicError with BlockError Signed-off-by: Alexandru Vasile <[email protected]> * examples: Find first extrinsic Signed-off-by: Alexandru Vasile <[email protected]> * Move code to extrinsic_types Signed-off-by: Alexandru Vasile <[email protected]> * Add Extrinsic struct Signed-off-by: Alexandru Vasile <[email protected]> * Adjust examples Signed-off-by: Alexandru Vasile <[email protected]> * test: Decode extinsics Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/test: Add fake metadata for static decoding Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/test: Decode from insufficient bytes Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/test: Check unsupported versions Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/test: Statically decode to root and pallet enums Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/tests: Remove clones Signed-off-by: Alexandru Vasile <[email protected]> * blocks: Fetch block body inline Signed-off-by: Alexandru Vasile <[email protected]> * blocks: Rename ExtrinsicIds to ExtrinsicPartTypeIds Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics/test: Check decode as_extrinsic Signed-off-by: Alexandru Vasile <[email protected]> * blocks: Remove InsufficientData error Signed-off-by: Alexandru Vasile <[email protected]> * blocks: Return error from extrinsic_metadata Signed-off-by: Alexandru Vasile <[email protected]> * extrinsics: Postpone decoding of call bytes Signed-off-by: Alexandru Vasile <[email protected]> * metadata_type: Rename variables Signed-off-by: Alexandru Vasile <[email protected]> * Adjust calls path for example and tests Signed-off-by: Alexandru Vasile <[email protected]> * examples: Remove traces Signed-off-by: Alexandru Vasile <[email protected]> * book: Add extrinsics documentation Signed-off-by: Alexandru Vasile <[email protected]> * book: Improve extrinsics docs Signed-off-by: Alexandru Vasile <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: James Wilson <[email protected]> * change doc comments * add constants exploration * add storage access interface but not done yet * add storage exploration * formatting * remove dbg * some small tweaks * fix formatting and scale value for storage * split up files, sort entries, change formatting * fmt and clippy fix * fix minor formatting issue * implement suggestions * implement other suggestion, fix bug --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: James Wilson <[email protected]>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Brief overview:
ChangesTrieRootsStorage::root(block: u64) -> ChangesTrieRoot. Obviously, this won't work with non-instant finality => changedChangesTrieRootsStorage::root(anchor, block: u64)where 'anchor' is the descendant of the block we're processing in current request (either in building trie or requesting changes)ChangesTrieRootsStorage::rootis now implemented as:if block <= last_finalized_block=> read trie root of finalized block, else traverse from anchor back to the block with given number. This won't work if someone will query key changes from abandoned fork (i.e. fork that has been forked before best finalized block), but not sure if anyone will ever want this query + this increasesfn rootperformance significantly.ext_storage_changes_rootis changed to accept two parameters (parent_hash+parent_num) instead of single one (block)Out-of-scope question: are we going to support
Hasherthat hasHasher::Outnot compatible withHeader::Hash(i.e.Hasher::OutisH512andHeader::HashisH256)? There are some conversions ofHasher::Out<->Header::Hashacross the code (I've also introduced couple in this PR, isolated inconvert_hashfunctions) and they looks different every time - sometimes they're checking other' hash length before copying, sometimes - not (=> panic if lengths are different). Probably there's a way to bind these types at compilation time? Or probably better to introduce some globalconvert_hashutility function?