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

BSIP40 Implementation #1860

Merged
merged 42 commits into from
Oct 21, 2019
Merged

Commits on Sep 17, 2019

  1. BSIP 40: Core implementation

    This commit adds the very beginnings of BSIP 40/Custom Active
    Authorities, including a working implementation of the core logic which
    evaluates whether an operation complies with a list of restrictions.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    4e70e87 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    794f1ab View commit details
    Browse the repository at this point in the history
  3. BSIP 40: Finish writing operations

    Notably, I made an overhaul to the fee logic here. The old logic was
    incredibly complex and had weird multiply-by-zero edge cases to get a
    free fee... I dropped the whole thing and replaced it with a simple
    price per byte, which should have a fairly similar effect without
    segfaulting anyone's brain.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    0a588c1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    32cdad8 View commit details
    Browse the repository at this point in the history
  5. BSIP 40: Add evaluators, transaction eval code, testing

    Implementation passes cursory tests.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    18394fe View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1c9d74e View commit details
    Browse the repository at this point in the history
  7. BSIP 40: Restrictions use member index rather than name

    Restrictions now specify the field they restrict by member index rather
    than member name. Although this change makes restriction objects more
    opaque to human readers and increases the compile-time complexity of
    restriction_predicate.cpp, using indexes is faster at runtime, smaller
    when serialized, and allows renaming of members in future code updates.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    969999b View commit details
    Browse the repository at this point in the history
  8. BSIP 40: Fix build on old G++

    This also improves the build time on all compilers
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    ab4a262 View commit details
    Browse the repository at this point in the history
  9. BSIP 40: Best build

    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    a2a5801 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    636abb0 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d28f68c View commit details
    Browse the repository at this point in the history
  12. BSIP 40: Reduce build RAM usage

    Reduce peak RAM usage during build by splitting the build up over
    several different .cpp files, each of which should compile in under 3
    minutes and 5GB or less RAM.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    ef87594 View commit details
    Browse the repository at this point in the history
  13. BSIP 40: Cleanup, disable sign-compare warnings on g++

    Set travis to build single-threaded and disable signed-unsigned
    comparison warnings on g++. If anyone has a real solution to
    signed comparisons, I'd love to hear it, but until then, the
    warnings are actually so awful that travis breaks over them.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    2e0615a View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    5f49a94 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    e6fef06 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    fde930b View commit details
    Browse the repository at this point in the history
  17. BSIP 40: Error reporting, part 1

    Restriction predicates now collect data specifying exactly which
    restriction(s) rejected the operation.
    
    Part 2 will be rendering this data to a user-readable message.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    6566995 View commit details
    Browse the repository at this point in the history
  18. BSIP 40: Make Travis use multi-stage build

    The multi-stage build makes builds more reliable by building only
    the protocol in the first stage, which reliably passes in time,
    caching those binaries, and then building the rest and running
    tests in the second stage, which uses the cache to complete in
    time as well.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    58e7ae5 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    0ff414f View commit details
    Browse the repository at this point in the history
  20. BSIP 40: Error reporting, part 2

    Add the wrapping to report errors back to the user... such as it is
    Eventually, I'd like to add more logic towards generating a user-
    comprehensible error message, but this will suffice for now.
    
    This implementation provides enough information to construct, in
    conjunction with the restriction list and operation in question, a
    message describing the error in detail to the user... but actually
    assembling that message is, for now, regarded as a UI problem.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    e72835b View commit details
    Browse the repository at this point in the history
  21. BSIP 40: Add hardfork_visitor

    Remove the committee parameter used to determine whether an operation
    type had been hardforked in yet, and replace it with hardfork_visitor
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    670b474 View commit details
    Browse the repository at this point in the history
  22. BSIP 40: Fix build in MSVC 2017

    Many thanks to @jmjatlanta! :)
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    de5049a View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    d01a8d0 View commit details
    Browse the repository at this point in the history
  24. BSIP 40: Ship a copy of boost's safe_compare.hpp

    Old boost apparently didn't have this, and it's worth stealing
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    c02fb98 View commit details
    Browse the repository at this point in the history
  25. BSIP 40: Error handling & static_variant restrictions

    Added a new function type to restrict the value of a static_variant field
    on the operations. This also spun off into reworking the error handling
    to more adequately report the reason for predicate rejections.
    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    66d1835 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    f3bf343 View commit details
    Browse the repository at this point in the history
  27. BSIP 40: Rebase fixes

    nathanielhourt committed Sep 17, 2019
    Configuration menu
    Copy the full SHA
    ad7f5ed View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2019

  1. BSIP 40: Reverse order of predicate rejection paths

    Ordering the rejection path from the outermost restriction to the
    innermost (point of rejection) is more intuitive, so reverse the order
    of the path when returning the predicate result.
    nathanielhourt committed Sep 18, 2019
    Configuration menu
    Copy the full SHA
    dbafa02 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dd75b13 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9574d18 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2019

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

Commits on Sep 20, 2019

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

Commits on Sep 21, 2019

  1. Configuration menu
    Copy the full SHA
    7429cc4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7486c9c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    af4cea7 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2019

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

Commits on Oct 18, 2019

  1. Update custom_authority_tests.cpp

    Just some typo fixes
    nathanielhourt authored Oct 18, 2019
    Configuration menu
    Copy the full SHA
    ddc8725 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #3 from MichelSantos/bsip40-unit-tests

    BSIP 40: Unit tests
    nathanielhourt authored Oct 18, 2019
    Configuration menu
    Copy the full SHA
    4d95742 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2019

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

Commits on Oct 20, 2019

  1. Configuration menu
    Copy the full SHA
    51da97d View commit details
    Browse the repository at this point in the history
  2. BSIP 40: Add container in and not_in specializations

    Add specializations to allow `in` and `not_in` restrictions to operate
    on all values in a container field
    nathanielhourt committed Oct 20, 2019
    Configuration menu
    Copy the full SHA
    41d27a2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9da10fe View commit details
    Browse the repository at this point in the history