Documentation ¶
Index ¶
- Constants
- Variables
- type ExpireMessage
- type MessageBlob
- type MessageDB
- func (db *MessageDB) AddMessage(pk *[message.SignerPubKeySize]byte) error
- func (db *MessageDB) AddToGlobalIndex(id uint64) error
- func (db *MessageDB) Close() error
- func (db *MessageDB) DelMessage(pk *[message.SignerPubKeySize]byte) error
- func (db *MessageDB) DeleteBlob(messageID *[message.MessageIDSize]byte) error
- func (db *MessageDB) DeleteBlobDB(messageID *[message.MessageIDSize]byte) error
- func (db *MessageDB) DeleteBlobFS(messageID *[message.MessageIDSize]byte) error
- func (db *MessageDB) DeleteMessageByID(mid *[message.MessageIDSize]byte) error
- func (db *MessageDB) ExpireMessageCounter(maxAge int64) error
- func (db *MessageDB) ExpireSigners(maxAge int64) (int64, int64, error)
- func (db *MessageDB) ForgetMessages(expireTime int64) error
- func (db *MessageDB) GetBlob(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
- func (db *MessageDB) GetBlobDB(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
- func (db *MessageDB) GetBlobFS(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
- func (db *MessageDB) GetGlobalIndex(start, count int64) ([][]byte, int, error)
- func (db *MessageDB) GetKeyIndex(index *message.Curve25519Key, start int64, count int64) ([][]byte, int, error)
- func (db *MessageDB) InsertBlob(id uint64, messageID *[message.MessageIDSize]byte, ...) error
- func (db *MessageDB) InsertBlobDB(id uint64, messageID *[message.MessageIDSize]byte, ...) error
- func (db *MessageDB) InsertBlobFS(messageID *[message.MessageIDSize]byte, data []byte) error
- func (db *MessageDB) InsertBlobStruct(mb *MessageBlob) error
- func (db *MessageDB) InsertMessage(msg *structs.MessageStruct) (uint64, error)
- func (db *MessageDB) InsertOrUpdateSigner(signerStruct *structs.SignerStruct) error
- func (db *MessageDB) InsertPeer(pubkey *[ed25519.PublicKeySize]byte) error
- func (db *MessageDB) InsertSigner(signerStruct *structs.SignerStruct) (int64, error)
- func (db *MessageDB) LearnMessage(mid *[message.MessageIDSize]byte) error
- func (db *MessageDB) LockShard(s []byte)
- func (db *MessageDB) MessageKnown(mid *[message.MessageIDSize]byte) bool
- func (db *MessageDB) SelectMessageByID(mid *[message.MessageIDSize]byte) (uint64, *structs.MessageStruct, error)
- func (db *MessageDB) SelectMessageExpire(now int64) ([]ExpireMessage, error)
- func (db *MessageDB) SelectPeer(pubkey *[ed25519.PublicKeySize]byte) (*structs.PeerStruct, error)
- func (db *MessageDB) SelectSigner(pk *[message.SignerPubKeySize]byte) (int64, *structs.SignerStruct, error)
- func (db *MessageDB) SelectSignerByID(id int64) (int64, *structs.SignerStruct, error)
- func (db *MessageDB) SetMessageExpireByID(mid *[message.MessageIDSize]byte, expire int64) error
- func (db *MessageDB) TouchPeer(pubkey *[ed25519.PublicKeySize]byte) error
- func (db *MessageDB) UnlockShard(s []byte)
- func (db *MessageDB) UpdatePeerNotification(pubkey *[ed25519.PublicKeySize]byte, hasError bool) error
- func (db *MessageDB) UpdatePeerStats(pubkey *[ed25519.PublicKeySize]byte, lastFetch, lastPos, lastErrors uint64) error
- func (db *MessageDB) UpdatePeerToken(pubkey *[ed25519.PublicKeySize]byte, ...) error
- func (db *MessageDB) UpdateSigner(signerStruct *structs.SignerStruct) error
Constants ¶
const Version = "0.0.1 very alpha"
Version of this release
Variables ¶
var CurrentTime = func() int64 { return time.Now().UTC().Unix() }
CurrentTime returns the current time in UTC
var ( // ErrNoModify is returned if a row was not modified ErrNoModify = errors.New("storage: Row not modified") )
Functions ¶
This section is empty.
Types ¶
type ExpireMessage ¶
type ExpireMessage struct { MessageID [message.MessageIDSize]byte SignerPub [message.SignerPubKeySize]byte }
ExpireMessage contains data necessary for expiring a message
type MessageBlob ¶
type MessageBlob struct { ID uint64 // numeric ID, local unique MessageID [message.MessageIDSize]byte // MessageID (global unique) SignerPublicKey [message.SignerPubKeySize]byte // Signer's public key OneTime bool // If message should be burnt after reading Data []byte // Message }
MessageBlob contains a message blob
type MessageDB ¶
type MessageDB struct { NumShards uint64 // contains filtered or unexported fields }
MessageDB implements a message database
func New ¶
New returns a new message database. driver is the database driver to use, url the database url. dir is the optional directory in which to store the raw message blobs. If dir is empty blobs will be stored in the database (which may not be a good idea at all). Shards is the number of lock shards to use for sequence generation (memory/lock-probability tradeoff)
func (*MessageDB) AddMessage ¶
func (db *MessageDB) AddMessage(pk *[message.SignerPubKeySize]byte) error
AddMessage adds a message to the signer stats
func (*MessageDB) AddToGlobalIndex ¶
AddToGlobalIndex adds a message to the global index
func (*MessageDB) DelMessage ¶
func (db *MessageDB) DelMessage(pk *[message.SignerPubKeySize]byte) error
DelMessage deletes a message from the signer stats
func (*MessageDB) DeleteBlob ¶
func (db *MessageDB) DeleteBlob(messageID *[message.MessageIDSize]byte) error
DeleteBlob deletes a blob by messageid
func (*MessageDB) DeleteBlobDB ¶
func (db *MessageDB) DeleteBlobDB(messageID *[message.MessageIDSize]byte) error
DeleteBlobDB deletes a message blob by MessageID from the database
func (*MessageDB) DeleteBlobFS ¶
func (db *MessageDB) DeleteBlobFS(messageID *[message.MessageIDSize]byte) error
DeleteBlobFS deletes a blob from filesystem
func (*MessageDB) DeleteMessageByID ¶
func (db *MessageDB) DeleteMessageByID(mid *[message.MessageIDSize]byte) error
DeleteMessageByID deletes a message by messageid
func (*MessageDB) ExpireMessageCounter ¶
ExpireMessageCounter expires all messagecounters (and thus resets key indices) that are older than maxAge seconds
func (*MessageDB) ExpireSigners ¶
ExpireSigners expires signers. Returns number of prepared and deleted entries
func (*MessageDB) ForgetMessages ¶
ForgetMessages returns true if we know a message already
func (*MessageDB) GetBlob ¶
func (db *MessageDB) GetBlob(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
GetBlob returns a blob struct
func (*MessageDB) GetBlobDB ¶
func (db *MessageDB) GetBlobDB(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
GetBlobDB returns the blob identified by messageID from the database
func (*MessageDB) GetBlobFS ¶
func (db *MessageDB) GetBlobFS(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)
GetBlobFS reads a blob from the filesystem
func (*MessageDB) GetGlobalIndex ¶
GetGlobalIndex returns the global index starting with start and at most count entries
func (*MessageDB) GetKeyIndex ¶
func (db *MessageDB) GetKeyIndex(index *message.Curve25519Key, start int64, count int64) ([][]byte, int, error)
GetKeyIndex returns the index for key index starting with start and at most count entries
func (*MessageDB) InsertBlob ¶
func (db *MessageDB) InsertBlob(id uint64, messageID *[message.MessageIDSize]byte, signer *[message.SignerPubKeySize]byte, onetime bool, data []byte) error
InsertBlob writes a blob
func (*MessageDB) InsertBlobDB ¶
func (db *MessageDB) InsertBlobDB(id uint64, messageID *[message.MessageIDSize]byte, signer *[message.SignerPubKeySize]byte, onetime bool, data []byte) error
InsertBlobDB inserts a blob into the database
func (*MessageDB) InsertBlobFS ¶
InsertBlobFS writes a blob to database
func (*MessageDB) InsertBlobStruct ¶
func (db *MessageDB) InsertBlobStruct(mb *MessageBlob) error
InsertBlobStruct inserts a MessageBlob
func (*MessageDB) InsertMessage ¶
func (db *MessageDB) InsertMessage(msg *structs.MessageStruct) (uint64, error)
InsertMessage inserts a message struct into the database
func (*MessageDB) InsertOrUpdateSigner ¶
func (db *MessageDB) InsertOrUpdateSigner(signerStruct *structs.SignerStruct) error
InsertOrUpdateSigner inserts or updates a signer
func (*MessageDB) InsertPeer ¶
func (db *MessageDB) InsertPeer(pubkey *[ed25519.PublicKeySize]byte) error
InsertPeer writes a new peer, returns error if exists
func (*MessageDB) InsertSigner ¶
func (db *MessageDB) InsertSigner(signerStruct *structs.SignerStruct) (int64, error)
InsertSigner writes a new signer to database and returns its unique ID
func (*MessageDB) LearnMessage ¶
func (db *MessageDB) LearnMessage(mid *[message.MessageIDSize]byte) error
LearnMessage records a message to be known
func (*MessageDB) MessageKnown ¶
func (db *MessageDB) MessageKnown(mid *[message.MessageIDSize]byte) bool
MessageKnown returns true if we know a message already
func (*MessageDB) SelectMessageByID ¶
func (db *MessageDB) SelectMessageByID(mid *[message.MessageIDSize]byte) (uint64, *structs.MessageStruct, error)
SelectMessageByID returns message data for the messageid
func (*MessageDB) SelectMessageExpire ¶
func (db *MessageDB) SelectMessageExpire(now int64) ([]ExpireMessage, error)
SelectMessageExpire returns a list of messages that have expired
func (*MessageDB) SelectPeer ¶
func (db *MessageDB) SelectPeer(pubkey *[ed25519.PublicKeySize]byte) (*structs.PeerStruct, error)
SelectPeer returns information about the peer
func (*MessageDB) SelectSigner ¶
func (db *MessageDB) SelectSigner(pk *[message.SignerPubKeySize]byte) (int64, *structs.SignerStruct, error)
SelectSigner returns the signer identified by its public key. Returns unique ID, struct or error
func (*MessageDB) SelectSignerByID ¶
SelectSignerByID returns the signer identified by its public key. Returns unique ID, struct or error
func (*MessageDB) SetMessageExpireByID ¶
SetMessageExpireByID changes the expire time for the message identified by messageid
func (*MessageDB) TouchPeer ¶
func (db *MessageDB) TouchPeer(pubkey *[ed25519.PublicKeySize]byte) error
TouchPeer inserts a peer but ignores duplicate errors
func (*MessageDB) UnlockShard ¶
UnlockShard unlocks shard s, if locked. Runtime error otherwise
func (*MessageDB) UpdatePeerNotification ¶
func (db *MessageDB) UpdatePeerNotification(pubkey *[ed25519.PublicKeySize]byte, hasError bool) error
UpdatePeerNotification records the peer's notification ping time
func (*MessageDB) UpdatePeerStats ¶
func (db *MessageDB) UpdatePeerStats(pubkey *[ed25519.PublicKeySize]byte, lastFetch, lastPos, lastErrors uint64) error
UpdatePeerStats updates the peer statistics
func (*MessageDB) UpdatePeerToken ¶
func (db *MessageDB) UpdatePeerToken(pubkey *[ed25519.PublicKeySize]byte, signedToken *[keyproof.ProofTokenSignedSize]byte) error
UpdatePeerToken records the next authentication token for this peer
func (*MessageDB) UpdateSigner ¶
func (db *MessageDB) UpdateSigner(signerStruct *structs.SignerStruct) error
UpdateSigner updates the signer