good morning!!!!

Skip to content
Snippets Groups Projects
  1. Nov 29, 2015
  2. Nov 27, 2015
  3. Nov 26, 2015
  4. Nov 25, 2015
    • Jeffrey Wilcke's avatar
      Merge pull request #1996 from obscuren/whisper-spam-fix · 168d0e9e
      Jeffrey Wilcke authored
      whisper: fixed broadcast race
      168d0e9e
    • Jeffrey Wilcke's avatar
      whisper: fixed broadcast race · 5f0a4416
      Jeffrey Wilcke authored
      Whisper's expire and broadcast loops happen in two separate go routines.
      Whenever an envelope is being expired it's removed from the set of
      envelopes and it looses all information about the envelope, including
      the "known hash". After the envelope has been removed it can be
      re-accepted by a broadcasting peer putting back the envelope in the set
      of envelopes. Since the envelope broadcast loop is separate of the
      expire loop expired messages may be broadcast to other peer, resulting
      in messages **never** being dropped.
      
      This PR includes an expire check before adding new messages to the set
      of envelopes.
      5f0a4416
  5. Nov 24, 2015
  6. Nov 23, 2015
  7. Nov 20, 2015
  8. Nov 19, 2015
  9. Nov 18, 2015
    • Jeffrey Wilcke's avatar
      Merge pull request #1964 from obscuren/evm-runtime · 23f42d94
      Jeffrey Wilcke authored
      core/vm/runtime: added simple execution runtime
      23f42d94
    • Jeffrey Wilcke's avatar
      core/vm/runtime: added simple execution runtime · 1372b991
      Jeffrey Wilcke authored
      The runtime environment can be used for simple basic execution of
      contract code without the requirement of setting up a full stack and
      operates fully in memory.
      1372b991
    • Jeffrey Wilcke's avatar
      core, eth, rpc: split out block validator and state processor · a1d9ef48
      Jeffrey Wilcke authored
      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
Loading