1. 26 5月, 2016 1 次提交
  2. 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
  3. 29 4月, 2016 1 次提交
  4. 15 4月, 2016 2 次提交
  5. 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
  6. 24 3月, 2016 2 次提交
  7. 16 3月, 2016 2 次提交
  8. 11 3月, 2016 2 次提交
  9. 10 3月, 2016 1 次提交
  10. 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
  11. 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
  12. 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
  13. 04 1月, 2016 1 次提交
  14. 04 12月, 2015 1 次提交
  15. 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
  16. 27 11月, 2015 1 次提交
  17. 19 11月, 2015 1 次提交
  18. 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
  19. 28 10月, 2015 1 次提交
  20. 21 10月, 2015 1 次提交
  21. 19 10月, 2015 6 次提交
  22. 17 10月, 2015 1 次提交
    • J
      core, eth/filters, miner, xeth: Optimised log filtering · 6dc14788
      Jeffrey Wilcke 提交于
      Log filtering is now using a MIPmap like approach where addresses of
      logs are added to a mapped bloom bin. The current levels for the MIP are
      in ranges of 1.000.000, 500.000, 100.000, 50.000, 1.000. Logs are
      therefor filtered in batches of 1.000.
      6dc14788
  23. 16 10月, 2015 1 次提交
  24. 12 10月, 2015 1 次提交
  25. 05 10月, 2015 1 次提交
  26. 04 10月, 2015 1 次提交
  27. 02 10月, 2015 1 次提交
  28. 23 9月, 2015 3 次提交
  29. 22 9月, 2015 1 次提交
    • J
      core, core/types: readd transactions after chain re-org · eaa4473d
      Jeffrey Wilcke 提交于
      Added a `Difference` method to `types.Transactions` which sets the
      receiver to the difference of a to b (NOTE: not a **and** b).
      
      Transaction pool subscribes to RemovedTransactionEvent adding back to
      those potential missing from the chain.
      
      When a chain re-org occurs remove any transactions that were removed
      from the canonical chain during the re-org as well as the receipts that
      were generated in the process.
      
      Closes #1746
      eaa4473d