1. 04 Mar, 2021 1 commit
  2. 19 Feb, 2021 1 commit
  3. 20 Jan, 2021 1 commit
    • Tom Zander's avatar
      Remove CAmount typedef · defd3950
      Tom Zander authored
      The CAmount name is not helpful as its just an int64_t and not a
      class, like the name implies. There were a handful of places where
      it was passed in as const-ref, as a good example of this actually
      creating sub-par code.
      defd3950
  4. 02 Oct, 2020 2 commits
  5. 13 Apr, 2020 2 commits
    • Tom Zander's avatar
      Replace SigOps with SigChecks · 2aa462f8
      Tom Zander authored
      This is part of the protocol upgrade for 2020-05-15, and in general it
      seems to go the direction of "we did this before, lets do this again".
      
      The spec is clear enough, but there is still a lack of questioning and
      testing. The problem this attempts to fix has been neutered for years[1].
      
      The spec states:
      > The essential idea of SigChecks is to perform counting solely in the
      > spending transaction, and count actual executed signature check
      > operations.
      
      This, however nobel and logical, ignores that the
      check-for-being-too-costly just pulled in a UTXO lookup and the loading
      of the output script from the historical chain.
      The goal that we protect against CPU over-use may be reached, but the
      price is a total system slowdown. You can have multiple CPUs, but the
      bus to permanent storage has one, max 2 parallel pipes.
      
      To ensure theHub stays the number one scalable node, I didn't blindly
      follow the spec, while making sure that the Hub is correctly going to
      follow/reject consensus violations of newly mined blocks.
      
      As a result the implementation in Flowee the Hub:
      
      * does not check sigcheck-counts on historical blocks (more than 1000
        blocks in the past).
      
        This may increase the risk of chain-splits ever so slightly, but the cost
        of disk-IO would be too high.
      
      * No longer stores the value in the mempool, nor uses it for the
        CPU-miner.
      
      * Ties the sigcheck-limits to the user-set block-size-accept-limit.
      
        This is contrary to the spec which mistakenly thinks that BCH has a
        max block-size in the consensus rules. The effect is the same, though.
      
      * The per-intput standardness suggestion is not implemented because
        standardness checks don't currently fetch the previous outputs and
        that would be too expensive to add.
      
      * Standardness rules for the whole transaction are moved to the
        mempool-acceptance logic instead. The cost would be too great
        otherwise, similar to the previous point.
        Again, the effect is the same as likely intented.
      
      ---
      1) since the intro of the CachingTransactionSignatureChecker
      2aa462f8
    • Tom Zander's avatar
      Inline CScriptCheck · 0386f38c
      Tom Zander authored
      It was only called twice, and in very close proximity. The class didn't
      add anything.
      This improves readability and with the new state its easier to write
      too.
      0386f38c
  6. 10 Apr, 2020 1 commit
    • Tom Zander's avatar
      Make bloom class more modern · 47335548
      Tom Zander authored
      This follows the coding style (method naming) better and it adds
      an insert method which uses a Streaming::ConstBuffer argument.
      47335548
  7. 12 Jan, 2020 2 commits
  8. 09 Dec, 2019 1 commit
  9. 01 Dec, 2019 1 commit
  10. 22 Nov, 2019 1 commit
  11. 21 Nov, 2019 1 commit
  12. 06 Nov, 2019 1 commit
  13. 02 Sep, 2019 1 commit
  14. 28 Jun, 2019 1 commit
    • Tom Zander's avatar
      Vastly simplify mempool-acceptance · 1aacb3ae
      Tom Zander authored
      This removes the attempt at magic (predicting future) component
      called the fee-estimator.
      The direct effect is that all transactions have as a mempool acceptance
      the same minimum fee. Regardless of how full the mempool or blocks were.
      
      This mempool-acceptance minimum fee is 0 sat/byte. (aka free)
      
      Notice the node-wide free-tx accept-limiter is going to avoid us getting
      overloaded.
      1aacb3ae
  15. 17 Jun, 2019 1 commit
    • Tom Zander's avatar
      Various little fixes · 75b394e9
      Tom Zander authored
      * user selected nodes (using -connect=) are whitelisted, which allows
      them to get your headers even if you are still in initial download.
      * Avoid crash in a starting node in isInInitialDownload when
      pIndexBestHeader was still null.
      75b394e9
  16. 19 Apr, 2019 1 commit
  17. 17 Mar, 2019 1 commit
  18. 14 Mar, 2019 1 commit
  19. 04 Mar, 2019 1 commit
  20. 29 Nov, 2018 1 commit
  21. 20 Nov, 2018 1 commit
  22. 15 Nov, 2018 1 commit
  23. 03 Nov, 2018 1 commit
  24. 13 Oct, 2018 1 commit
  25. 12 Oct, 2018 1 commit
  26. 17 Aug, 2018 1 commit
  27. 23 Jul, 2018 1 commit
    • Tom Zander's avatar
      Updates to and start using the UnspentOutputDB · 1600086e
      Tom Zander authored
      The new UnspentOutputDatabase classes are only very loosly a database, we
      purely register and store unspent outputs there. But unline a DB we don't
      allow modification (just insert and delete).
      
      This replaces the coin-db (which was based on leveldb) and as first goal
      this gives us a higher level of stability. The level-database was known
      to give corruption issues.
      
      Notice that users will need to do a manual reindex on first update.
      1600086e
  28. 04 Jul, 2018 1 commit
  29. 17 Feb, 2018 1 commit
  30. 16 Feb, 2018 1 commit
    • Tom Zander's avatar
      Cleanup ValidationInterface · 33fe0fcc
      Tom Zander authored
      Get rid of the weird boost signals setup
      Move it to a new library 'interfaces' which is
      for stuff that has no dependencies and can avoid
      creating inter-library or cicular dependencies.
      33fe0fcc
  31. 13 Feb, 2018 1 commit
  32. 12 Feb, 2018 1 commit
    • Tom Zander's avatar
      Refactor default settings for modularity · df642d37
      Tom Zander authored
      Make all configurable options have their default in one place to avoid
      one file (allowed_args) to link to all parts of the app which totally
      breaks modularity
      df642d37
  33. 19 Jan, 2018 1 commit