research/abnf/hello-abnf/resources/waku-raw.txt

52 lines
1.5 KiB
Plaintext

bytes = *OCTET
; Packet codes 0 - 127 are reserved for Waku protocol
packet-code = 0 / 1 / 2 / 3 / [ x4-127 ]
packet-format = "[" packet-code packet-format "]"
; packet-format needs to be paired with its corresponding packet-format
packet = "[" required-packet / [ optional-packet ] "]"
required-packet = 0 status / 1 messages / 2 pow-requirement / 3 bloom-filter
optional-packet = 126 p2p-request / 127 p2p-message
packet-format = "[" packet-code packet-format "]"
status = "[" version pow-requirement [ bloom-filter ] [ light-node ] "]"
; version is "an integer (as specified in RLP)"
version = DIGIT
messages = *whisper-envelope
; pow is "a single floating point value of PoW. This value is the IEEE 754 binary representation of 64-bit floating point number. Values of qNAN, sNAN, INF and -INF are not allowed. Negative values are also not allowed."
pow-requirement = pow
; bloom filter is "a byte array"
bloom-filter = bytes
light-node = BIT
p2p-request = whisper-envelope
p2p-message = whisper-envelope
whisper-envelope = "[" expiry ttl topic data nonce "]"
; 4 bytes (UNIX time in seconds)
expiry = bytes
; 4 bytes (time-to-live in seconds)
ttl = bytes
; 4 bytes of arbitrary data
topic = bytes
; byte array of arbitrary size (contains encrypted message)
data = bytes
; 8 bytes of arbitrary data (used for PoW calculation)
nonce = bytes