Commit c940fff
feat: Rebase Deep Subtree on top of 0.19.x (#25)
* feat: Deep tree structure with Updates (#13)
* ICS23-style approach for DeepSubTree creation
* Fix deepsubtree, all checks pass
* Update documentation for deep subtrees
* Fix deepsubtree to accomodate left/right paths both
* Refactor test code
* Refactor TestDeepSubtreeStepByStep
* Address comments
* Refactor code
* Disable gocritic and unused
* Add description
* Refactor code to check err in Set
* Modify traversal conditions to be clearer
* feat: build deep subtree from ICS23 inclusion proofs (#9)
* feat: build deep subtree from ICS23 inclusion proofs
* feat: handle non-existence proofs
* linter: goimports deepsubtree.go
* refactor: addExistenceProofProof -> addExistenceProof
* fix: un-hardcode size of byte array
* Add more comments
* Refactor ndb.Commit call outside for loop
* verify that in the case that dst.root != nil that the root node hash matches the provided hash and check dst.root != nil first
* Add strings and use strings.Repeat
* Delete addPath and AddPath
* Remove print statements
* Refactor recomputeHash usage
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* return err directly
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* Address linting checks
* Use tm-db instead of cosmos-db
* Fix linter
* Update comment
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* Add error checking for node hash
* turn lengthByte into a const
* Refactor linkNode
* Update comment
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* feat: Support Adds in a Deep Subtree (#8)
* ICS23-style approach for DeepSubTree creation
* Fix deepsubtree, all checks pass
* Update documentation for deep subtrees
* Fix deepsubtree to accomodate left/right paths both
* Refactor test code
* Refactor TestDeepSubtreeStepByStep
* Address comments
* Refactor code
* Disable gocritic and unused
* Add description
* Refactor code to check err in Set
* Modify traversal conditions to be clearer
* feat: build deep subtree from ICS23 inclusion proofs (#9)
* feat: build deep subtree from ICS23 inclusion proofs
* feat: handle non-existence proofs
* linter: goimports deepsubtree.go
* refactor: addExistenceProofProof -> addExistenceProof
* fix: un-hardcode size of byte array
* Add more comments
* Refactor ndb.Commit call outside for loop
* verify that in the case that dst.root != nil that the root node hash matches the provided hash and check dst.root != nil first
* Add strings and use strings.Repeat
* Delete addPath and AddPath
* Remove print statements
* Refactor recomputeHash usage
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* return err directly
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* Address linting checks
* Use tm-db instead of cosmos-db
* Fix linter
* Add test to check add operation in deepsubtree: WIP
* Add insert key functionality WIP
* Try replicating non-inclusion proofs
* Add sibling nodes to nonExistenceProofs
* Refactor test code
* Finish adding add functionality to dst
* Add Remove functionality to dst
* Fix linting errors
* Fix GetSiblingNode
* Remove more print statements
* Add comment for each case in recursive set
* Change which methods are exported and document exported methods
* feat: Support Empty Hashes and Add constructor (#11)
* Export siblings
* Add deepsubtree constructor
* Support empty root hashes
* Use working hash instead of root.hash
* Use tm-db instead of cosmos-db
* Return nil in BuildTree
* Address comments
* Address more comments
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
* Add randomized tests for adding/removing keys (#16)
* Add go fuzz tests
* Add membership proof for existing keys
* Build tree after adding membership proof
* Make batch add fuzz tests work
* Do not commit version twice for dst
* Save version out of dst.Set condition
* Set rootHash to workingHash
* Fix edge cases
* Refactor DST Non-Existence Proof
* Change cacheSize
* Add test data and sibling nodes for each node in path
* Fix GetSiblingNodes
* Add more test data
* testing: fuzz: failing test case
* Use set for keys
* Add more test data
* Refactor existence proofs code
* Add required info for remove operation
* Add children of siblings as well
* Remove debug code
* Add testdata that breaks current code
* Fix bug
* Add failing testcase
* Add breaking testcase
* IAVL with tracing
* Fuzz tests pass
* Refactor tracing code
* Remove redundant code
* Remove working hash in calls to AddExistenceProof
* Clean up flag
* Make build tree a private method
* Add back whitespace in node.go
* Add new ci for fuzz
* Refactor more
* Refactor out getKey method
* Change name to reapInclusionProofs
* Refactor set and remove in DST
* Factor out add existence proofs from Remove DST for consistency with Set
* Refactor into testContext
* Clean up setInDST
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
* Add tracing to Trees and Deep Subtrees (#18)
* Add go fuzz tests
* Add membership proof for existing keys
* Build tree after adding membership proof
* Make batch add fuzz tests work
* Do not commit version twice for dst
* Save version out of dst.Set condition
* Set rootHash to workingHash
* Fix edge cases
* Refactor DST Non-Existence Proof
* Change cacheSize
* Add test data and sibling nodes for each node in path
* Fix GetSiblingNodes
* Add more test data
* testing: fuzz: failing test case
* Use set for keys
* Add more test data
* Refactor existence proofs code
* Add required info for remove operation
* Add children of siblings as well
* Remove debug code
* Add testdata that breaks current code
* Fix bug
* Add failing testcase
* Add breaking testcase
* IAVL with tracing
* Fuzz tests pass
* Refactor tracing code
* Remove redundant code
* Remove working hash in calls to AddExistenceProof
* Clean up flag
* Make build tree a private method
* Add back whitespace in node.go
* Add new ci for fuzz
* Refactor more
* Refactor out getKey method
* Change name to reapInclusionProofs
* Refactor set and remove in DST
* Factor out add existence proofs from Remove DST for consistency with Set
* Refactor into testContext
* Clean up setInDST
* Add method for get
* Export methods
* Add witness data to deep subtree
* Verify operation in witness data
* Refactor and verify operation for get and remove
* Add set witness data
* Add tracing to tree
* add getter for witness data
* Verify existence proofs in dst
* Cleanup
* Reset witness data on tracing enabled
* Add node to keysAccessed even not in cache
* Add initial root hash
* Refactor GetInitialRootHash
* Modify GetInitialRootHash
* Add test data
* Add get to dst tests: fails right now
* Refactor and add tracing for root key as well
* Add docs
* Add more docs
* Update comments
* Update log message
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
* allocate length
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
* fix: remove `RangeProofs` (cosmos#586)
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
* Update go.mod file
* Add new line at end of .golangci.yml
Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
Co-authored-by: Matthew Sevey <mjsevey@gmail.com>
Co-authored-by: cool-developer <51834436+cool-develope@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Marko <marbar3778@yahoo.com>1 parent 21ea96e commit c940fff
42 files changed
Lines changed: 1583 additions & 4556 deletions
File tree
- .github/workflows
- proto
- iavl
- testdata/fuzz/FuzzBatchAddReverse
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
513 | 513 | | |
514 | 514 | | |
515 | 515 | | |
516 | | - | |
| 516 | + | |
517 | 517 | | |
518 | | - | |
519 | | - | |
520 | | - | |
521 | | - | |
522 | | - | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
523 | 527 | | |
524 | 528 | | |
525 | 529 | | |
| |||
534 | 538 | | |
535 | 539 | | |
536 | 540 | | |
537 | | - | |
538 | | - | |
539 | | - | |
540 | | - | |
541 | | - | |
| 541 | + | |
| 542 | + | |
542 | 543 | | |
543 | 544 | | |
544 | 545 | | |
| |||
551 | 552 | | |
552 | 553 | | |
553 | 554 | | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
| 555 | + | |
| 556 | + | |
562 | 557 | | |
563 | 558 | | |
564 | | - | |
565 | | - | |
566 | 559 | | |
567 | | - | |
| 560 | + | |
568 | 561 | | |
569 | 562 | | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | | - | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
575 | 567 | | |
576 | 568 | | |
577 | 569 | | |
0 commit comments