Skip to content

Fix(blockhash): Move block height to the end of hashing data#233

Merged
artob merged 1 commit into
developfrom
blockhash-block-height-at-end
Aug 13, 2021
Merged

Fix(blockhash): Move block height to the end of hashing data#233
artob merged 1 commit into
developfrom
blockhash-block-height-at-end

Conversation

@birchmd
Copy link
Copy Markdown
Member

@birchmd birchmd commented Aug 13, 2021

The reason for this change is to enable future micro-optimizations. We could cache the sha256 state which has all the static data already included in the hasher, then each hash computation only require pushing the block height and finalizing (rather than always needing to update the sha256 state with all the static data each time).

@birchmd birchmd added the C-enhancement Category: New feature or request label Aug 13, 2021
@birchmd birchmd requested a review from joshuajbouw August 13, 2021 12:11
@birchmd birchmd requested a review from artob as a code owner August 13, 2021 12:11
@artob artob self-assigned this Aug 13, 2021
Copy link
Copy Markdown
Contributor

@joshuajbouw joshuajbouw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting idea, and makes sense to me.

@artob artob merged commit d51f742 into develop Aug 13, 2021
@artob artob deleted the blockhash-block-height-at-end branch August 13, 2021 12:13
@joshuajbouw
Copy link
Copy Markdown
Contributor

Though, on second thought I'm unsure if this is quite as much of an optimisation as we would like. i.e, if we made a constant of the first sections of data, it is still copying it to a new allocation.

Copy link
Copy Markdown
Contributor

@sept-en sept-en left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely makes sense at least for the consistency (for possible future upgrades/improvements)!

artob added a commit that referenced this pull request Aug 14, 2021
* ERC-20: forbid using invalid NEP141 AccountID for mapping (#179)
* Timestamp should be in milliseconds for Ethereum compatibility (#208)
* feat(engine): Blockhash definition (#213)
* Update etc/state-migration-test/Cargo.lock (#211)
* Include cost of access list in intrinsic gas (#219)
* Bump tar from 4.4.13 to 4.4.15 in /etc/eth-contracts (#217)
* Feat(engine): Relayer payment (#215)
* Scheduled lint is supposed to run nightly clippy (#214)
* Return actual status of a transaction (#218)
* Added parser for Integer types (#183)
* Update to latest nightly (#221)
* Fix(engine): do not panic when user has insufficient balance to cover gas (#223)
* Update lock files (#224)
* Method to fix balance of aurora account on testnet (#225)
* Use math api host functions on mainnet (#228)
* NEP-141 compliance correctness (#202)
* Adapt workflows to dockerized runners (#231)
* Move block height to the end of hashed data. (#233)
* Ensure solidity artifacts are always recompiled (#234)
* Prevent test binary from deploying (#237)
* Add removal of eth-contracts to `make clean`
* Remove deploy_code feature gate

Co-authored-by: Dmitry Strokov <dmitry@aurora.dev>
Co-authored-by: Evgeny Ukhanov <evgeny@aurora.dev>
Co-authored-by: Joshua J. Bouw <joshua@aurora.dev>
Co-authored-by: Kirill <kirill@aurora.dev>
Co-authored-by: Michael Birch <michael@aurora.dev>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-enhancement Category: New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants