Enable expensive metrics (ie, metrics with per-peer cardinality):
nim c -d:libp2p_expensive_metrics some_file.nimSet list of known libp2p agents for metrics:
nim c -d:libp2p_agents_metrics -d:KnownLibP2PAgents=nimbus,lighthouse,lodestar,prysm,teku some_file.nimSpecify gossipsub specific topics to measure in the metrics:
nim c -d:KnownLibP2PTopics=topic1,topic2,topic3 some_file.nimThe compile-time flag libp2p_testing is used in test builds to expose code to tests without making it available to end users.
It is by default added to tests/config.nims.
-d:libp2p_testingUse the compile-time flag libp2p_testing_slow for test environments that run substantially slower than normal, such as the coverage workflow. It increases the default test timeouts to account for coverage instrumentation, which makes tests approximately twice as slow.
-d:libp2p_testing_slow| Multi format | Compiler flag (path to extensions file) |
Expected definition in extension file |
|---|---|---|
MultiCodec |
-d:libp2p_multicodec_exts |
const CodecExts = [] |
MultiHash |
-d:libp2p_multihash_exts |
const HashExts = [] |
MultiAddress |
-d:libp2p_multiaddress_exts |
const AddressExts = [] |
MultiBase |
-d:libp2p_multibase_exts |
const BaseExts = [] |
ContentIds |
-d:libp2p_contentids_exts |
const ContentIdsExts = [] |
For example, a file called multihash_exts.nim could be created and contain MultiHash extensions:
proc coder1(data: openArray[byte], output: var openArray[byte]) =
copyMem(addr output[0], addr data[0], len(output))
proc coder2(data: openArray[byte], output: var openArray[byte]) =
copyMem(addr output[0], addr data[0], len(output))
proc sha2_256_override(data: openArray[byte], output: var openArray[byte]) =
copyMem(addr output[0], addr data[0], len(output))
const HashExts = [
MHash(mcodec: multiCodec("codec_mc1"), size: 0, coder: coder1),
MHash(mcodec: multiCodec("codec_mc2"), size: 6, coder: coder2),
MHash(mcodec: multiCodec("sha2-256"), size: 6, coder: sha2_256_override),
]These MultiHashes will be available at compile time when the binary is compiled with -d:libp2p_multihash_exts=multihash_exts.nim.