mirror of
https://github.com/logos-messaging/nim-sds.git
synced 2026-02-16 20:13:23 +00:00
Changes include: - Removing all submodules from vendor folder. - Updating sds.nimble with required depndencies. - Generating a nimble.lock file using Nimble. - Updated Nim code to reference depndencies correctly. - Added nix/deps.nix fixed output derivation that calls Nimble. - Updated nixpkgs to use 25.11 commit which provides Nimbe 0.20.1. - Disabled Nix Android builds on MacOS due to Nimble segfault. Signed-off-by: Jakub Sokołowski <jakub@status.im>
36 lines
951 B
Nim
36 lines
951 B
Nim
import std/[times, sets]
|
|
|
|
type
|
|
SdsMessageID* = string
|
|
SdsChannelID* = string
|
|
|
|
HistoryEntry* = object
|
|
messageId*: SdsMessageID
|
|
retrievalHint*: seq[byte] ## Optional hint for efficient retrieval (e.g., Waku message hash)
|
|
|
|
SdsMessage* = object
|
|
messageId*: SdsMessageID
|
|
lamportTimestamp*: int64
|
|
causalHistory*: seq[HistoryEntry]
|
|
channelId*: SdsChannelID
|
|
content*: seq[byte]
|
|
bloomFilter*: seq[byte]
|
|
|
|
UnacknowledgedMessage* = object
|
|
message*: SdsMessage
|
|
sendTime*: Time
|
|
resendAttempts*: int
|
|
|
|
IncomingMessage* = object
|
|
message*: SdsMessage
|
|
missingDeps*: HashSet[SdsMessageID]
|
|
|
|
const
|
|
DefaultMaxMessageHistory* = 1000
|
|
DefaultMaxCausalHistory* = 10
|
|
DefaultResendInterval* = initDuration(seconds = 60)
|
|
DefaultMaxResendAttempts* = 5
|
|
DefaultSyncMessageInterval* = initDuration(seconds = 30)
|
|
DefaultBufferSweepInterval* = initDuration(seconds = 60)
|
|
MaxMessageSize* = 1024 * 1024 # 1 MB
|