1. 21 10月, 2016 1 次提交
  2. 18 10月, 2016 2 次提交
  3. 15 10月, 2016 1 次提交
    • F
      trie, core/state: improve memory usage and performance (#3135) · 40cdcf11
      Felix Lange 提交于
      * trie: store nodes as pointers
      
      This avoids memory copies when unwrapping node interface values.
      
      name      old time/op  new time/op  delta
      Get        388ns ± 8%   215ns ± 2%  -44.56%  (p=0.000 n=15+15)
      GetDB      363ns ± 3%   202ns ± 2%  -44.21%  (p=0.000 n=15+15)
      UpdateBE  1.57µs ± 2%  1.29µs ± 3%  -17.80%  (p=0.000 n=13+15)
      UpdateLE  1.92µs ± 2%  1.61µs ± 2%  -16.25%  (p=0.000 n=14+14)
      HashBE    2.16µs ± 6%  2.18µs ± 6%     ~     (p=0.436 n=15+15)
      HashLE    7.43µs ± 3%  7.21µs ± 3%   -2.96%  (p=0.000 n=15+13)
      
      * trie: close temporary databases in GetDB benchmark
      
      * trie: don't keep []byte from DB load around
      
      Nodes decoded from a DB load kept hashes and values as sub-slices of
      the DB value. This can be a problem because loading from leveldb often
      returns []byte with a cap that's larger than necessary, increasing
      memory usage.
      
      * trie: unload old cached nodes
      
      * trie, core/state: use cache unloading for account trie
      
      * trie: use explicit private flags (fixes Go 1.5 reflection issue).
      
      * trie: fixup cachegen overflow at request of nick
      
      * core/state: rename journal size constant
      40cdcf11
  4. 11 10月, 2016 1 次提交
  5. 08 10月, 2016 1 次提交
    • F
      core: print import stats more often · e66b158f
      Felix Lange 提交于
      If geth is busy importing 2048 heavy blocks it can take a while before
      it prints anything. This change ensures that a message gets printed
      every 8s.
      e66b158f
  6. 28 9月, 2016 1 次提交
  7. 26 9月, 2016 1 次提交
  8. 16 8月, 2016 1 次提交
  9. 08 7月, 2016 1 次提交
  10. 07 6月, 2016 1 次提交
  11. 26 5月, 2016 1 次提交
  12. 25 5月, 2016 1 次提交
    • F
      eth: enable bad block reports · ca18202e
      Felix Lange 提交于
      We used to have reporting of bad blocks, but it was disabled
      before the Frontier release. We need it back because users
      are usually unable to provide the full RLP data of a bad
      block when it occurs.
      
      A shortcoming of this particular implementation is that the
      origin peer is not tracked for blocks received during eth/63
      sync. No origin peer info is still better than no report at
      all though.
      ca18202e
  13. 29 4月, 2016 1 次提交
  14. 15 4月, 2016 2 次提交
  15. 01 4月, 2016 1 次提交
    • J
      core: added basic chain configuration · f0cbebb1
      Jeffrey Wilcke 提交于
      Added chain configuration options and write out during genesis database
      insertion. If no "config" was found, nothing is written to the database.
      
      Configurations are written on a per genesis base. This means
      that any chain (which is identified by it's genesis hash) can have their
      own chain settings.
      f0cbebb1
  16. 24 3月, 2016 2 次提交
  17. 16 3月, 2016 2 次提交
  18. 11 3月, 2016 2 次提交
  19. 10 3月, 2016 1 次提交
  20. 08 3月, 2016 1 次提交
    • J
      core: announce ChainSideEvent during reorg · ba3fb9e6
      Jeffrey Wilcke 提交于
      Previously all blocks that were already in our chain were never re
      announced as potential uncle block (e.g. ChainSideEvent). This is
      problematic during mining where you want to gather as much possible
      uncles as possible increasing the profit. This is now addressed in this
      PR where during reorganisations of chains the old chain is regarded as
      uncles.
      
      Fixed #2298
      ba3fb9e6
  21. 18 2月, 2016 1 次提交
    • J
      core: Added new TD strategy which mitigate the risk for selfish mining · 5b283663
      Jeffrey Wilcke 提交于
      Assuming the following scenario where a miner has 15% of all hashing
      power and the ability to exert a moderate control over the network to
      the point where if the attacker sees a message A, it can't stop A from
      propagating, but what it **can** do is send a message B and ensure that
      most nodes see B before A. The attacker can then selfish mine and
      augment selfish mining strategy by giving his own blocks an advantage.
      
      This change makes the time at which a block is received less relevant
      and so the level of control an attacker has over the network no longer
      makes a difference.
      
      This change changes the current td algorithm `B_td > C_td` to the new
      algorithm `B_td > C_td || B_td == C_td && rnd < 0.5`.
      5b283663
  22. 13 2月, 2016 1 次提交
    • J
      eth/filters: pending logs · 987c1a59
      Jeffrey Wilcke 提交于
      Pending logs are now filterable through the Go API. Filter API changed
      such that each filter type has it's own bucket and adding filter
      explicitly requires you specify the bucket to put it in.
      987c1a59
  23. 04 1月, 2016 1 次提交
  24. 04 12月, 2015 1 次提交
  25. 01 12月, 2015 1 次提交
    • J
      core: added a new RemovedLogEvent · 9901a40f
      Jeffrey Wilcke 提交于
      When a chain reorganisation occurs we collect the logs that were deleted
      during the chain reorganisation. The removed logs are posted to the
      event mux indicating that those were deleted during the reorg.
      9901a40f
  26. 27 11月, 2015 1 次提交
  27. 19 11月, 2015 1 次提交
  28. 18 11月, 2015 1 次提交
    • J
      core, eth, rpc: split out block validator and state processor · a1d9ef48
      Jeffrey Wilcke 提交于
      This removes the burden on a single object to take care of all
      validation and state processing. Now instead the validation is done by
      the `core.BlockValidator` (`types.Validator`) that takes care of both
      header and uncle validation through the `ValidateBlock` method and state
      validation through the `ValidateState` method. The state processing is
      done by a new object `core.StateProcessor` (`types.Processor`) and
      accepts a new state as input and uses that to process the given block's
      transactions (and uncles for rewords) to calculate the state root for
      the next block (P_n + 1).
      a1d9ef48
  29. 28 10月, 2015 1 次提交
  30. 21 10月, 2015 1 次提交
  31. 19 10月, 2015 5 次提交