Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/path based merkle tree (#30) #32

Open
wants to merge 13 commits into
base: state/base
Choose a base branch
from

Conversation

tanishqjasoria
Copy link
Owner

  • Adding state by path storage draft work in progress

  • Further changes and tests

  • Further changes / fixes and sync work

  • Refactoring, state reader and state provider changes, snap sync & healing changes. Added simple in-mem leaf history.

  • Fixes to fast sync / healing, further changes and refactoring.

  • Don't do oddity encoding for full paths.

  • Updated tests for by path state.

  • StateReader requires 2nd trie store - storage trie unchanged (hash based).

  • Added benchmarks for path based trie store.

  • Do not use leaf cache during snap sync.

  • Set by-path trie store when initalizing blockchain.

  • Change by path storage history approach.

  • Added limit for history of changes.

  • another file for interface

  • refactor into one class

  • add validation

  • format white space


Fixes Closes Resolves #

Please choose one of the keywords above to refer to the issue this PR solves followed by the issue number (e.g. Fixes #000). If no issue number, remove the line. Also, remove everything marked optional that is not applicable. Remove this note after reading.

Changes

  • List the changes

Types of changes

What types of changes does your code introduce?

  • Bugfix (a non-breaking change that fixes an issue)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (a change that causes existing functionality not to work as expected)
  • Optimization
  • Refactoring
  • Documentation update
  • Build-related changes
  • Other: Description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Notes on testing

Optional. Remove if not applicable.

Remarks

Optional. Remove if not applicable.

LukaszRozmej and others added 13 commits February 22, 2023 09:35
…fo (NethermindEth#5303)

* Adjusted issue report to sound more professional and retrieve more info

* Typos fixed
NethermindEth#5114)

* fix rlp serializers

* replace message serialize with zeroMessage serializer

* fix blockbodymessage serializer

* fix tests

* update

* remove redundant declaration

* dont pass enum, pass allocator instead

* remove Rlp.Encode

* Revert "remove Rlp.Encode"

This reverts commit 61b5e2f.
* Make Peer Manger test less flaky

* Kick CI stuck job

* Add some awaits

* Add sometime outs

* Increase time out to 40sec

* Match casing

* Try increasing timeout

* Increase timeout

* Cache dependencies

* Reduce permissions

* Remove restore from format
…indEth#5320)

* test

* fix?

* fix?

* try

* try with higher timeout and parallelization

* try

* try with 2 jobs

* try with parallelism

* test

* try

* try with large file

* fix?

* fix?

* Create hive-consensus-tests.yml

* fix name

* try

* undo

* try

* add simple generator

* draft

* experiment

* Delete hive-tests.yml

* Create hive-tests.yml

* Delete hive-tests.yml

* Create hive-tests.yml

* Delete hive-tests.yml

* Create hive-tests.yml

* Delete hive-tests.yml

* Create hive-tests.yml

* draft of generator

* Delete hive-tests.yml

* Create hive-tests.yml

* always parallelize

* Delete hive-tests.yml

* Create hive-tests.yml

* Delete hive-tests.yml

* Create hive-tests.yml

* refactor generator

* Delete hive-tests.yml

* Create hive-tests.yml

* fix?

* Delete hive-tests.yml

* Create hive-tests.yml

* cosmetics

* set default parallelism to 3

* cosmetic

* try workflow to generate workflow

* fix?

* fix?

* use this branch

* one more try

* now?

* try

* check

* ehh

* try rebase

* try

* check

* refactor generator to save file in dedicated directory

* add that directory

* try

* Delete hive-consensus-tests.yml

* add empty file

* will work now?

* fix name

* fix

* try

* try

* Delete hive-consensus-tests.yml

* refactor generator

* update

* refactor gen

* experiment

* cosmetics

* test

* experiment

* try

* undo changes in naming

* check

* do not upload results

* check

* check

* try

* try

* fix?

* correct line

* simplify

* now?

* one more try

* try different approach

* check

* fix?

* try

* Delete hive-consensus-tests.yml

* undo changes in hive-tests.yml

* Create hive-consensus-tests.yml

* add name of the first test in the name of combined tests

* remove .json from the name

* last touch

* improve readability

* Update hive-consensus-tests.yml

* fix encoding, clean

* move to tools

* get path as program argument, save directly to final destination

* remove StringBuilder, write directly to file using TextWriter

* introduce lazy enumeration where possible
* keys stored in keyStoreDirectory

* Test fix

* Write to keyStore if we dont have permission

* Docs

* Fix build & spaces

* Refactor

* Add IFileSystem

* Fix build

* Fix spaces

* Add test

* Write only into specialDir

* Remove IOAbstractions

* Remove IOAbstractions & fix test

* Refactor

* Refactor
)

* test light client

* NoValidatorLightClient flag

* Remove LightClient from parameter name

* fix

* Tets

* Fix spaces

* Fix test

* Rename to NonValidatorNode
* Adding state by path storage draft work in progress

* Further changes and tests

* Further changes / fixes and sync work

* Refactoring, state reader and state provider changes, snap sync & healing changes. Added simple in-mem leaf history.

* Fixes to fast sync / healing, further changes and refactoring.

* Don't do oddity encoding for full paths.

* Updated tests for by path state.

* StateReader requires 2nd trie store - storage trie unchanged (hash based).

* Added benchmarks for path based trie store.

* Do not use leaf cache during snap sync.

* Set by-path trie store when initalizing blockchain.

* Change by path storage history approach.

* Added limit for history of changes.

* another file for interface

* refactor into one class

* add validation

* format white space

---------

Co-authored-by: Damian Orzechowski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants