Update libp2p

This commit is contained in:
Arnaud 2026-06-03 12:04:59 +04:00
parent 0ad13ca897
commit 0c08053f30
No known key found for this signature in database
GPG Key ID: A6C7C781817146FA
22 changed files with 63 additions and 30 deletions

16
.gitmodules vendored
View File

@ -183,16 +183,12 @@
[submodule "vendor/nph"]
path = vendor/nph
url = https://github.com/arnetheduck/nph.git
[submodule "vendor/nim-quic"]
path = vendor/nim-quic
url = https://github.com/vacp2p/nim-quic.git
ignore = untracked
branch = main
[submodule "vendor/nim-ngtcp2"]
path = vendor/nim-ngtcp2
url = https://github.com/vacp2p/nim-ngtcp2.git
ignore = untracked
branch = main
[submodule "vendor/nim-merkletree"]
path = vendor/nim-merkletree
url = https://github.com/logos-storage/nim-merkletree
[submodule "vendor/nim-boringssl"]
path = vendor/nim-boringssl
url = https://github.com/vacp2p/nim-boringssl.git
[submodule "vendor/nim-lsquic"]
path = vendor/nim-lsquic
url = https://github.com/vacp2p/nim-lsquic

View File

@ -140,7 +140,7 @@ switch("warning", "ObservableStores:off")
# Too many false positives for "Warning: method has lock level <unknown>, but another method has 0 [LockLevel]"
switch("warning", "LockLevel:off")
switch("define", "libp2p_pki_schemes=secp256k1")
switch("define", "libp2p_pki_schemes=secp256k1,rsa")
#TODO this infects everything in this folder, ideally it would only
# apply to storage.nim, but since storage.nims is used for other purpose
# we can't use it. And storage.cfg doesn't work

View File

@ -8,6 +8,7 @@
## those terms.
import std/math
import std/options
import pkg/libp2p
import pkg/chronos

View File

@ -30,7 +30,7 @@ import pkg/toml_serialization
import pkg/metrics
import pkg/metrics/chronos_httpserver
import pkg/stew/byteutils
import pkg/libp2p
import pkg/libp2p except NATConfig
import pkg/questionable
import pkg/questionable/results
import pkg/stew/base64

View File

@ -14,6 +14,7 @@ import times
{.push raises: [].}
import std/tables
import std/options
import pkg/libp2p
import pkg/questionable

View File

@ -9,11 +9,10 @@
import std/sugar
import pkg/libp2p/crypto/crypto
import pkg/bearssl/rand
type
RngSampleError = object of CatchableError
Rng* = ref HmacDrbgContext
export crypto.Rng, crypto.newRng
type RngSampleError = object of CatchableError
var rng {.threadvar.}: Rng
@ -31,7 +30,7 @@ proc rand*(rng: Rng, max: Natural): int =
return 0
while true:
let x = rng[].generate(uint64)
let x = rng.generate(uint64)
if x < randMax - (randMax mod (uint64(max) + 1'u64)): # against modulo bias
return int(x mod (uint64(max) + 1'u64))

View File

@ -9,6 +9,7 @@
{.push raises: [].}
import std/options
import pkg/chronos
import pkg/libp2p
import pkg/questionable/results

View File

@ -27,7 +27,7 @@ proc setupKey*(path: string): ?!PrivateKey =
if not path.fileAccessible({AccessFlags.Find}):
info "Creating a private key and saving it"
let
res = ?PrivateKey.random(Rng.instance()[]).mapFailure(StorageKeyError)
res = ?PrivateKey.random(Rng.instance()).mapFailure(StorageKeyError)
bytes = ?res.getBytes().mapFailure(StorageKeyError)
?path.secureWriteFile(bytes).mapFailure(StorageKeyError)

View File

@ -1,6 +1,7 @@
import std/sequtils
import std/sugar
import std/tables
import std/options
import pkg/chronos

View File

@ -1,3 +1,4 @@
import std/importutils
import std/[sequtils, tables]
import pkg/chronos
@ -12,10 +13,12 @@ import ../../asynctest
import ../examples
import ../helpers
privateAccess(BlockExcNetwork)
asyncchecksuite "Network - Handlers":
let
rng = Rng.instance()
seckey = PrivateKey.random(rng[]).tryGet()
seckey = PrivateKey.random(rng).tryGet()
peerId = PeerId.init(seckey.getPublicKey().tryGet()).tryGet()
chunker = RandomChunker.new(Rng.instance(), size = 1024, chunkSize = 256)
@ -185,7 +188,7 @@ asyncchecksuite "Network - Test Limits":
switch1 = newStandardSwitch()
switch2 = newStandardSwitch()
network1 = BlockExcNetwork.new(switch = switch1, maxInflight = 0)
network1 = BlockExcNetwork.new(switch = switch1, maxInflight = 1)
switch1.mount(network1)
network2 = BlockExcNetwork.new(switch = switch2)
@ -205,6 +208,8 @@ asyncchecksuite "Network - Test Limits":
): Future[void] {.async: (raises: []).} =
check false
await network1.inflightSema.acquire()
let fut = network1.send(switch2.peerInfo.peerId, Message())
await sleepAsync(100.millis)

View File

@ -16,7 +16,7 @@ proc example*(_: type bt.Block, size: int = 4096): bt.Block =
bt.Block.new(bytes).tryGet()
proc example*(_: type PeerId): PeerId =
let key = PrivateKey.random(Rng.instance[]).get
let key = PrivateKey.random(Rng.instance).get
PeerId.init(key.getPublicKey().get).get
proc example*(_: type PeerContext): PeerContext =

View File

@ -14,6 +14,7 @@ import pkg/storage/utils
import ./examples
import ./helpers/nodeutils
import ./helpers/switchutils
import ./helpers/datasetutils
import ./helpers/randomchunker
import ./helpers/mockchunker
@ -22,8 +23,8 @@ import ./helpers/always
import ../checktest
export
randomchunker, nodeutils, datasetutils, mockdiscovery, mockchunker, always, checktest,
manifest
randomchunker, nodeutils, switchutils, datasetutils, mockdiscovery, mockchunker,
always, checktest, manifest
export libp2p except setup, eventually

View File

@ -6,6 +6,7 @@ import pkg/libp2p
import pkg/libp2p/errors
import pkg/codexdht/discv5/routing_table
import ./switchutils
import pkg/storage/discovery
import pkg/storage/stores
import pkg/storage/blocktype as bt
@ -226,7 +227,7 @@ proc generateNodes*(
if config.enableBootstrap:
waitFor switch.peerInfo.update()
let (announceAddrs, discoveryAddrs) = nattedAddress(
NatConfig(hasExtIp: false, nat: NatNone),
nat.NatConfig(hasExtIp: false, nat: NatNone),
switch.peerInfo.addrs,
bindPort.Port,
)

View File

@ -0,0 +1,27 @@
import pkg/libp2p
import pkg/libp2p/errors
import pkg/storage/rng
proc newStandardSwitch*(
addrs: MultiAddress | seq[MultiAddress] = newSeq[MultiAddress](),
transportFlags: set[ServerFlags] = {},
sendSignedPeerRecord = false,
): Switch {.raises: [LPError].} =
var addrs =
when addrs is MultiAddress:
@[addrs]
else:
addrs
if addrs.len == 0:
addrs = @[MultiAddress.init("/ip4/127.0.0.1/tcp/0").expect("invalid multiaddress")]
SwitchBuilder
.new()
.withRng(Rng.instance())
.withSignedPeerRecord(sendSignedPeerRecord)
.withAddresses(addrs)
.withTcpTransport(transportFlags)
.withMplex()
.withNoise()
.build()

@ -1 +1 @@
Subproject commit 1af8dcf50447b5f68d1843e321c71dd871ecf245
Subproject commit 6179bfb23f9fe6192c0f0769a9fa34a5e1ff42cb

1
vendor/nim-boringssl vendored Submodule

@ -0,0 +1 @@
Subproject commit 1c91a4a2579123597df43bbdea70cc575957bdea

2
vendor/nim-libp2p vendored

@ -1 +1 @@
Subproject commit e82080f7b1aa61c6d35fa5311b873f41eff4bb52
Subproject commit 9d5cab51d79ccf968933744e9b893749706e2472

1
vendor/nim-lsquic vendored Submodule

@ -0,0 +1 @@
Subproject commit 800697e9bcbce574c86bda389d91432c40c051e7

1
vendor/nim-ngtcp2 vendored

@ -1 +0,0 @@
Subproject commit 791eb859145f9f268eb23eb9cbe777bdd7699c4d

@ -1 +1 @@
Subproject commit 4d74e157cdf1bdcd0ffd41519ebde740c4b80447
Subproject commit 38d24eb3bd93e605fb88199da71d36b1ec0ad60d

1
vendor/nim-quic vendored

@ -1 +0,0 @@
Subproject commit 6d8678a159bfb902f9725f0081d542134cd93916

2
vendor/nim-websock vendored

@ -1 +1 @@
Subproject commit 35ae76f1559e835c80f9c1a3943bf995d3dd9eb5
Subproject commit 37a8b2935a49de15aeca71360c1f8adce5b81148