Merge branch 'ethereum:master' into portal

This commit is contained in:
Chen Kai 2024-03-20 16:04:07 +08:00 committed by GitHub
commit 1cbda9c3a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 31 additions and 31 deletions

View file

@ -25,7 +25,7 @@ COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
EXPOSE 8545 8546 30303 30303/udp EXPOSE 8545 8546 30303 30303/udp
ENTRYPOINT ["geth"] ENTRYPOINT ["geth"]
# Add some metadata labels to help programatic image consumption # Add some metadata labels to help programmatic image consumption
ARG COMMIT="" ARG COMMIT=""
ARG VERSION="" ARG VERSION=""
ARG BUILDNUM="" ARG BUILDNUM=""

View file

@ -24,7 +24,7 @@ COPY --from=builder /go-ethereum/build/bin/* /usr/local/bin/
EXPOSE 8545 8546 30303 30303/udp EXPOSE 8545 8546 30303 30303/udp
# Add some metadata labels to help programatic image consumption # Add some metadata labels to help programmatic image consumption
ARG COMMIT="" ARG COMMIT=""
ARG VERSION="" ARG VERSION=""
ARG BUILDNUM="" ARG BUILDNUM=""

View file

@ -66,7 +66,7 @@ func (it *instructionIterator) Next() bool {
it.op = vm.OpCode(it.code[it.pc]) it.op = vm.OpCode(it.code[it.pc])
if it.op.IsPush() { if it.op.IsPush() {
a := uint64(it.op) - uint64(vm.PUSH1) + 1 a := uint64(it.op) - uint64(vm.PUSH0)
u := it.pc + 1 + a u := it.pc + 1 + a
if uint64(len(it.code)) <= it.pc || uint64(len(it.code)) < u { if uint64(len(it.code)) <= it.pc || uint64(len(it.code)) < u {
it.error = fmt.Errorf("incomplete push instruction at %v", it.pc) it.error = fmt.Errorf("incomplete push instruction at %v", it.pc)

View file

@ -276,7 +276,7 @@ func TestFreezerReadonlyValidate(t *testing.T) {
} }
require.NoError(t, f.Close()) require.NoError(t, f.Close())
// Re-openening as readonly should fail when validating // Re-opening as readonly should fail when validating
// table lengths. // table lengths.
_, err = NewFreezer(dir, "", true, 2049, tables) _, err = NewFreezer(dir, "", true, 2049, tables)
if err == nil { if err == nil {

View file

@ -33,7 +33,7 @@ import (
var ( var (
// blobTxMinBlobGasPrice is the big.Int version of the configured protocol // blobTxMinBlobGasPrice is the big.Int version of the configured protocol
// parameter to avoid constucting a new big integer for every transaction. // parameter to avoid constructing a new big integer for every transaction.
blobTxMinBlobGasPrice = big.NewInt(params.BlobTxMinBlobGasprice) blobTxMinBlobGasPrice = big.NewInt(params.BlobTxMinBlobGasprice)
) )

View file

@ -26,6 +26,6 @@ func WriteJSONOnce(r Registry, w io.Writer) {
json.NewEncoder(w).Encode(r) json.NewEncoder(w).Encode(r)
} }
func (p *PrefixedRegistry) MarshalJSON() ([]byte, error) { func (r *PrefixedRegistry) MarshalJSON() ([]byte, error) {
return json.Marshal(p.GetAll()) return json.Marshal(r.GetAll())
} }

View file

@ -8,8 +8,8 @@ import (
"sync" "sync"
) )
// DuplicateMetric is the error returned by Registry.Register when a metric // DuplicateMetric is the error returned by Registry. Register when a metric
// already exists. If you mean to Register that metric you must first // already exists. If you mean to Register that metric you must first
// Unregister the existing metric. // Unregister the existing metric.
type DuplicateMetric string type DuplicateMetric string
@ -20,11 +20,11 @@ func (err DuplicateMetric) Error() string {
// A Registry holds references to a set of metrics by name and can iterate // A Registry holds references to a set of metrics by name and can iterate
// over them, calling callback functions provided by the user. // over them, calling callback functions provided by the user.
// //
// This is an interface so as to encourage other structs to implement // This is an interface to encourage other structs to implement
// the Registry API as appropriate. // the Registry API as appropriate.
type Registry interface { type Registry interface {
// Call the given function for each registered metric. // Each call the given function for each registered metric.
Each(func(string, interface{})) Each(func(string, interface{}))
// Get the metric by the given name or nil if none is registered. // Get the metric by the given name or nil if none is registered.
@ -33,7 +33,7 @@ type Registry interface {
// GetAll metrics in the Registry. // GetAll metrics in the Registry.
GetAll() map[string]map[string]interface{} GetAll() map[string]map[string]interface{}
// Gets an existing metric or registers the given one. // GetOrRegister gets an existing metric or registers the given one.
// The interface can be the metric to register if not found in registry, // The interface can be the metric to register if not found in registry,
// or a function returning the metric for lazy instantiation. // or a function returning the metric for lazy instantiation.
GetOrRegister(string, interface{}) interface{} GetOrRegister(string, interface{}) interface{}
@ -41,7 +41,7 @@ type Registry interface {
// Register the given metric under the given name. // Register the given metric under the given name.
Register(string, interface{}) error Register(string, interface{}) error
// Run all registered healthchecks. // RunHealthchecks run all registered healthchecks.
RunHealthchecks() RunHealthchecks()
// Unregister the metric with the given name. // Unregister the metric with the given name.
@ -52,7 +52,7 @@ type orderedRegistry struct {
StandardRegistry StandardRegistry
} }
// Call the given function for each registered metric. // Each call the given function for each registered metric.
func (r *orderedRegistry) Each(f func(string, interface{})) { func (r *orderedRegistry) Each(f func(string, interface{})) {
var names []string var names []string
reg := r.registered() reg := r.registered()
@ -75,13 +75,13 @@ func NewOrderedRegistry() Registry {
return new(orderedRegistry) return new(orderedRegistry)
} }
// The standard implementation of a Registry uses sync.map // StandardRegistry the standard implementation of a Registry uses sync.map
// of names to metrics. // of names to metrics.
type StandardRegistry struct { type StandardRegistry struct {
metrics sync.Map metrics sync.Map
} }
// Call the given function for each registered metric. // Each call the given function for each registered metric.
func (r *StandardRegistry) Each(f func(string, interface{})) { func (r *StandardRegistry) Each(f func(string, interface{})) {
for name, i := range r.registered() { for name, i := range r.registered() {
f(name, i) f(name, i)
@ -94,7 +94,7 @@ func (r *StandardRegistry) Get(name string) interface{} {
return item return item
} }
// Gets an existing metric or creates and registers a new one. Threadsafe // GetOrRegister gets an existing metric or creates and registers a new one. Threadsafe
// alternative to calling Get and Register on failure. // alternative to calling Get and Register on failure.
// The interface can be the metric to register if not found in registry, // The interface can be the metric to register if not found in registry,
// or a function returning the metric for lazy instantiation. // or a function returning the metric for lazy instantiation.
@ -114,7 +114,7 @@ func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{}
return item return item
} }
// Register the given metric under the given name. Returns a DuplicateMetric // Register the given metric under the given name. Returns a DuplicateMetric
// if a metric by the given name is already registered. // if a metric by the given name is already registered.
func (r *StandardRegistry) Register(name string, i interface{}) error { func (r *StandardRegistry) Register(name string, i interface{}) error {
// fast path // fast path
@ -133,7 +133,7 @@ func (r *StandardRegistry) Register(name string, i interface{}) error {
return nil return nil
} }
// Run all registered healthchecks. // RunHealthchecks run all registered healthchecks.
func (r *StandardRegistry) RunHealthchecks() { func (r *StandardRegistry) RunHealthchecks() {
r.metrics.Range(func(key, value any) bool { r.metrics.Range(func(key, value any) bool {
if h, ok := value.(Healthcheck); ok { if h, ok := value.(Healthcheck); ok {
@ -263,7 +263,7 @@ func NewPrefixedChildRegistry(parent Registry, prefix string) Registry {
} }
} }
// Call the given function for each registered metric. // Each call the given function for each registered metric.
func (r *PrefixedRegistry) Each(fn func(string, interface{})) { func (r *PrefixedRegistry) Each(fn func(string, interface{})) {
wrappedFn := func(prefix string) func(string, interface{}) { wrappedFn := func(prefix string) func(string, interface{}) {
return func(name string, iface interface{}) { return func(name string, iface interface{}) {
@ -295,7 +295,7 @@ func (r *PrefixedRegistry) Get(name string) interface{} {
return r.underlying.Get(realName) return r.underlying.Get(realName)
} }
// Gets an existing metric or registers the given one. // GetOrRegister gets an existing metric or registers the given one.
// The interface can be the metric to register if not found in registry, // The interface can be the metric to register if not found in registry,
// or a function returning the metric for lazy instantiation. // or a function returning the metric for lazy instantiation.
func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{} { func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{} {
@ -309,7 +309,7 @@ func (r *PrefixedRegistry) Register(name string, metric interface{}) error {
return r.underlying.Register(realName, metric) return r.underlying.Register(realName, metric)
} }
// Run all registered healthchecks. // RunHealthchecks run all registered healthchecks.
func (r *PrefixedRegistry) RunHealthchecks() { func (r *PrefixedRegistry) RunHealthchecks() {
r.underlying.RunHealthchecks() r.underlying.RunHealthchecks()
} }
@ -331,7 +331,7 @@ var (
AccountingRegistry = NewRegistry() // registry used in swarm AccountingRegistry = NewRegistry() // registry used in swarm
) )
// Call the given function for each registered metric. // Each call the given function for each registered metric.
func Each(f func(string, interface{})) { func Each(f func(string, interface{})) {
DefaultRegistry.Each(f) DefaultRegistry.Each(f)
} }
@ -341,7 +341,7 @@ func Get(name string) interface{} {
return DefaultRegistry.Get(name) return DefaultRegistry.Get(name)
} }
// Gets an existing metric or creates and registers a new one. Threadsafe // GetOrRegister gets an existing metric or creates and registers a new one. Threadsafe
// alternative to calling Get and Register on failure. // alternative to calling Get and Register on failure.
func GetOrRegister(name string, i interface{}) interface{} { func GetOrRegister(name string, i interface{}) interface{} {
return DefaultRegistry.GetOrRegister(name, i) return DefaultRegistry.GetOrRegister(name, i)
@ -353,7 +353,7 @@ func Register(name string, i interface{}) error {
return DefaultRegistry.Register(name, i) return DefaultRegistry.Register(name, i)
} }
// Register the given metric under the given name. Panics if a metric by the // MustRegister register the given metric under the given name. Panics if a metric by the
// given name is already registered. // given name is already registered.
func MustRegister(name string, i interface{}) { func MustRegister(name string, i interface{}) {
if err := Register(name, i); err != nil { if err := Register(name, i); err != nil {
@ -361,7 +361,7 @@ func MustRegister(name string, i interface{}) {
} }
} }
// Run all registered healthchecks. // RunHealthchecks run all registered healthchecks.
func RunHealthchecks() { func RunHealthchecks() {
DefaultRegistry.RunHealthchecks() DefaultRegistry.RunHealthchecks()
} }

View file

@ -10,7 +10,7 @@ type TimerSnapshot interface {
MeterSnapshot MeterSnapshot
} }
// Timers capture the duration and rate of events. // Timer capture the duration and rate of events.
type Timer interface { type Timer interface {
Snapshot() TimerSnapshot Snapshot() TimerSnapshot
Stop() Stop()
@ -99,14 +99,14 @@ func (t *StandardTimer) Stop() {
t.meter.Stop() t.meter.Stop()
} }
// Record the duration of the execution of the given function. // Time record the duration of the execution of the given function.
func (t *StandardTimer) Time(f func()) { func (t *StandardTimer) Time(f func()) {
ts := time.Now() ts := time.Now()
f() f()
t.Update(time.Since(ts)) t.Update(time.Since(ts))
} }
// Record the duration of an event, in nanoseconds. // Update the duration of an event, in nanoseconds.
func (t *StandardTimer) Update(d time.Duration) { func (t *StandardTimer) Update(d time.Duration) {
t.mutex.Lock() t.mutex.Lock()
defer t.mutex.Unlock() defer t.mutex.Unlock()
@ -114,7 +114,7 @@ func (t *StandardTimer) Update(d time.Duration) {
t.meter.Mark(1) t.meter.Mark(1)
} }
// Record the duration of an event that started at a time and ends now. // UpdateSince update the duration of an event that started at a time and ends now.
// The record uses nanoseconds. // The record uses nanoseconds.
func (t *StandardTimer) UpdateSince(ts time.Time) { func (t *StandardTimer) UpdateSince(ts time.Time) {
t.Update(time.Since(ts)) t.Update(time.Since(ts))

View file

@ -98,7 +98,7 @@ func parseCallData(calldata []byte, unescapedAbidata string) (*decodedCallData,
if len(argdata)%32 != 0 { if len(argdata)%32 != 0 {
return nil, fmt.Errorf("invalid call data; length should be a multiple of 32 bytes (was %d)", len(argdata)) return nil, fmt.Errorf("invalid call data; length should be a multiple of 32 bytes (was %d)", len(argdata))
} }
// Validate the called method and upack the call data accordingly // Validate the called method and unpack the call data accordingly
abispec, err := abi.JSON(strings.NewReader(unescapedAbidata)) abispec, err := abi.JSON(strings.NewReader(unescapedAbidata))
if err != nil { if err != nil {
return nil, fmt.Errorf("invalid method signature (%q): %v", unescapedAbidata, err) return nil, fmt.Errorf("invalid method signature (%q): %v", unescapedAbidata, err)