mirror of
https://github.com/waku-org/nwaku.git
synced 2025-01-14 17:04:53 +00:00
2cc86c51da
* feat: Waku Sync Protocol * feat: state machine (#2656) * feat: pruning storage mehcanism (#2673) * feat: message transfer mechanism & tests (#2688) * update docker files * added ENR filed for sync & misc. fixes * adding new sync range param & fixes --------- Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Co-authored-by: Prem Chaitanya Prathi <chaitanyaprem@gmail.com>
38 lines
1.1 KiB
Nim
38 lines
1.1 KiB
Nim
{.used.}
|
|
|
|
import std/options, chronos, chronicles, libp2p/crypto/crypto
|
|
|
|
import waku/[node/peer_manager, waku_core, waku_sync], ../testlib/wakucore
|
|
|
|
proc newTestWakuSync*(
|
|
switch: Switch,
|
|
transfer: Option[TransferCallback] = none(TransferCallback),
|
|
prune: Option[PruneCallback] = none(PruneCallback),
|
|
interval: Duration = DefaultSyncInterval,
|
|
): Future[WakuSync] {.async.} =
|
|
let peerManager = PeerManager.new(switch)
|
|
|
|
let fakePruneCallback = proc(
|
|
pruneStart: Timestamp, pruneStop: Timestamp, cursor: Option[WakuMessageHash]
|
|
): Future[
|
|
Result[(seq[(WakuMessageHash, Timestamp)], Option[WakuMessageHash]), string]
|
|
] {.async: (raises: []), closure.} =
|
|
return ok((@[], none(WakuMessageHash)))
|
|
|
|
let res = await WakuSync.new(
|
|
peerManager = peerManager,
|
|
relayJitter = 0.seconds,
|
|
syncInterval = interval,
|
|
wakuArchive = nil,
|
|
wakuStoreClient = nil,
|
|
pruneCallback = some(fakePruneCallback),
|
|
transferCallback = none(TransferCallback),
|
|
)
|
|
|
|
let proto = res.get()
|
|
|
|
proto.start()
|
|
switch.mount(proto)
|
|
|
|
return proto
|