log: Move validation option logging to LoadChainstate() #25951
pull MarcoFalke wants to merge 2 commits into bitcoin:master from MarcoFalke:2208-log-val-🚣 changing 2 files +15 −10-
MarcoFalke commented at 10:03 am on August 29, 2022: memberThis would allow libbitcoinkernel users to see the options logged as well. Currently they would only be logged for bitcoind. Behavior change suggested in the refactoring pull #25704 (review)
-
Move validation option logging to LoadChainstate() fa3358b668
-
DrahtBot added the label Utils/log/libs on Aug 29, 2022
-
MarcoFalke commented at 10:55 am on August 29, 2022: member
One way to test this is to modify bitcoin-chainstate a bit:
0diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp 1index 7312ae45d4..4ec71ca3fb 100644 2--- a/src/bitcoin-chainstate.cpp 3+++ b/src/bitcoin-chainstate.cpp 4@@ -53,6 +53,10 @@ int main(int argc, char* argv[]) 5 // SETUP: Misc Globals 6 SelectParams(CBaseChainParams::MAIN); 7 const CChainParams& chainparams = Params(); 8+LogInstance().m_print_to_console=true; 9+LogInstance().m_file_path = AbsPathForConfigVal("log_debug"); 10+LogInstance().m_log_timestamps = false; 11+Assert(LogInstance().StartLogging()); 12 13 kernel::Context kernel_context{}; 14 // We can't use a goto here, but we can use an assert since none of the
Command to test:
0make && ./src/bitcoin-chainstate /tmp/temp_dd
Output diff:
0@@ -3,6 +3,9 @@ Using RdSeed as an additional entropy source 1 Using RdRand as an additional entropy source 2 Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements 3 Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements 4+Validating signatures for all blocks. 5+Setting nMinimumChainWork=0000000000000000000000000000000000000000000000000000000000000000 6+Warning: nMinimumChainWork set below default value of 00000000000000000000000000000000000000002927cdceccbd5209e81e80db 7 Switching active chainstate to Chainstate [ibd] @ height -1 (null) 8 Opening LevelDB in /tmp/temp_dd/blocks/index 9 scheduler thread start
-
DrahtBot commented at 6:24 pm on August 29, 2022: contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #25704 (refactor: Remove almost all validation option globals by MarcoFalke)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
-
ryanofsky approved
-
jonatack commented at 1:21 pm on August 31, 2022: contributorConcept ACK
-
fanquake requested review from theuni on Aug 31, 2022
-
jonatack commented at 12:27 pm on September 1, 2022: contributor
ACK fa3358b668d8415adc1b5586caa382fe4140ad42
Tested and it works with bitcoin-chainstate as described in #25951 (comment).
Note that this pull also changes the placement of this logging from the top
02022-08-31T20:05:35Z Bitcoin Core version v23.99.0-7c7c71500403-dirty (debug build) 12022-08-31T20:05:35Z Assuming ancestors of block 000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091 have valid signatures. 22022-08-31T20:05:35Z Setting nMinimumChainWork=00000000000000000000000000000000000000002927cdceccbd5209e81e80db
to a bit further down after the asmap, “Loading P2P addresses…” and “Cache configuration” sections into the “init message: Loading block index…” one, which seems ok
0... 12022-09-01T12:08:23Z Using BerkeleyDB version ... 22022-09-01T12:08:23Z Using wallet ... 32022-09-01T12:08:23Z BerkeleyEnvironment::Open: LogDir= 42022-09-01T12:08:23Z Opened asmap file (1219959 bytes) from disk 52022-09-01T12:08:25Z Using asmap version for IP bucketing 62022-09-01T12:08:25Z init message: Loading P2P addresses… 72022-09-01T12:08:27Z Loaded 75260 addresses from peers.dat 2853ms 82022-09-01T12:08:27Z init message: Loading banlist… 92022-09-01T12:08:27Z SetNetworkActive: true 102022-09-01T12:08:27Z Cache configuration: 11... 122022-09-01T12:08:27Z init message: Loading block index… 132022-09-01T12:08:27Z Assuming ancestors of block 000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091 have valid signatures. 142022-09-01T12:08:27Z Setting nMinimumChainWork=00000000000000000000000000000000000000002927cdceccbd5209e81e80db
-
Move blockstorage option logging to LoadChainstate() fa4c59d65b
-
ryanofsky approved
-
ryanofsky commented at 3:46 pm on September 1, 2022: contributorCode review ACK fa4c59d65bdf1c64056b18a58f8aaa2800995aa6. Only change since last review is moving pruning logprints out of
AppInitParameterInteraction
as suggested -
jonatack commented at 4:49 pm on September 1, 2022: contributorReview ACK fa4c59d65bdf1c64056b18a58f8aaa2800995aa6
-
MarcoFalke merged this on Sep 1, 2022
-
MarcoFalke closed this on Sep 1, 2022
-
sidhujag referenced this in commit e5ead4fe3d on Sep 1, 2022
-
MarcoFalke deleted the branch on Sep 2, 2022
-
theuni commented at 2:30 pm on September 6, 2022: member
I kinda would’ve expected the opposite here, where statuses are returned and the caller (bitcoin-chainstate) can choose to report them as necessary.
I’ve probably missed discussions about logging though. Is the plan to have an instantiated logger in the future so that the caller can control the output?
-
MarcoFalke commented at 3:16 pm on September 6, 2022: member
InitializeChainstate
already callsLogPrintf
, so allLogPrintf
(old and new) can be switched to something else once it is clear what that is. I am not sure myself what the plan here is. -
ryanofsky commented at 4:05 pm on September 6, 2022: contributor
I think log prints are useful whether you are calling a library or running a daemon, so it shouldn’t be a goal to strip them out.
I lost track of the different branches Carl sent (https://github.com/dongcarl/bitcoin/commits/2022-03-kirby-p2.5, etc) but I think all of them kept a global logger object. The global object could be fully or partially replaced with locals if it is a problem.
-
bitcoin locked this on Sep 6, 2023
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-26 12:12 UTC
More mirrored repositories can be found on mirror.b10c.me