mirror of https://github.com/status-im/nim-eth.git
Fix ordering of Waku/Whisper queue and increase queue capacity
This commit is contained in:
parent
5e476dd7d2
commit
ab287d234a
|
@ -63,7 +63,7 @@ declarePublicCounter dropped_malicious_duplicate_envelopes,
|
|||
"Dropped malicious duplicate envelopes"
|
||||
|
||||
const
|
||||
defaultQueueCapacity = 256
|
||||
defaultQueueCapacity = 2048
|
||||
wakuVersion* = 0 ## Waku version.
|
||||
wakuVersionStr* = $wakuVersion ## Waku version.
|
||||
defaultMinPow* = 0.2'f64 ## The default minimum PoW requirement for this node.
|
||||
|
|
|
@ -473,7 +473,7 @@ proc calcPowHash*(self: Envelope): Hash =
|
|||
|
||||
proc cmpPow(a, b: Message): int =
|
||||
## Biggest pow first, lowest at the end (for easy popping)
|
||||
if a.pow > b.pow: 1
|
||||
if a.pow < b.pow: 1
|
||||
elif a.pow == b.pow: 0
|
||||
else: -1
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ declarePublicCounter dropped_malicious_duplicate_envelopes,
|
|||
"Dropped malicious duplicate envelopes"
|
||||
|
||||
const
|
||||
defaultQueueCapacity = 256
|
||||
defaultQueueCapacity = 2048
|
||||
whisperVersion* = 6 ## Whisper version.
|
||||
whisperVersionStr* = $whisperVersion ## Whisper version.
|
||||
defaultMinPow* = 0.2'f64 ## The default minimum PoW requirement for this node.
|
||||
|
|
|
@ -182,6 +182,9 @@ let
|
|||
env1 = Envelope(
|
||||
expiry:100000, ttl: 30, topic: [byte 0, 0, 0, 0],
|
||||
data: repeat(byte 9, 256), nonce: 1010102)
|
||||
env2 = Envelope(
|
||||
expiry:100000, ttl: 30, topic: [byte 0, 0, 0, 0],
|
||||
data: repeat(byte 9, 256), nonce: 1010103)
|
||||
|
||||
suite "Whisper envelope":
|
||||
|
||||
|
@ -247,6 +250,22 @@ suite "Whisper queue":
|
|||
|
||||
queue.items.len() == 2
|
||||
|
||||
test "check if order of queue is by decreasing PoW":
|
||||
var queue = initQueue(3)
|
||||
|
||||
let msg0 = initMessage(env0)
|
||||
let msg1 = initMessage(env1)
|
||||
let msg2 = initMessage(env2)
|
||||
|
||||
discard queue.add(msg0)
|
||||
discard queue.add(msg1)
|
||||
discard queue.add(msg2)
|
||||
|
||||
check:
|
||||
queue.items.len() == 3
|
||||
queue.items[0].pow > queue.items[1].pow and
|
||||
queue.items[1].pow > queue.items[2].pow
|
||||
|
||||
test "check field order against expected rlp order":
|
||||
check rlp.encode(env0) ==
|
||||
rlp.encodeList(env0.expiry, env0.ttl, env0.topic, env0.data, env0.nonce)
|
||||
|
|
Loading…
Reference in New Issue