mirror of
https://github.com/status-im/nim-codex.git
synced 2025-01-16 05:44:37 +00:00
d3dbbc75fa
* don't force logging syncs * Add failing test * wip discovery engine * re-add chronicles sinks * wip * move network related stuff to own folder * move peer related stuff to own folder * extract discovery into it's own engine * update imports * move pending blocks into engine module * add top level exports * update imports * update import paths * update imports * support for inflight request filtering and tests * use `remove` instead of `del` * fix sorting in `selectCheapest` * re-org test file structure * fix to use discovery engine * file re-org * fix compilation * fixup discovery to use async handlers * more re-org * rework with support for discovery engine * add logging * use defaults * wip: reworking with discoveryengine * wip: more test fixes * more logging * use ordered table * use `bt` for blocktype Block * fix tests * make tests work with discovery engine * expose all node components * fix to work with discovery engine * wip * propagate cancellation in listBlocks * start/stop disc engine in blockexc engine * remove disc engine start/stop * wire up discovery engine * misc comments and imports * pass discovery to dagger node * set sleep timers * unused imports * misc * don't spawn a task, await it * don't await handlers * trace logging * reduce default sleep time Co-authored-by: Tanguy <tanguy@status.im>
57 lines
1.4 KiB
Nim
57 lines
1.4 KiB
Nim
## Nim-Dagger
|
|
## Copyright (c) 2022 Status Research & Development GmbH
|
|
## Licensed under either of
|
|
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
## at your option.
|
|
## This file may not be copied, modified, or distributed except according to
|
|
## those terms.
|
|
|
|
import pkg/chronos
|
|
import pkg/libp2p
|
|
import pkg/questionable
|
|
import pkg/questionable/results
|
|
import pkg/stew/shims/net
|
|
import pkg/dagger/discovery
|
|
|
|
type
|
|
MockDiscovery* = ref object of Discovery
|
|
findBlockProvidersHandler*: proc(d: MockDiscovery, cid: Cid):
|
|
Future[seq[SignedPeerRecord]] {.gcsafe.}
|
|
publishProvideHandler*: proc(d: MockDiscovery, cid: Cid):
|
|
Future[void] {.gcsafe.}
|
|
|
|
proc new*(
|
|
T: type MockDiscovery,
|
|
localInfo: PeerInfo,
|
|
discoveryPort: Port,
|
|
bootstrapNodes = newSeq[SignedPeerRecord](),
|
|
): T =
|
|
|
|
T()
|
|
|
|
proc findPeer*(
|
|
d: Discovery,
|
|
peerId: PeerID): Future[?PeerRecord] {.async.} =
|
|
return none(PeerRecord)
|
|
|
|
method findBlockProviders*(
|
|
d: MockDiscovery,
|
|
cid: Cid): Future[seq[SignedPeerRecord]] {.async.} =
|
|
if isNil(d.findBlockProvidersHandler):
|
|
return
|
|
|
|
return await d.findBlockProvidersHandler(d, cid)
|
|
|
|
method provideBlock*(d: MockDiscovery, cid: Cid): Future[void] {.async.} =
|
|
if isNil(d.publishProvideHandler):
|
|
return
|
|
|
|
await d.publishProvideHandler(d, cid)
|
|
|
|
proc start*(d: Discovery) {.async.} =
|
|
discard
|
|
|
|
proc stop*(d: Discovery) {.async.} =
|
|
discard
|