1. 23 Mar, 2023 4 commits
    • turboboost55's avatar
      metrics: add cpu counters (#26796) · 7dc10071
      turboboost55 authored
      This PR adds counter metrics for the CPU system and the Geth process.
      Currently the only metrics available for these items are gauges. Gauges are
      fine when the consumer scrapes metrics data at the same interval as Geth
      produces new values (every 3 seconds), but it is likely that most consumers
      will not scrape that often. Intervals of 10, 15, or maybe even 30 seconds
      are probably more common.
      
      So the problem is, how does the consumer estimate what the CPU was doing in
      between scrapes. With a counter, it's easy ... you just subtract two
      successive values and divide by the time to get a nice, accurate average.
      But with a gauge, you can't do that. A gauge reading is an instantaneous
      picture of what was happening at that moment, but it gives you no idea
      about what was going on between scrapes. Taking an average of values is
      meaningless.
      7dc10071
    • Guillaume Ballet's avatar
      core/state: add account address to Trie slot accessors (#26934) · 8990c92a
      Guillaume Ballet authored
      This changes the Trie interface to add the plain account address as a
      parameter to all storage-related methods.
      
      After the introduction of the TryAccount* functions, TryGet, TryUpdate and
      TryDelete are now only meant to read an account's storage. In their current
      form, they assume that an account storage is stored in a separate trie, and
      that the hashing of the slot is independent of its account's address.
      
      The proposed structure for a stateless storage breaks these two
      assumptions: the hashing of a slot key requires the address and all slots
      and accounts are stored in a single trie.
      
      This PR therefore adds an address parameter to the interface. It is ignored
      in the MPT version, so this change has no functional impact, however it
      will reduce the diff size when merging verkle trees.
      8990c92a
    • lightclient's avatar
      cmd/evm, tests: record preimages if dump is expected (#26955) · 37ecff09
      lightclient authored
      With #25287 we made it so that preimages were not recorded by default. This had the side effect that the evm command is no longer able to dump state since it does a preimage lookup to determine the address represented by a key.
      
      This change enables the recording of preimages when the dump command is given. 
      37ecff09
    • Delweng's avatar
      core/rawdb: update freezertable read meter (#26946) · 7f3fc15a
      Delweng authored
      The meter for "for measuring the effective amount of data read" within the freezertable was never updated. This change remedies that. 
      ---------
      Signed-off-by: 's avatarjsvisa <delweng@gmail.com>
      7f3fc15a
  2. 22 Mar, 2023 1 commit
  3. 21 Mar, 2023 6 commits
  4. 20 Mar, 2023 4 commits
  5. 17 Mar, 2023 3 commits
  6. 16 Mar, 2023 4 commits
  7. 15 Mar, 2023 1 commit
  8. 14 Mar, 2023 4 commits
  9. 13 Mar, 2023 5 commits
  10. 10 Mar, 2023 6 commits
  11. 09 Mar, 2023 2 commits
    • Péter Szilágyi's avatar
    • Roberto Bayardo's avatar
      core, core/types: plain Message struct (#25977) · 67ac5f0a
      Roberto Bayardo authored
      Here, the core.Message interface turns into a plain struct and
      types.Message gets removed.
      
      This is a breaking change to packages core and core/types. While we do
      not promise API stability for package core, we do for core/types. An
      exception can be made for types.Message, since it doesn't have any
      purpose apart from invoking the state transition in package core.
      types.Message was also marked deprecated by the same commit it
      got added in, 4dca5d4d (November 2016).
      
      The core.Message interface was added in December 2014, in commit
      db494170, for the purpose of 'testing' state transitions. It's the
      same change that made transaction struct fields private. Before that,
      the state transition used *types.Transaction directly.
      
      Over time, multiple implementations of the interface accrued across
      different packages, since constructing a Message is required whenever
      one wants to invoke the state transition. These implementations all
      looked very similar, a struct with private fields exposing the fields
      as accessor methods.
      
      By changing Message into a struct with public fields we can remove all
      these useless interface implementations. It will also hopefully
      simplify future changes to the type with less updates to apply across
      all of go-ethereum when a field is added to Message.
      
      ---------
      Co-authored-by: 's avatarFelix Lange <fjl@twurst.com>
      67ac5f0a