mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-06-26 12:29:30 +00:00
Update libp2p
This commit is contained in:
parent
0ad13ca897
commit
0c08053f30
16
.gitmodules
vendored
16
.gitmodules
vendored
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
## those terms.
|
||||
|
||||
import std/math
|
||||
import std/options
|
||||
|
||||
import pkg/libp2p
|
||||
import pkg/chronos
|
||||
|
||||
@ -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
|
||||
|
||||
@ -14,6 +14,7 @@ import times
|
||||
{.push raises: [].}
|
||||
|
||||
import std/tables
|
||||
import std/options
|
||||
|
||||
import pkg/libp2p
|
||||
import pkg/questionable
|
||||
|
||||
@ -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))
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
|
||||
{.push raises: [].}
|
||||
|
||||
import std/options
|
||||
import pkg/chronos
|
||||
import pkg/libp2p
|
||||
import pkg/questionable/results
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import std/sequtils
|
||||
import std/sugar
|
||||
import std/tables
|
||||
import std/options
|
||||
|
||||
import pkg/chronos
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 =
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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,
|
||||
)
|
||||
|
||||
27
tests/storage/helpers/switchutils.nim
Normal file
27
tests/storage/helpers/switchutils.nim
Normal 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()
|
||||
2
vendor/logos-storage-nim-dht
vendored
2
vendor/logos-storage-nim-dht
vendored
@ -1 +1 @@
|
||||
Subproject commit 1af8dcf50447b5f68d1843e321c71dd871ecf245
|
||||
Subproject commit 6179bfb23f9fe6192c0f0769a9fa34a5e1ff42cb
|
||||
1
vendor/nim-boringssl
vendored
Submodule
1
vendor/nim-boringssl
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 1c91a4a2579123597df43bbdea70cc575957bdea
|
||||
2
vendor/nim-libp2p
vendored
2
vendor/nim-libp2p
vendored
@ -1 +1 @@
|
||||
Subproject commit e82080f7b1aa61c6d35fa5311b873f41eff4bb52
|
||||
Subproject commit 9d5cab51d79ccf968933744e9b893749706e2472
|
||||
1
vendor/nim-lsquic
vendored
Submodule
1
vendor/nim-lsquic
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 800697e9bcbce574c86bda389d91432c40c051e7
|
||||
1
vendor/nim-ngtcp2
vendored
1
vendor/nim-ngtcp2
vendored
@ -1 +0,0 @@
|
||||
Subproject commit 791eb859145f9f268eb23eb9cbe777bdd7699c4d
|
||||
2
vendor/nim-protobuf-serialization
vendored
2
vendor/nim-protobuf-serialization
vendored
@ -1 +1 @@
|
||||
Subproject commit 4d74e157cdf1bdcd0ffd41519ebde740c4b80447
|
||||
Subproject commit 38d24eb3bd93e605fb88199da71d36b1ec0ad60d
|
||||
1
vendor/nim-quic
vendored
1
vendor/nim-quic
vendored
@ -1 +0,0 @@
|
||||
Subproject commit 6d8678a159bfb902f9725f0081d542134cd93916
|
||||
2
vendor/nim-websock
vendored
2
vendor/nim-websock
vendored
@ -1 +1 @@
|
||||
Subproject commit 35ae76f1559e835c80f9c1a3943bf995d3dd9eb5
|
||||
Subproject commit 37a8b2935a49de15aeca71360c1f8adce5b81148
|
||||
Loading…
x
Reference in New Issue
Block a user