Commit graph

12986 commits

Author SHA1 Message Date
Daniel Liu
9ae7402e35 slog: faster and less memory-consumption (#28621)
These changes improves the performance of the non-coloured terminal formatting, _quite a lot_.

```
name               old time/op    new time/op    delta
TerminalHandler-8    10.2µs ±15%     5.4µs ± 9%  -47.02%  (p=0.008 n=5+5)

name               old alloc/op   new alloc/op   delta
TerminalHandler-8    2.17kB ± 0%    0.40kB ± 0%  -81.46%  (p=0.008 n=5+5)

name               old allocs/op  new allocs/op  delta
TerminalHandler-8      33.0 ± 0%       5.0 ± 0%  -84.85%  (p=0.008 n=5+5)
```

I tried to _somewhat_ organize the commits, but the it might still be a bit chaotic. Some core insights:

- The function `terminalHandler.Handl` uses a mutex, and writes all output immediately to 'upstream'. Thus, it can reuse a scratch-buffer every time.
- This buffer can be propagated internally, making all the internal formatters either write directly to it,
- OR, make  use of the `tmp := buf.AvailableBuffer()` in some cases, where a byte buffer "extra capacity" can be temporarily used.
- The `slog` package  uses `Attr` by value. It makes sense to minimize operating on them, since iterating / collecting into a new slice, iterating again etc causes copy-on-heap. Better to operate on them only once.
- If we want to do padding, it's better to copy from a constant `space`-buffer than to invoke `bytes.Repeat` every single time.
2024-11-15 10:02:42 +08:00
Daniel Liu
ec4ca1ed6a all: replace log15 with slog (#28187) 2024-11-15 10:02:42 +08:00
Daniel Liu
b04ce3213a log: test for logging-output (#28373) 2024-11-15 10:02:42 +08:00
Daniel Liu
f9cae3b9aa internal, log: remove code for old unsupported go-versions (#28090) 2024-11-15 10:02:42 +08:00
Daniel Liu
41c4c9ba88 log: avoid stack lookups when not needed/used (#28069) 2024-11-15 10:02:42 +08:00
Daniel Liu
6b81e68537 log: use atomic types (#27763)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-11-15 10:02:42 +08:00
Daniel Liu
f75958c0ac log: report error when ctx key is non-string (#27226)
* log/format.go : invalid string cast fix

* log: some polish

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-11-15 10:02:42 +08:00
Daniel Liu
2359a9ed34 log: add special casing of uint256 into the logger (#26936) 2024-11-15 10:02:42 +08:00
Daniel Liu
5eca853e52 log: improve documentation (#26753)
Add usage examples
2024-11-15 10:02:42 +08:00
Daniel Liu
ed4f989ff3 log: allow tabs in log messages (#26630)
* log: allow tabs in log messages

This fixes a regression where panic reports in RPC handlers were quoted
because they contain tab characters.

* Update format.go
2024-11-15 10:02:42 +08:00
Daniel Liu
dce80d77b7 log: better sanitation (#26556) 2024-11-15 10:02:42 +08:00
Daniel Liu
0902dcf37c log: modify lock defer unlock order in sync handler (#24667)
This modifies the order of Lock() defer Unlock() to follow the more
typically used pattern.
2024-11-15 10:02:41 +08:00
Daniel Liu
07443431d3 log: fix formatting of big.Int (#22679)
* log: fix formatting of big.Int

The implementation of formatLogfmtBigInt had two issues: it crashed when
the number was actually large enough to hit the big integer case, and
modified the big.Int while formatting it.

* log: don't call FormatLogfmtInt64 for int16

* log: separate from decimals back, not front

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2024-11-15 10:02:41 +08:00
Daniel Liu
aedfea681b all: make logs a bit easier on the eye to digest (#22665) 2024-11-15 10:02:41 +08:00
Daniel Liu
3d21631145 log: fix typos in comments (#21118) 2024-11-15 10:02:41 +08:00
Daniel Liu
cd9e18984e log: properly escape character sequences (#20987) 2024-11-15 10:02:41 +08:00
Daniel Liu
25a7e096ff log: delete RotatingFileHandler (#20586) 2024-11-15 10:02:41 +08:00
Daniel Liu
4d9936574b log: fix staticcheck warnings (#20388) 2024-11-15 10:02:41 +08:00
Daniel Liu
6873ca0687 log: change http:// to https:// on links in README.md (#20178)
docs: change http to https on links in log/README.md
2024-11-15 10:02:41 +08:00
Daniel Liu
81f59cb0ee log: do not pad values longer than 40 characters (#19592)
* log: Do not pad too long values

* log: gofmt
2024-11-15 10:02:41 +08:00
Daniel Liu
7865057840 internal/debug: support color terminal for cygwin/msys2 (#17740) 2024-11-15 10:02:41 +08:00
Daniel Liu
49e889eb7c log: logging feature (#17097) 2024-11-15 10:02:41 +08:00
Daniel Liu
38e5efbfe4 log: Change time format (#17054)
- Keep the tailing zeros.
- Limit precision to milliseconds.
2024-11-15 10:02:41 +08:00
Daniel Liu
f391463457 log: fixes for golint warnings (#16775) 2024-11-15 10:02:41 +08:00
Daniel Liu
643f02356d log: changed if-else blocks to conform with golint (#16661) 2024-11-15 10:02:41 +08:00
Daniel Liu
6459d0cf28
Merge pull request #687 from JukLee0ira/whisper
whisper: remove package whisper
2024-11-13 13:00:05 +08:00
JukLee0ira
85ede14a92 cmd: retire whisper flags (#22421) 2024-11-13 12:38:36 +08:00
JukLee0ira
cfb72501bf cmd/geth: print warning when whisper config is present in toml (#21544) 2024-11-13 12:38:07 +08:00
JukLee0ira
995db1892b .github: remove whisper from CODEOWNERS (#21527) 2024-11-13 12:37:42 +08:00
JukLee0ira
749037a97c whisper: remove whisper (#21487) 2024-11-13 12:37:10 +08:00
JukLee0ira
9a5fb2a9b8 whisper: Remove v5 (#18432) 2024-11-13 12:36:12 +08:00
Daniel Liu
5316e9b052
Merge pull request #729 from gzliudan/ws-port
node: allow WebSocket and HTTP works on the same port
2024-11-13 09:36:02 +08:00
Daniel Liu
22ad2f57ef node: fix websocket connection header check (#21646) 2024-11-13 09:35:41 +08:00
Daniel Liu
b1d6bec3bd cmd, node: dump empty value config (#21296) 2024-11-13 09:35:41 +08:00
Daniel Liu
ba23964062 node: shutdown HTTP and WebSocket servers gracefully (#20956) 2024-11-13 09:35:41 +08:00
Daniel Liu
b76438aafe node: allow WebSocket and HTTP work on same port (#20810) 2024-11-13 09:35:41 +08:00
Daniel Liu
57e5f5ec58 rpc: not log error if user configures --rpcapi=rpc (#20776) 2024-11-13 09:35:41 +08:00
Daniel Liu
fd2b21702c rpc: remove startup error for invalid modules, log it instead (#20684) 2024-11-13 09:35:41 +08:00
Daniel Liu
3f1b7d3a7b rpc: check module availability at startup (#20597) 2024-11-13 09:35:41 +08:00
Daniel Liu
d3c023ed37 cmd/XDC, internal, node: nuke XDC monitor (#19399) 2024-11-13 09:35:41 +08:00
Daniel Liu
68d9dcbee4 node: require LocalAppData variable (#19132) 2024-11-13 09:35:41 +08:00
Daniel Liu
3ed9ce95c1 eth, node: use APPDATA env to support cygwin/msys correctly (#17786) 2024-11-13 09:35:41 +08:00
Daniel Liu
fb2f822abe node: fix golint warnings 2024-11-13 09:35:41 +08:00
Daniel Liu
0da60fc517
Merge pull request #731 from gzliudan/trust-peer
rpc: add admin_addTrustedPeer and admin_removeTrustedPeer
2024-11-13 09:33:51 +08:00
Daniel Liu
f9f172af76 rpc: Add admin_addTrustedPeer and admin_removeTrustedPeer. (#16333) 2024-11-13 09:33:18 +08:00
Daniel Liu
e8a9807be6
Merge pull request #732 from gzliudan/gas-price
eth/gasprice: fix wrong gas price with empty blocks
2024-11-13 09:31:27 +08:00
Daniel Liu
59b06e4a03 eth/gasprice: reduce default gas price for empty block 2024-11-13 09:30:55 +08:00
Daniel Liu
de7203ac88 eth/gasprice: remove default from config (#30080) 2024-11-13 09:30:55 +08:00
Daniel Liu
d3eaeb9381 eth/gasprice: use slices package for sorting (#27490 #27909 #29314) 2024-11-13 09:30:55 +08:00
Daniel Liu
4dbed3582f eth/gasprice: simplify function getBlockValues 2024-11-13 09:30:55 +08:00