status-im/status-go

View on GitHub
wakuv2/common/const.go

Summary

Maintainability
A
0 mins
Test Coverage
// Copyright 2019 The Waku Library Authors.
//
// The Waku library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The Waku library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty off
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the Waku library. If not, see <http://www.gnu.org/licenses/>.
//
// This software uses the go-ethereum library, which is licensed
// under the GNU Lesser General Public Library, version 3 or any later.

package common

import (
    "time"
)

// Waku protocol parameters
const (
    SizeMask = byte(3) // mask used to extract the size of payload size field from the flags

    TopicLength      = 4  // in bytes
    AESKeyLength     = 32 // in bytes
    KeyIDSize        = 32 // in bytes
    BloomFilterSize  = 64 // in bytes
    MaxTopicInterest = 10000

    EnvelopeHeaderLength = 20

    MaxMessageSize        = uint32(10 * 1024 * 1024) // maximum accepted size of a message.
    DefaultMaxMessageSize = uint32(1 << 20)          // DefaultMaximumMessageSize is 1mb.

    ExpirationCycle   = time.Second
    TransmissionCycle = 300 * time.Millisecond

    DefaultTTL           = 50 // seconds
    DefaultSyncAllowance = 10 // seconds

    MaxLimitInSyncMailRequest = 1000

    EnvelopeTimeNotSynced uint = iota + 1
    EnvelopeOtherError

    MaxLimitInMessagesRequest = 1000
)