Bitcoin full node and query server

Dec 6, 2024

View in context in the libbitcoin Slack #general mirror.

evoskuil16:29
The node will provide that info on the command line.
26 replies · neillm, evoskuil · last Dec 06, 2024
neillm16:39
That's a great feature btw (older bin)
$ ./master/install/bin/bn -d
Intrinsics...
arm..... platform:0.
intel... platform:1.
avx512.. platform:1 compiled:0.
avx2.... platform:1 compiled:1.
sse41... platform:1 compiled:1.
shani... platform:1 compiled:0.
neon.... platform:0 compiled:0.
evoskuil16:40
Ohh, no... it's there.
(edited)
evoskuil16:42
So run the tests without it and if ok that means it's prob just a bug in our avx512 feature.
(edited)
evoskuil16:42
I'll have an avx512 box soon to test on.
neillm16:58
Still no go, and this is with only shani and sse41
$ ./test/libbitcoin-system-test
Running 3716 test cases...
unknown location(0): fatal error: in "settings_tests/settings__construct__regtest_context__expected": signal: SIGSEGV, si_code: 128 (memory access violation at address: 0x00000000)
test/settings.cpp(171): last checkpoint

*** 1 failure is detected in the test module "libbitcoin_test"
neillm16:59
Let me sanity check and make sure it works w/o any
evoskuil17:15
Shani is new, and the CI tests may not have it.
neillm17:15
I am suspecting that, but can find out for sure. It's working btw w/o any flags enabled. Worth letting it run to get the baseline
evoskuil17:18
avx2 and sse4 are defaults for CI so those are well tested.
evoskuil17:19
Are you building with clang?
neillm17:19
gcc
evoskuil17:21
Ok, I had to disable a couple new vectorization optimizations in non-macos clang due to these type of failures. gcc, XCode and msvc have been fine tho.
evoskuil17:21
You could debug those too! :))
👍 1
neillm17:23
Hrm, so how do I log the test results to a file? I'm trying to redirect stdout/stderr and it's not showing up
evoskuil17:24
I suspect they have to do with memory alignment, but the techniques work in other similar areas on clang, and I’ve tried making sure that loadu and storeu are comprehensively used, but no luck.
👍 1
neillm17:24
hwloc-bind --cpubind core:5 -- ./test/libbitcoin-system-test --log_level=all --run_test=performance_tests > perf_tests_none.log 2>&1
evoskuil17:24
From what, tests?
neillm17:25
The perf tests in particular. A lot of stuff is logged using that, but not the parts I want, i.e.
test____________: performance__sha256a_none__merkle
algorithm_______: N10libbitcoin6system3sha9algorithmINS1_4h256ILm256ELb1EEELb0ELb0ELb1ELb1EEE
test_rounds_____: 10240
bytes_per_round_: 1
native__________: 0
vectorized______: 0
cached__________: 1
chunked_________: 0
seconds_total___: 0.452969
mib_per_second__: 0.0215592
cycles_per_byte_: 132706
ms_per_round____: 0.0442352
ms_per_byte_____: 0.0442352
evoskuil17:25
Does it dump to the console? The rest is up to the OS.
neillm17:26
Unless it's all buffered and written to the file later
neillm17:26
Ok, yeah, will wait for it and see (but yes, to the console)
evoskuil17:26
It writes to the console, which has its own flush logic.
👍 1
evoskuil17:27
I do notice it buffering when I run the perf tests. There’s a lot in there and it’s sequential and single thread.
evoskuil17:28
But typically under a minute for the two merkle tests.
neillm17:28
This is w/o optimizations, so it's taking longer than a minute for sure
neillm17:55
Still going. For example:
test____________: performance__sha256a_none__merkle
algorithm_______: N10libbitcoin6system3sha9algorithmINS1_4h256ILm256ELb1EEELb0ELb0ELb1ELb1EEE
test_rounds_____: 10240
bytes_per_round_: 256
native__________: 0
vectorized______: 0
cached__________: 1
chunked_________: 0
seconds_total___: 229.015
mib_per_second__: 0.0109163
cycles_per_byte_: 262086
ms_per_round____: 22.3647
ms_per_byte_____: 0.0873621