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

Implements a fuzzer that generates the valid Merkel Patricia Proofs. #729

Merged
merged 20 commits into from
May 17, 2019

Commits on May 8, 2019

  1. Implements draft version of fuzzy proof generator

    Resolves: OpenST#716
    See also: OpenST#718, OpenST#719
    Paruyr Gevorgyan committed May 8, 2019
    Configuration menu
    Copy the full SHA
    5fd35f4 View commit details
    Browse the repository at this point in the history
  2. Adds unit tests of Util module

    Paruyr Gevorgyan committed May 8, 2019
    Configuration menu
    Copy the full SHA
    620ba10 View commit details
    Browse the repository at this point in the history
  3. Fixes all linting errors

    Paruyr Gevorgyan committed May 8, 2019
    Configuration menu
    Copy the full SHA
    1a1ba69 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2019

  1. Fixes failing tests and using Buffer rather string

    Fixes failing test cases after linter error cleanup.
    Replaces string usages by Buffer.
    Paruyr Gevorgyan committed May 9, 2019
    Configuration menu
    Copy the full SHA
    3909c30 View commit details
    Browse the repository at this point in the history
  2. Tests FuzzyProofGenerator::assertPaternValidity

    Paruyr Gevorgyan committed May 9, 2019
    Configuration menu
    Copy the full SHA
    fafe11b View commit details
    Browse the repository at this point in the history

Commits on May 13, 2019

  1. Fixed several issues, added more tests, cleanup

      - .gitignore ignores generated files from typescript files.
      - MerklePatriciaProof::verify and MerklePatriciaProof::verifyDebug
        functions uses toData instead of toBytes during comparsion agaist
        value.
      - Improved pattern validity to correctly handle ending branch node.
      - Fixed an issue with branch, extension and leaf nodes
        serialization.
      - .travis.yml runs fuzzy_proof_generator tests.
    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    ef3806d View commit details
    Browse the repository at this point in the history
  2. Merge branch 'develop' into 'fuzzy-proof-generator'

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    8be8b01 View commit details
    Browse the repository at this point in the history
  3. Implements FuzzyProofGenerator::generateByPattern

    In addition, contains the followings:
    
      - Store values in rlp encoding.
      - Introduces sanity tests for FuzzyProofGenerator::generate
        and FuzzyProofGenerator::generateByPattern functions.
      - Adds run.sh script to run FuzzyProofGenerator tests.
      - Updates .travis.yml to run FuzzyProofGenerator tests.
    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    bf48e4a View commit details
    Browse the repository at this point in the history
  4. Merge branch develop into fuzzy-proof-generator

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    5b2adc3 View commit details
    Browse the repository at this point in the history
  5. Documents Types and Util classes

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    112b0e7 View commit details
    Browse the repository at this point in the history
  6. Documents BranchNode, ExtensionNode and LeafNode

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    350d11e View commit details
    Browse the repository at this point in the history
  7. Documents (high-level) FuzzyProofGenerator

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    cc330bb View commit details
    Browse the repository at this point in the history
  8. Replaces only-get accessors by readonly modifier

    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    1af2352 View commit details
    Browse the repository at this point in the history
  9. Reverts back changes of branch's value handling

    In addition, within './tools/fuzzy_proof_generator_tool/test/run.sh'
    tests are disabled as currently failing.
    Paruyr Gevorgyan committed May 13, 2019
    Configuration menu
    Copy the full SHA
    a5d72b9 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2019

  1. Adjusts proof's value with library verify behavior

    Paruyr Gevorgyan committed May 14, 2019
    Configuration menu
    Copy the full SHA
    29e846b View commit details
    Browse the repository at this point in the history

Commits on May 17, 2019

  1. Addresses review comments

      - Fixes a bug in FuzzyProofGenerator::processExtension() function.
    
      - Moves Util::encodeCompactExtensionNode() function to
        ExtensionNode::encodeCompact().
      - Moves Util::encodeCompactLeafNode() function to
        LeafNode::encodeCompact().
      - Moves Util::generateRandomKeccak256 function to
        FuzzyProofGenerator::generateRandomKeccak256().
      - Moves nibbles related functionality from Util.ts to NibblesUtil.ts.
      - Removes Util.ts.
    
      - Improves documentation for low-level bitwise operations
        within NibblesUtil.ts.
    
      - assert.throws() instances check against a specific error message.
      - Enhances generateByPattern test suites.
    
      - Fixes lint errors for tools/fuzzy_proof_generator ts files.
      - Checks "proof_generation" dir within `npm run lint`.
      - Disables eslint @typescript-eslint/camelcase" rule.
      - Adds .eslintignore file.
    
      - Updates dev dependencies within package.json.
    Paruyr Gevorgyan committed May 17, 2019
    Configuration menu
    Copy the full SHA
    d16549c View commit details
    Browse the repository at this point in the history
  2. Addresses review comments

      - Renames NibblesUtil to Nibbles.
      - Fixes bugs and stronger requirement checks for
        FuzzyProofGenerator::generateByPattern().
      - Enhances code documentation and comments.
    Paruyr Gevorgyan committed May 17, 2019
    Configuration menu
    Copy the full SHA
    12689e6 View commit details
    Browse the repository at this point in the history
  3. Fixes failing generateByPattern test

    Paruyr Gevorgyan committed May 17, 2019
    Configuration menu
    Copy the full SHA
    076b790 View commit details
    Browse the repository at this point in the history
  4. Introduces BranchKeys type to improve readability

    Paruyr Gevorgyan committed May 17, 2019
    Configuration menu
    Copy the full SHA
    bfbc3b4 View commit details
    Browse the repository at this point in the history
  5. Merge branch develop into fuzzy-proof-generator

    Paruyr Gevorgyan committed May 17, 2019
    Configuration menu
    Copy the full SHA
    c39176a View commit details
    Browse the repository at this point in the history