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

EIP-152: Blake2b F precompile #2129

Merged
merged 39 commits into from
Aug 22, 2019
Merged

Commits on Jun 16, 2019

  1. Configuration menu
    Copy the full SHA
    89a8794 View commit details
    Browse the repository at this point in the history
  2. Make the draft EIP consistent with the template

    Also added myself as an author
    mhluongo committed Jun 16, 2019
    Configuration menu
    Copy the full SHA
    843d377 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3bcce1d View commit details
    Browse the repository at this point in the history
  4. Added notes about the in-progress implementation

    Should have a working geth precompile and initial benchmarks shortly
    mhluongo committed Jun 16, 2019
    Configuration menu
    Copy the full SHA
    c3f4c68 View commit details
    Browse the repository at this point in the history
  5. Specify EIP-2046 as a requirement

    While 2046's cheaper precompile contract calls aren't a requirement for
    this EIP's implementation, shipping this precompile without EIP-2046
    would make the F function expensive for some of the motivating usecases.
    mhluongo committed Jun 16, 2019
    Configuration menu
    Copy the full SHA
    92916e1 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2019

  1. Don't use ABI encoding for precompile

    Replace the existing ABI encoding interface to the BLAKE2b `F`
    precompile with a loosely pack struct that's `staticcall`-friendly.
    
    H/t to @pdyraga for putting together the interface!
    mhluongo committed Jun 20, 2019
    Configuration menu
    Copy the full SHA
    764ff73 View commit details
    Browse the repository at this point in the history
  2. Add @pdyraga to the EIP authors.

    mhluongo committed Jun 20, 2019
    Configuration menu
    Copy the full SHA
    15c3352 View commit details
    Browse the repository at this point in the history
  3. Remove less relevant EIP rationale

    Let's not relitigate precompiles, WASM, etc in thie EIP :)
    mhluongo committed Jun 20, 2019
    Configuration menu
    Copy the full SHA
    552e602 View commit details
    Browse the repository at this point in the history
  4. Use 0x09 as the precompile address

    If a conflicting EIP is moving forward the EIP editor can assign a new
    address
    mhluongo committed Jun 20, 2019
    Configuration menu
    Copy the full SHA
    5a29338 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2019

  1. Choosing an EIP number

    Contributing docs suggest EIPs be named `eip-draft-with-a-title` until
    an editor has been assigned, but discussing this work off-platform
    without a number is a problem.
    
    Assigning 152 as the issue number where the `F` precompile was
    originally raised (ethereum#152)
    mhluongo committed Jun 21, 2019
    Configuration menu
    Copy the full SHA
    5d203c4 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2019

  1. Add a missing colon

    Thanks @axic 🙌
    mhluongo committed Jun 24, 2019
    Configuration menu
    Copy the full SHA
    6e7c49a View commit details
    Browse the repository at this point in the history
  2. Spelling updates

    MadeofTin authored and mhluongo committed Jun 24, 2019
    Configuration menu
    Copy the full SHA
    ed06f26 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f6dadde View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    eb54861 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2019

  1. Configuration menu
    Copy the full SHA
    47ac208 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    29423a1 View commit details
    Browse the repository at this point in the history
  3. Clean up references wording

    mhluongo committed Jun 25, 2019
    Configuration menu
    Copy the full SHA
    2f9384f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7621447 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2019

  1. Fix a couple misspellings

    mhluongo committed Jun 26, 2019
    Configuration menu
    Copy the full SHA
    94ebe0c View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2019

  1. Updated the interface for F precompile

    - F precompile accepts now `abi.encodePacked` parameters taking 
    exactly 213 bytes. This is safer and does not require left-padding data
    - `rounds` parameter is now the first one as the gas cost depends only
    on this parameter
    pdyraga authored Jun 27, 2019
    Configuration menu
    Copy the full SHA
    787c2a0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9c09e88 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2019

  1. Configuration menu
    Copy the full SHA
    9d354f3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7cd9f95 View commit details
    Browse the repository at this point in the history
  3. Clarification: f parameter is true if it is nonzero

    This rule is compatible with Solidity for boolean.
    pdyraga authored Jun 28, 2019
    Configuration menu
    Copy the full SHA
    7338048 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2019

  1. Avoid referring to abi.encodePacked

    The specification should not be Solidity-specific. Instead of
    referring to abi.encodePacked we now just say "tightly encoded".
    pdyraga authored Jul 4, 2019
    Configuration menu
    Copy the full SHA
    534e4b3 View commit details
    Browse the repository at this point in the history
  2. Fixed incorrect link

    "specified in the RFC" linked to the geth PR for F precompile
    instead of linking to the BLAKE2b RFC.
    pdyraga authored Jul 4, 2019
    Configuration menu
    Copy the full SHA
    ea28226 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2e33d58 View commit details
    Browse the repository at this point in the history
  4. Minor grammar improvement

    pdyraga authored Jul 4, 2019
    Configuration menu
    Copy the full SHA
    701280c View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2019

  1. Updated information about endianness of F precompile inputs

    BLAKE2b is consistently little-endian. abi.encodePacked encodes each 
    of its arguments in big-endian order. We need to be clear which parameters
    should go as little-endian (h, m, t) and which parameters should go as 
    big-endian (rounds, f).
    pdyraga authored Aug 13, 2019
    Configuration menu
    Copy the full SHA
    64830d1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dcf86f6 View commit details
    Browse the repository at this point in the history
  3. Initial test vectors for F precompile

    Test cases covered:
    - input length too short
    - input length too long
    - malformed f flag encoding
    - correct input, test vector from BLAKE2b RFC, Appendix A
    pdyraga authored Aug 13, 2019
    Configuration menu
    Copy the full SHA
    e30104c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    65f1caa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a40bc66 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b8d33ba View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2019

  1. Configuration menu
    Copy the full SHA
    7e2f8a1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    817e12d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2386c0e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1255c52 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2019

  1. Configuration menu
    Copy the full SHA
    272c45f View commit details
    Browse the repository at this point in the history