good morning!!!!

Skip to content
Snippets Groups Projects
  1. Dec 05, 2016
    • Felix Lange's avatar
      core, core/vm, eth/filters: move Removed field into vm.Log · f52a1ae8
      Felix Lange authored
      This field used to be assigned by the filter system and returned through
      the RPC API. Now that we have a Go client that uses the underlying type,
      the field needs to move. It is now assigned to true when the RemovedLogs
      event is generated so the filter system doesn't need to care about the
      field at all.
      
      While here, remove the log list from ChainSideEvent. There are no users
      of this field right now and any potential users could subscribe to
      RemovedLogsEvent instead.
      f52a1ae8
  2. Nov 30, 2016
  3. Nov 28, 2016
  4. Nov 25, 2016
  5. Nov 23, 2016
  6. Nov 13, 2016
  7. Nov 09, 2016
  8. Nov 01, 2016
  9. Oct 31, 2016
  10. Oct 28, 2016
    • Péter Szilágyi's avatar
      Godeps, vendor: convert dependency management to trash (#3198) · 289b3071
      Péter Szilágyi authored
      This commit converts the dependency management from Godeps to the vendor
      folder, also switching the tool from godep to trash. Since the upstream tool
      lacks a few features proposed via a few PRs, until those PRs are merged in
      (if), use github.com/karalabe/trash.
      
      You can update dependencies via trash --update.
      
      All dependencies have been updated to their latest version.
      
      Parts of the build system are reworked to drop old notions of Godeps and
      invocation of the go vet command so that it doesn't run against the vendor
      folder, as that will just blow up during vetting.
      
      The conversion drops OpenCL (and hence GPU mining support) from ethash and our
      codebase. The short reasoning is that there's noone to maintain and having
      opencl libs in our deps messes up builds as go install ./... tries to build
      them, failing with unsatisfied link errors for the C OpenCL deps.
      
      golang.org/x/net/context is not vendored in. We expect it to be fetched by the
      user (i.e. using go get). To keep ci.go builds reproducible the package is
      "vendored" in build/_vendor.
      289b3071
  11. Oct 21, 2016
  12. Oct 18, 2016
  13. Oct 14, 2016
    • Felix Lange's avatar
      trie, core/state: improve memory usage and performance (#3135) · 40cdcf11
      Felix Lange authored
      * 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
  14. Oct 07, 2016
  15. Oct 06, 2016
    • Felix Lange's avatar
      core/state: implement reverts by journaling all changes · 1f1ea18b
      Felix Lange authored
      This commit replaces the deep-copy based state revert mechanism with a
      linear complexity journal. This commit also hides several internal
      StateDB methods to limit the number of ways in which calling code can
      use the journal incorrectly.
      
      As usual consultation and bug fixes to the initial implementation were
      provided by @karalabe, @obscuren and @Arachnid. Thank you!
      1f1ea18b
  16. Oct 05, 2016
  17. Sep 28, 2016
  18. Sep 26, 2016
  19. Sep 15, 2016
  20. Sep 06, 2016
  21. Sep 02, 2016
  22. Aug 23, 2016
  23. Aug 22, 2016
    • Felix Lange's avatar
      accounts/abi/bind: use ethereum interfaces · d62d5fe5
      Felix Lange authored
      In this commit, contract bindings and their backend start using the
      Ethereum Go API interfaces offered by ethclient. This makes ethclient a
      suitable replacement for the old remote backend and gets us one step
      closer to the final stable Go API that is planned for go-ethereum 1.5.
      
      The changes in detail:
      
      * Pending state is optional for read only contract bindings.
        BoundContract attempts to discover the Pending* methods via an
        interface assertion. There are a couple of advantages to this:
        ContractCaller is just two methods and can be implemented on top of
        pretty much anything that provides Ethereum data. Since the backend
        interfaces are now disjoint, ContractBackend can simply be declared as
        a union of the reader and writer side.
      
      * Caching of HasCode is removed. The caching could go wrong in case of
        chain reorganisations and removing it simplifies the code a lot.
        We'll figure out a performant way of providing ErrNoCode before the
        1.5 release.
      
      * BoundContract now ensures that the backend receives a non-nil context
        with every call.
      d62d5fe5
    • Nick Johnson's avatar
      core/vm: Refactor tracing to make Tracer the main interface · 781915f1
      Nick Johnson authored
      This CL makes several refactors:
       - Define a Tracer interface, implementing the `CaptureState` method
       - Add the VM environment as the first argument of
         `Tracer.CaptureState`
       - Rename existing functionality `StructLogger` an make it an
         implementation of `Tracer`
       - Delete `StructLogCollector` and make `StructLogger` collect the logs
         directly
       - Change all callers to use the new `StructLogger` where necessary and
         extract logs from that.
       - Deletes the apparently obsolete and likely nonfunctional 'TraceCall'
         from the eth API.
      
      Callers that only wish accumulated logs can use the `StructLogger`
      implementation straightforwardly. Callers that wish to efficiently
      capture VM traces and operate on them without excessive copying can now
      implement the `Tracer` interface to receive VM state at each step and
      do with it as they wish.
      
      This CL also removes the accumulation of logs from the vm.Environment;
      this was necessary as part of the refactor, but also simplifies it by
      removing a responsibility that doesn't directly belong to the
      Environment.
      781915f1
  24. Aug 19, 2016
  25. Aug 17, 2016
    • Felix Lange's avatar
      common/compiler: simplify solc wrapper · 1a9e6691
      Felix Lange authored
      Support for legacy version 0.9.x is gone. The compiler version is no
      longer cached. Compilation results (and the version) are read directly
      from stdout using the --combined-json flag. As a workaround for
      ethereum/solidity#651, source code is written to a temporary file before
      compilation.
      
      Integration of solc in package ethapi and cmd/abigen is now much simpler
      because the compiler wrapper is no longer passed around as a pointer.
      
      Fixes #2806, accidentally
      1a9e6691
    • Felix Lange's avatar
      eth: remove dapp database remains · 84d11c19
      Felix Lange authored
      84d11c19
    • Felix Lange's avatar
      cmd/utils, node: create account manager in package node · 312263c7
      Felix Lange authored
      The account manager was previously created by packge cmd/utils as part
      of flag processing and then passed down into eth.Ethereum through its
      config struct. Since we are starting to create nodes which do not have
      eth.Ethereum as a registered service, the code was rearranged to
      register the account manager as its own service. Making it a service is
      ugly though and it doesn't really fix the root cause: creating nodes
      without eth.Ethereum requires duplicating lots of code.
      
      This commit splits utils.MakeSystemNode into three functions, making
      creation of other node/service configurations easier. It also moves the
      account manager into Node so it can be used by those configurations
      without requiring package eth.
      312263c7
Loading