From 337257e0ead707d0c8bf1b8d5bd777560b484374 Mon Sep 17 00:00:00 2001 From: joshemb <josh@elixxir.io> Date: Thu, 1 Sep 2022 14:10:33 -0700 Subject: [PATCH] Draft: Modify KV.Set to no longer contain version parameter --- auth/store/confirmation.go | 3 +-- auth/store/previousNegotiations.go | 7 +++---- auth/store/sentRequest.go | 5 ++--- auth/store/store.go | 2 +- backup/jsonStorage.go | 2 +- backup/keyStorage.go | 2 +- cmix/cmixMessageBuffer.go | 2 +- cmix/gateway/storeHostList.go | 2 +- cmix/identity/receptionID/identity.go | 2 +- cmix/identity/receptionID/store.go | 2 +- cmix/identity/receptionID/store/earliestRound.go | 3 +-- cmix/identity/receptionID/store/unknownRounds.go | 2 +- cmix/identity/tracker.go | 2 +- cmix/message/meteredCmixMessageBuffer.go | 2 ++ cmix/nodes/store.go | 2 ++ cmix/nodes/storeKey.go | 2 +- cmix/pickup/store/store.go | 2 +- cmix/pickup/store/uncheckedRounds.go | 2 +- cmix/rounds/roundStorage.go | 2 +- e2e/e2eMessageBuffer.go | 2 +- e2e/manager.go | 6 +++--- e2e/parse/conversation/partner.go | 2 +- e2e/parse/conversation/ring.go | 4 ++-- e2e/parse/partition/multiPartMessage.go | 2 +- e2e/parse/partition/part.go | 3 ++- e2e/parse/partition/part_test.go | 2 +- e2e/parse/partition/store.go | 2 +- e2e/ratchet/partner/relationship.go | 2 +- e2e/ratchet/partner/relationshipFingerprint.go | 2 ++ e2e/ratchet/partner/session/session.go | 2 +- e2e/ratchet/storage.go | 2 +- fileTransfer/store/cypher/manager.go | 2 +- fileTransfer/store/received.go | 2 +- fileTransfer/store/receivedTransfer.go | 4 ++-- fileTransfer/store/sent.go | 2 +- fileTransfer/store/sentTransfer.go | 2 +- groupChat/groupStore/group.go | 2 +- groupChat/groupStore/store.go | 2 +- storage/clientVersion/store.go | 2 +- storage/clientVersion/store_test.go | 2 +- storage/session.go | 5 +++-- storage/user/cryptographic.go | 3 +-- storage/user/registation.go | 8 ++++---- storage/user/registation_test.go | 10 +++++----- storage/user/username.go | 2 +- storage/user/username_test.go | 2 +- storage/utility/NDF.go | 2 +- storage/utility/blockStore.go | 4 ++-- storage/utility/blockStore_test.go | 4 ++-- storage/utility/bucket.go | 2 +- storage/utility/bucketParams.go | 2 +- storage/utility/contact.go | 2 +- storage/utility/dh.go | 2 +- storage/utility/group.go | 2 +- storage/utility/id.go | 2 +- storage/utility/messageBuffer.go | 2 +- storage/utility/multiStateVector.go | 2 +- storage/utility/multiStateVector_test.go | 2 +- storage/utility/sidh.go | 4 ++-- storage/utility/stateVector.go | 2 +- storage/utility/stateVector_test.go | 2 +- storage/versioned/kv.go | 6 ++++-- storage/versioned/kv_test.go | 2 +- ud/registered.go | 2 +- ud/store/store.go | 4 ++-- 65 files changed, 92 insertions(+), 87 deletions(-) diff --git a/auth/store/confirmation.go b/auth/store/confirmation.go index c972fd8af..286dc7a63 100644 --- a/auth/store/confirmation.go +++ b/auth/store/confirmation.go @@ -48,8 +48,7 @@ func (s *Store) StoreConfirmation(partner *id.ID, Data: confirmBytes, } - return s.kv.Set(makeConfirmationKey(partner), - currentConfirmationVersion, obj) + return s.kv.Set(makeConfirmationKey(partner), obj) } // LoadConfirmation loads the confirmation for the given partner and fingerprint diff --git a/auth/store/previousNegotiations.go b/auth/store/previousNegotiations.go index be8d701f0..30a28d715 100644 --- a/auth/store/previousNegotiations.go +++ b/auth/store/previousNegotiations.go @@ -112,7 +112,7 @@ func (s *Store) savePreviousNegotiations() error { Data: marshalPreviousNegotiations(s.previousNegotiations), } - return s.kv.Set(negotiationPartnersKey, negotiationPartnersVersion, obj) + return s.kv.Set(negotiationPartnersKey, obj) } // newOrLoadPreviousNegotiations loads the list of previousNegotiations partners @@ -188,8 +188,7 @@ func saveNegotiationFingerprints( Data: marshalNegotiationFingerprints(fingerprints...), } - return kv.Set(makeNegotiationFingerprintsKey(partner), - currentNegotiationFingerprintsVersion, obj) + return kv.Set(makeNegotiationFingerprintsKey(partner), obj) } // loadNegotiationFingerprints loads the list of sentByFingerprints for the given @@ -287,5 +286,5 @@ func upgradePreviousNegotiationsV0(kv *versioned.KV) error { Data: marshalPreviousNegotiations( newPrevNegotiations), } - return kv.Set(negotiationPartnersKey, negotiationPartnersVersion, obj) + return kv.Set(negotiationPartnersKey, obj) } diff --git a/auth/store/sentRequest.go b/auth/store/sentRequest.go index 5f5b8a69e..6732b6ee8 100644 --- a/auth/store/sentRequest.go +++ b/auth/store/sentRequest.go @@ -211,8 +211,7 @@ func (sr *SentRequest) save() error { Data: data, } - return sr.kv.Set(makeSentRequestKey(sr.partner), - currentSentRequestVersion, &obj) + return sr.kv.Set(makeSentRequestKey(sr.partner), &obj) } func (sr *SentRequest) delete() { @@ -296,7 +295,7 @@ func upgradeSentRequestKeyV0(kv *versioned.KV, partner *id.ID) error { // Note: uses same encoding, just different keys obj.Version = 1 - err = kv.Set(makeSentRequestKey(partner), 1, obj) + err = kv.Set(makeSentRequestKey(partner), obj) if err != nil { return err } diff --git a/auth/store/store.go b/auth/store/store.go index e5496b2d7..a0ec7b159 100644 --- a/auth/store/store.go +++ b/auth/store/store.go @@ -149,7 +149,7 @@ func (s *Store) save() error { Data: data, } - return s.kv.Set(requestMapKey, requestMapVersion, &obj) + return s.kv.Set(requestMapKey, &obj) } // NewStore creates a new store. All passed in private keys are added as diff --git a/backup/jsonStorage.go b/backup/jsonStorage.go index 8ce778b56..fcccaa3f3 100644 --- a/backup/jsonStorage.go +++ b/backup/jsonStorage.go @@ -17,7 +17,7 @@ func storeJson(json string, kv *versioned.KV) error { Data: []byte(json), } - return kv.Set(jsonStorageKey, jsonStorageVersion, obj) + return kv.Set(jsonStorageKey, obj) } func loadJson(kv *versioned.KV) string { diff --git a/backup/keyStorage.go b/backup/keyStorage.go index 274379987..4cbe25648 100644 --- a/backup/keyStorage.go +++ b/backup/keyStorage.go @@ -38,7 +38,7 @@ func saveBackup(key, salt []byte, params backup.Params, kv *versioned.KV) error Data: marshalBackup(key, salt, params), } - return kv.Set(cryptoStorageKey, cryptoStorageVersion, obj) + return kv.Set(cryptoStorageKey, obj) } // loadBackup loads the key, salt, and params from storage. diff --git a/cmix/cmixMessageBuffer.go b/cmix/cmixMessageBuffer.go index 54ba624ab..620ffac6f 100644 --- a/cmix/cmixMessageBuffer.go +++ b/cmix/cmixMessageBuffer.go @@ -52,7 +52,7 @@ func (cmh *cmixMessageHandler) SaveMessage( } // Save versioned object - return kv.Set(key, currentCmixMessageVersion, &obj) + return kv.Set(key, &obj) } // LoadMessage returns the message with the specified key from the key value diff --git a/cmix/gateway/storeHostList.go b/cmix/gateway/storeHostList.go index d71d17b53..e949fb299 100644 --- a/cmix/gateway/storeHostList.go +++ b/cmix/gateway/storeHostList.go @@ -36,7 +36,7 @@ func saveHostList(kv *versioned.KV, list []*id.ID) error { Timestamp: netTime.Now(), } - return kv.Set(hostListKey, hostListVersion, obj) + return kv.Set(hostListKey, obj) } // getHostList returns the host list from storage. diff --git a/cmix/identity/receptionID/identity.go b/cmix/identity/receptionID/identity.go index 96767b8a7..3d9a9c73e 100644 --- a/cmix/identity/receptionID/identity.go +++ b/cmix/identity/receptionID/identity.go @@ -73,7 +73,7 @@ func (i Identity) store(kv *versioned.KV) error { } // Store the data - err = kv.Set(identityStorageKey, identityStorageVersion, obj) + err = kv.Set(identityStorageKey, obj) if err != nil { return errors.WithMessage(err, "Failed to store Identity") } diff --git a/cmix/identity/receptionID/store.go b/cmix/identity/receptionID/store.go index e13eddfac..ec0f5a903 100644 --- a/cmix/identity/receptionID/store.go +++ b/cmix/identity/receptionID/store.go @@ -122,7 +122,7 @@ func (s *Store) save() error { Data: data, } - err = s.kv.Set(receptionStoreStorageKey, receptionStoreStorageVersion, obj) + err = s.kv.Set(receptionStoreStorageKey, obj) if err != nil { return errors.WithMessage(err, "Failed to store reception store") } diff --git a/cmix/identity/receptionID/store/earliestRound.go b/cmix/identity/receptionID/store/earliestRound.go index fe1b60abd..8fb84f6dc 100644 --- a/cmix/identity/receptionID/store/earliestRound.go +++ b/cmix/identity/receptionID/store/earliestRound.go @@ -65,8 +65,7 @@ func (ur *EarliestRound) save() { Data: urStr, } - err = ur.kv.Set(earliestRoundStorageKey, - earliestRoundStorageVersion, obj) + err = ur.kv.Set(earliestRoundStorageKey, obj) if err != nil { jww.FATAL.Panicf("Failed to store the earliest round: %+v", err) } diff --git a/cmix/identity/receptionID/store/unknownRounds.go b/cmix/identity/receptionID/store/unknownRounds.go index b14c939ab..9000369e0 100644 --- a/cmix/identity/receptionID/store/unknownRounds.go +++ b/cmix/identity/receptionID/store/unknownRounds.go @@ -223,7 +223,7 @@ func (urs *UnknownRounds) save() error { } // Save to disk - return urs.kv.Set(unknownRoundsStorageKey, unknownRoundsStorageVersion, obj) + return urs.kv.Set(unknownRoundsStorageKey, obj) } func (urs *UnknownRounds) Delete() { diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go index 8d9f8a6d2..206c9ac13 100644 --- a/cmix/identity/tracker.go +++ b/cmix/identity/tracker.go @@ -394,7 +394,7 @@ func (t *manager) save() { Data: data, } - err = t.session.GetKV().Set(TrackerListKey, TrackerListVersion, obj) + err = t.session.GetKV().Set(TrackerListKey, obj) if err != nil { jww.FATAL.Panicf("Unable to save TrackedID list: %+v", err) } diff --git a/cmix/message/meteredCmixMessageBuffer.go b/cmix/message/meteredCmixMessageBuffer.go index 0bc824508..122419590 100644 --- a/cmix/message/meteredCmixMessageBuffer.go +++ b/cmix/message/meteredCmixMessageBuffer.go @@ -55,6 +55,8 @@ func (*meteredCmixMessageHandler) SaveMessage(kv *versioned.KV, m interface{}, } // Save versioned object + // fixme: this had differing versions in object and set, + // reviewer please confirm this is correct before merge return kv.Set(key, utility.CurrentMessageBufferVersion, &obj) } diff --git a/cmix/nodes/store.go b/cmix/nodes/store.go index ff4511934..c5c674a9f 100644 --- a/cmix/nodes/store.go +++ b/cmix/nodes/store.go @@ -72,6 +72,8 @@ func (r *registrar) save() error { Data: data, } + // fixme: this had differing versions in object and set, + // reviewer please confirm this is correct before merge return r.kv.Set(storeKey, currentKeyVersion, &obj) } diff --git a/cmix/nodes/storeKey.go b/cmix/nodes/storeKey.go index 98b6e18ca..9b8b6f751 100644 --- a/cmix/nodes/storeKey.go +++ b/cmix/nodes/storeKey.go @@ -84,7 +84,7 @@ func (k *key) save() error { Data: data, } - return k.kv.Set(k.storeKey, currentKeyVersion, &obj) + return k.kv.Set(k.storeKey, &obj) } // delete deletes the key from the versioned keystore. diff --git a/cmix/pickup/store/store.go b/cmix/pickup/store/store.go index 4a1f83006..188d36152 100644 --- a/cmix/pickup/store/store.go +++ b/cmix/pickup/store/store.go @@ -218,7 +218,7 @@ func (s *UncheckedRoundStore) save() error { } // Save to storage - err = s.kv.Set(uncheckedRoundKey, uncheckedRoundVersion, obj) + err = s.kv.Set(uncheckedRoundKey, obj) if err != nil { return errors.WithMessagef(err, "Could not store data for unchecked rounds") diff --git a/cmix/pickup/store/uncheckedRounds.go b/cmix/pickup/store/uncheckedRounds.go index b15cc5b80..c44caf62d 100644 --- a/cmix/pickup/store/uncheckedRounds.go +++ b/cmix/pickup/store/uncheckedRounds.go @@ -147,7 +147,7 @@ func storeRoundInfo(kv *versioned.KV, info *pb.RoundInfo, recipient *id.ID, } return kv.Set( - roundKey(id.Round(info.ID), recipient, ephID), roundInfoVersion, &obj) + roundKey(id.Round(info.ID), recipient, ephID), &obj) } func loadRoundInfo(kv *versioned.KV, id id.Round, recipient *id.ID, diff --git a/cmix/rounds/roundStorage.go b/cmix/rounds/roundStorage.go index 2b92c819f..2257f485a 100644 --- a/cmix/rounds/roundStorage.go +++ b/cmix/rounds/roundStorage.go @@ -25,7 +25,7 @@ func StoreRound(kv *versioned.KV, round Round, key string) error { Data: marshaled, } - return kv.Set(key, currentRoundVersion, &obj) + return kv.Set(key, &obj) } // LoadRound stores the round using the key. diff --git a/e2e/e2eMessageBuffer.go b/e2e/e2eMessageBuffer.go index 00b196d6b..6cc405ed5 100644 --- a/e2e/e2eMessageBuffer.go +++ b/e2e/e2eMessageBuffer.go @@ -51,7 +51,7 @@ func (emh *e2eMessageHandler) SaveMessage(kv *versioned.KV, m interface{}, } // Save versioned object - return kv.Set(key, currentE2EMessageVersion, &obj) + return kv.Set(key, &obj) } // LoadMessage returns the e2eMessage with the specified key from the key value diff --git a/e2e/manager.go b/e2e/manager.go index 9fc1b4b3d..6650aa862 100644 --- a/e2e/manager.go +++ b/e2e/manager.go @@ -68,7 +68,7 @@ func initE2E(kv *versioned.KV, myID *id.ID, privKey *cyclic.Int, if err != nil { return errors.WithMessage(err, "Failed to marshal rekeyParams") } - err = kv.Set(e2eRekeyParamsKey, e2eRekeyParamsVer, &versioned.Object{ + err = kv.Set(e2eRekeyParamsKey, &versioned.Object{ Version: e2eRekeyParamsVer, Timestamp: netTime.Now(), Data: rekeyParamsData, @@ -121,7 +121,7 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID, } // Store the rekey params to disk/memory - err = kv.Set(e2eRekeyParamsKey, e2eRekeyParamsVer, &versioned.Object{ + err = kv.Set(e2eRekeyParamsKey, &versioned.Object{ Version: e2eRekeyParamsVer, Timestamp: netTime.Now(), Data: rekeyParamsData, @@ -129,7 +129,7 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID, if err != nil { return nil, err } - err = kv.Set(legacyE2EKey, e2eRekeyParamsVer, &versioned.Object{ + err = kv.Set(legacyE2EKey, &versioned.Object{ Version: e2eRekeyParamsVer, Timestamp: netTime.Now(), Data: []byte{1}, diff --git a/e2e/parse/conversation/partner.go b/e2e/parse/conversation/partner.go index 06155c697..0d5ad0ff0 100644 --- a/e2e/parse/conversation/partner.go +++ b/e2e/parse/conversation/partner.go @@ -163,7 +163,7 @@ func (c *Conversation) save() error { } key := makeConversationKey(c.partner) - return c.kv.Set(key, currentConversationVersion, &obj) + return c.kv.Set(key, &obj) } // delete removes the Conversation from KV storage. diff --git a/e2e/parse/conversation/ring.go b/e2e/parse/conversation/ring.go index 7e255451b..f2e21b296 100644 --- a/e2e/parse/conversation/ring.go +++ b/e2e/parse/conversation/ring.go @@ -231,7 +231,7 @@ func (b *Buff) saveBuff() error { Data: b.marshal(), } - return b.kv.Set(ringBuffKey, ringBuffVersion, obj) + return b.kv.Set(ringBuffKey, obj) } // marshal creates a byte buffer containing serialized information on the Buff. @@ -293,7 +293,7 @@ func (b *Buff) saveMessage(msg *Message) error { } return b.kv.Set( - makeMessageKey(msg.MessageId.truncate()), messageVersion, obj) + makeMessageKey(msg.MessageId.truncate()), obj) } diff --git a/e2e/parse/partition/multiPartMessage.go b/e2e/parse/partition/multiPartMessage.go index f7fd42085..88a0c6499 100644 --- a/e2e/parse/partition/multiPartMessage.go +++ b/e2e/parse/partition/multiPartMessage.go @@ -102,7 +102,7 @@ func (mpm *multiPartMessage) save() error { Data: data, } - return mpm.kv.Set(messageKey, currentMultiPartMessageVersion, &obj) + return mpm.kv.Set(messageKey, &obj) } func (mpm *multiPartMessage) Add(partNumber uint8, part []byte) { diff --git a/e2e/parse/partition/part.go b/e2e/parse/partition/part.go index 25b0e2566..7d38738d9 100644 --- a/e2e/parse/partition/part.go +++ b/e2e/parse/partition/part.go @@ -34,7 +34,8 @@ func savePart(kv *versioned.KV, partNum uint8, part []byte) error { Timestamp: netTime.Now(), Data: part, } - + // fixme: this had differing versions in object and set, + // reviewer please confirm this is correct before merge return kv.Set(key, currentMultiPartMessageVersion, &obj) } diff --git a/e2e/parse/partition/part_test.go b/e2e/parse/partition/part_test.go index 53366fdb6..13b664daa 100644 --- a/e2e/parse/partition/part_test.go +++ b/e2e/parse/partition/part_test.go @@ -57,7 +57,7 @@ func Test_loadPart(t *testing.T) { // Save part to key value store err := rootKv.Set( - key, 0, &versioned.Object{Timestamp: netTime.Now(), Data: part}) + key, &versioned.Object{Timestamp: netTime.Now(), Data: part}) if err != nil { t.Errorf("Failed to set object: %+v", err) } diff --git a/e2e/parse/partition/store.go b/e2e/parse/partition/store.go index 868737ea9..b0f76cffb 100644 --- a/e2e/parse/partition/store.go +++ b/e2e/parse/partition/store.go @@ -160,7 +160,7 @@ func (s *Store) saveActiveParts() { Data: data, } - err = s.kv.Set(activePartitions, activePartitionVersion, &obj) + err = s.kv.Set(activePartitions, &obj) if err != nil { jww.FATAL.Panicf("Could not save active partitions: %+v", err) } diff --git a/e2e/ratchet/partner/relationship.go b/e2e/ratchet/partner/relationship.go index bd6f60cce..4982163b7 100644 --- a/e2e/ratchet/partner/relationship.go +++ b/e2e/ratchet/partner/relationship.go @@ -161,7 +161,7 @@ func (r *relationship) save() error { Data: data, } - return r.kv.Set(relationshipKey, currentRelationshipVersion, &obj) + return r.kv.Set(relationshipKey, &obj) } //ekv functions diff --git a/e2e/ratchet/partner/relationshipFingerprint.go b/e2e/ratchet/partner/relationshipFingerprint.go index 9380b9a50..910f27953 100644 --- a/e2e/ratchet/partner/relationshipFingerprint.go +++ b/e2e/ratchet/partner/relationshipFingerprint.go @@ -45,6 +45,8 @@ func storeRelationshipFingerprint(fp []byte, kv *versioned.KV) error { Data: fp, } + // fixme: this had differing versions in object and set, + // reviewer please confirm this is correct before merge return kv.Set(relationshipFingerprintKey, currentRelationshipVersion, &obj) } diff --git a/e2e/ratchet/partner/session/session.go b/e2e/ratchet/partner/session/session.go index d0ee6ca19..6e6296ca5 100644 --- a/e2e/ratchet/partner/session/session.go +++ b/e2e/ratchet/partner/session/session.go @@ -239,7 +239,7 @@ func (s *Session) Save() error { jww.WARN.Printf("saving with KV: %v", s.kv) - return s.kv.Set(sessionKey, currentSessionVersion, &obj) + return s.kv.Set(sessionKey, &obj) } /*METHODS*/ diff --git a/e2e/ratchet/storage.go b/e2e/ratchet/storage.go index 999938dc7..735b50e39 100644 --- a/e2e/ratchet/storage.go +++ b/e2e/ratchet/storage.go @@ -92,7 +92,7 @@ func (r *Ratchet) save() error { Data: data, } - return r.kv.Set(storeKey, currentStoreVersion, &obj) + return r.kv.Set(storeKey, &obj) } // ekv functions diff --git a/fileTransfer/store/cypher/manager.go b/fileTransfer/store/cypher/manager.go index be1662d2d..858f43d5d 100644 --- a/fileTransfer/store/cypher/manager.go +++ b/fileTransfer/store/cypher/manager.go @@ -164,7 +164,7 @@ func saveKey(key *ftCrypto.TransferKey, kv *versioned.KV) error { Data: key.Bytes(), } - return kv.Set(cypherManagerKeyStoreKey, cypherManagerKeyStoreVersion, obj) + return kv.Set(cypherManagerKeyStoreKey, obj) } // loadKey loads the transfer key from storage. diff --git a/fileTransfer/store/received.go b/fileTransfer/store/received.go index 8522f6a86..08e0fdfed 100644 --- a/fileTransfer/store/received.go +++ b/fileTransfer/store/received.go @@ -157,7 +157,7 @@ func (r *Received) save() error { Data: data, } - return r.kv.Set(receivedTransfersStoreKey, receivedTransfersStoreVersion, obj) + return r.kv.Set(receivedTransfersStoreKey, obj) } // marshalReceivedTransfersMap serialises the list of transfer IDs from a diff --git a/fileTransfer/store/receivedTransfer.go b/fileTransfer/store/receivedTransfer.go index db6f54264..f3844ade5 100644 --- a/fileTransfer/store/receivedTransfer.go +++ b/fileTransfer/store/receivedTransfer.go @@ -339,7 +339,7 @@ func (rt *ReceivedTransfer) save() error { } // Save versioned object - return rt.kv.Set(receivedTransferStoreKey, receivedTransferStoreVersion, vo) + return rt.kv.Set(receivedTransferStoreKey, vo) } // receivedTransferDisk structure is used to marshal and unmarshal @@ -385,7 +385,7 @@ func savePart(part []byte, partNum int, kv *versioned.KV) error { Data: part, } - return kv.Set(makeReceivedPartKey(partNum), receivedPartStoreVersion, obj) + return kv.Set(makeReceivedPartKey(partNum), obj) } // loadPart loads the part with the given part number from storage. diff --git a/fileTransfer/store/sent.go b/fileTransfer/store/sent.go index 7873d5b46..ca6d284ce 100644 --- a/fileTransfer/store/sent.go +++ b/fileTransfer/store/sent.go @@ -165,7 +165,7 @@ func (s *Sent) save() error { Data: data, } - return s.kv.Set(sentTransfersStoreKey, sentTransfersStoreVersion, obj) + return s.kv.Set(sentTransfersStoreKey, obj) } // marshalSentTransfersMap serialises the list of transfer IDs from a diff --git a/fileTransfer/store/sentTransfer.go b/fileTransfer/store/sentTransfer.go index 83b9594fb..629304236 100644 --- a/fileTransfer/store/sentTransfer.go +++ b/fileTransfer/store/sentTransfer.go @@ -346,7 +346,7 @@ func (st *SentTransfer) save() error { Data: data, } - return st.kv.Set(sentTransferStoreKey, sentTransferStoreVersion, obj) + return st.kv.Set(sentTransferStoreKey, obj) } // sentTransferDisk structure is used to marshal and unmarshal SentTransfer diff --git a/groupChat/groupStore/group.go b/groupChat/groupStore/group.go index 2c7d3e917..db6accc3d 100644 --- a/groupChat/groupStore/group.go +++ b/groupChat/groupStore/group.go @@ -105,7 +105,7 @@ func (g Group) store(kv *versioned.KV) error { Data: g.Serialize(), } - return kv.Set(groupStoreKey(g.ID), groupStoreVersion, obj) + return kv.Set(groupStoreKey(g.ID), obj) } // loadGroup returns the group with the corresponding ID from storage. diff --git a/groupChat/groupStore/store.go b/groupChat/groupStore/store.go index f2372be86..97c0a6ac5 100644 --- a/groupChat/groupStore/store.go +++ b/groupChat/groupStore/store.go @@ -126,7 +126,7 @@ func (s *Store) saveGroupList() error { } // Save to storage - return s.kv.Set(groupListStorageKey, groupListVersion, obj) + return s.kv.Set(groupListStorageKey, obj) } // serializeGroupIdList serializes the list of group IDs. diff --git a/storage/clientVersion/store.go b/storage/clientVersion/store.go index 5b6e951ef..6265e5900 100644 --- a/storage/clientVersion/store.go +++ b/storage/clientVersion/store.go @@ -113,5 +113,5 @@ func (s *Store) save() error { Data: []byte(s.version.String()), } - return s.kv.Set(storeKey, storeVersion, &obj) + return s.kv.Set(storeKey, &obj) } diff --git a/storage/clientVersion/store_test.go b/storage/clientVersion/store_test.go index 0e8cae86f..a2bbf737f 100644 --- a/storage/clientVersion/store_test.go +++ b/storage/clientVersion/store_test.go @@ -71,7 +71,7 @@ func TestLoadStore_ParseVersionError(t *testing.T) { Data: []byte("invalid version"), } - err := kv.Prefix(prefix).Set(storeKey, storeVersion, &obj) + err := kv.Prefix(prefix).Set(storeKey, &obj) if err != nil { t.Fatalf("Failed to save Store: %+v", err) } diff --git a/storage/session.go b/storage/session.go index d181f0742..844177191 100644 --- a/storage/session.go +++ b/storage/session.go @@ -195,9 +195,10 @@ func (s *session) Get(key string) (*versioned.Object, error) { return s.kv.Get(key, currentSessionVersion) } -// Set a value in the session +// Set a value in the session. If you wish to maintain versioning, +// the [versioned.Object]'s Version field must be set. func (s *session) Set(key string, object *versioned.Object) error { - return s.kv.Set(key, currentSessionVersion, object) + return s.kv.Set(key, object) } // Delete a value in the session diff --git a/storage/user/cryptographic.go b/storage/user/cryptographic.go index 8c245fc70..fe038e831 100644 --- a/storage/user/cryptographic.go +++ b/storage/user/cryptographic.go @@ -216,8 +216,7 @@ func (ci *CryptographicIdentity) save(kv *versioned.KV) error { Data: enc, } - return kv.Set(cryptographicIdentityKey, - currentCryptographicIdentityVersion, obj) + return kv.Set(cryptographicIdentityKey, obj) } func (ci *CryptographicIdentity) GetTransmissionID() *id.ID { diff --git a/storage/user/registation.go b/storage/user/registation.go index 4da19b4cd..50090edc7 100644 --- a/storage/user/registation.go +++ b/storage/user/registation.go @@ -95,8 +95,7 @@ func (u *User) SetTransmissionRegistrationValidationSignature(b []byte) { Data: b, } - err := u.kv.Set(transmissionRegValidationSigKey, - currentRegValidationSigVersion, obj) + err := u.kv.Set(transmissionRegValidationSigKey, obj) if err != nil { jww.FATAL.Panicf("Failed to store the transmission Identity Validation "+ "Signature: %s", err) @@ -122,8 +121,7 @@ func (u *User) SetReceptionRegistrationValidationSignature(b []byte) { Data: b, } - err := u.kv.Set(receptionRegValidationSigKey, - currentRegValidationSigVersion, obj) + err := u.kv.Set(receptionRegValidationSigKey, obj) if err != nil { jww.FATAL.Panicf("Failed to store the reception Identity Validation "+ "Signature: %s", err) @@ -153,6 +151,8 @@ func (u *User) SetRegistrationTimestamp(tsNano int64) { Data: tsBytes, } + // fixme: this had differing versions in object and set, + // reviewer please confirm this is correct before merge err := u.kv.Set(registrationTimestampKey, registrationTimestampVersion, obj) if err != nil { diff --git a/storage/user/registation_test.go b/storage/user/registation_test.go index 346e66275..8f3482324 100644 --- a/storage/user/registation_test.go +++ b/storage/user/registation_test.go @@ -137,7 +137,7 @@ func TestUser_loadRegistrationValidationSignature(t *testing.T) { sig := []byte("transmissionsignature") err = kv.Set(transmissionRegValidationSigKey, - currentRegValidationSigVersion, &versioned.Object{ + &versioned.Object{ Version: currentRegValidationSigVersion, Timestamp: netTime.Now(), Data: sig, @@ -153,7 +153,7 @@ func TestUser_loadRegistrationValidationSignature(t *testing.T) { sig = []byte("receptionsignature") err = kv.Set(receptionRegValidationSigKey, - currentRegValidationSigVersion, &versioned.Object{ + &versioned.Object{ Version: currentRegValidationSigVersion, Timestamp: netTime.Now(), Data: sig, @@ -252,12 +252,12 @@ func TestUser_loadRegistrationTimestamp(t *testing.T) { data := make([]byte, 8) binary.BigEndian.PutUint64(data, uint64(testTime.UnixNano())) vo := &versioned.Object{ - Version: currentRegValidationSigVersion, + Version: registrationTimestampVersion, Timestamp: netTime.Now(), Data: data, } - err = kv.Set(registrationTimestampKey, - registrationTimestampVersion, vo) + + err = kv.Set(registrationTimestampKey, vo) if err != nil { t.Errorf("Failed to set reg validation sig key in kv store: %+v", err) } diff --git a/storage/user/username.go b/storage/user/username.go index c36e0eba9..aff647925 100644 --- a/storage/user/username.go +++ b/storage/user/username.go @@ -39,7 +39,7 @@ func (u *User) SetUsername(username string) error { Data: []byte(username), } - err := u.kv.Set(usernameKey, currentUsernameVersion, obj) + err := u.kv.Set(usernameKey, obj) if err != nil { jww.FATAL.Panicf("Failed to store the username: %s", err) } diff --git a/storage/user/username_test.go b/storage/user/username_test.go index a52b20ac0..1050f0f6e 100644 --- a/storage/user/username_test.go +++ b/storage/user/username_test.go @@ -120,7 +120,7 @@ func TestUser_loadUsername(t *testing.T) { u1 := "zezima" - err = u.kv.Set(usernameKey, currentUsernameVersion, &versioned.Object{ + err = u.kv.Set(usernameKey, &versioned.Object{ Version: currentUsernameVersion, Timestamp: netTime.Now(), Data: []byte(u1), diff --git a/storage/utility/NDF.go b/storage/utility/NDF.go index e4e6281b2..04fc726ee 100644 --- a/storage/utility/NDF.go +++ b/storage/utility/NDF.go @@ -43,5 +43,5 @@ func SaveNDF(kv *versioned.KV, key string, ndf *ndf.NetworkDefinition) error { Data: marshaled, } - return kv.Set(key, currentNDFVersion, &obj) + return kv.Set(key, &obj) } diff --git a/storage/utility/blockStore.go b/storage/utility/blockStore.go index 053e015dd..62d36110d 100644 --- a/storage/utility/blockStore.go +++ b/storage/utility/blockStore.go @@ -155,7 +155,7 @@ func (bs *BlockStore) saveBlock() error { } // Save to storage - err = bs.kv.Set(bs.getKey(bs.lastSaved), blockVersion, &obj) + err = bs.kv.Set(bs.getKey(bs.lastSaved), &obj) if err != nil { return errors.Errorf(bKvSaveErr, bs.lastSaved, err) } @@ -214,7 +214,7 @@ func (bs *BlockStore) save() error { } // Save to storage - err := bs.kv.Set(blockStoreKey, blockStoreVersion, &obj) + err := bs.kv.Set(blockStoreKey, &obj) if err != nil { return errors.Errorf(bsKvSaveErr, err) } diff --git a/storage/utility/blockStore_test.go b/storage/utility/blockStore_test.go index 3f1341785..8758c6b23 100644 --- a/storage/utility/blockStore_test.go +++ b/storage/utility/blockStore_test.go @@ -208,7 +208,7 @@ func TestBlockStore_loadBlock_UnmarshalError(t *testing.T) { } // Save to storage - err := bs.kv.Set(bs.getKey(bs.lastSaved), blockVersion, &obj) + err := bs.kv.Set(bs.getKey(bs.lastSaved), &obj) if err != nil { t.Errorf("Failed to save data to KV: %+v", err) } @@ -338,7 +338,7 @@ func TestBlockStore_load_UnmarshalError(t *testing.T) { } // Save to storage - err := kv.Set(blockStoreKey, blockStoreVersion, &obj) + err := kv.Set(blockStoreKey, &obj) if err != nil { t.Fatalf("failed to save object to storage: %+v", err) } diff --git a/storage/utility/bucket.go b/storage/utility/bucket.go index 46b3da9a9..064989ea7 100644 --- a/storage/utility/bucket.go +++ b/storage/utility/bucket.go @@ -68,7 +68,7 @@ func (s *BucketStore) save(inBucket uint32, timestamp int64) { Data: data, } - err = s.kv.Set(bucketStoreKey, bucketStoreVersion, &obj) + err = s.kv.Set(bucketStoreKey, &obj) if err != nil { jww.ERROR.Printf("Failed to store %s bucket data: %v", diff --git a/storage/utility/bucketParams.go b/storage/utility/bucketParams.go index 756666fa3..4399001dc 100644 --- a/storage/utility/bucketParams.go +++ b/storage/utility/bucketParams.go @@ -99,7 +99,7 @@ func (s *BucketParamStore) save() error { } // Store object into storage - return s.kv.Set(bucketParamsKey, bucketParamsVersion, object) + return s.kv.Set(bucketParamsKey, object) } // load extracts the bucket params from store and loads it into the diff --git a/storage/utility/contact.go b/storage/utility/contact.go index 2050efd8a..41de84a71 100644 --- a/storage/utility/contact.go +++ b/storage/utility/contact.go @@ -35,7 +35,7 @@ func StoreContact(kv *versioned.KV, c contact.Contact) error { Data: c.Marshal(), } - return kv.Set(makeContactKey(c.ID), currentContactVersion, &obj) + return kv.Set(makeContactKey(c.ID), &obj) } // LoadContact reads a contact from a versioned.KV vie their contact ID. diff --git a/storage/utility/dh.go b/storage/utility/dh.go index 6295e446d..88d827e18 100644 --- a/storage/utility/dh.go +++ b/storage/utility/dh.go @@ -29,7 +29,7 @@ func StoreCyclicKey(kv *versioned.KV, cy *cyclic.Int, key string) error { Data: data, } - return kv.Set(key, currentCyclicVersion, &obj) + return kv.Set(key, &obj) } func LoadCyclicKey(kv *versioned.KV, key string) (*cyclic.Int, error) { diff --git a/storage/utility/group.go b/storage/utility/group.go index 531a31ae4..aafbafe4e 100644 --- a/storage/utility/group.go +++ b/storage/utility/group.go @@ -29,7 +29,7 @@ func StoreGroup(kv *versioned.KV, grp *cyclic.Group, key string) error { Data: data, } - return kv.Set(key, currentGroupVersion, &obj) + return kv.Set(key, &obj) } func LoadGroup(kv *versioned.KV, key string) (*cyclic.Group, error) { diff --git a/storage/utility/id.go b/storage/utility/id.go index 08472b53e..691cde824 100644 --- a/storage/utility/id.go +++ b/storage/utility/id.go @@ -22,7 +22,7 @@ func StoreID(kv *versioned.KV, sid *id.ID, key string) error { Data: data, } - return kv.Set(key, currentIDVersion, &obj) + return kv.Set(key, &obj) } func LoadID(kv *versioned.KV, key string) (*id.ID, error) { diff --git a/storage/utility/messageBuffer.go b/storage/utility/messageBuffer.go index 4e5a5d32f..f1ef3895e 100644 --- a/storage/utility/messageBuffer.go +++ b/storage/utility/messageBuffer.go @@ -146,7 +146,7 @@ func (mb *MessageBuffer) save() error { } // Save versioned object - return mb.kv.Set(mb.key, CurrentMessageBufferVersion, &obj) + return mb.kv.Set(mb.key, &obj) } // getMessageList returns a list of all message hashes stored in messages and diff --git a/storage/utility/multiStateVector.go b/storage/utility/multiStateVector.go index caeeb347f..3ab8cc143 100644 --- a/storage/utility/multiStateVector.go +++ b/storage/utility/multiStateVector.go @@ -502,7 +502,7 @@ func (msv *MultiStateVector) save() error { Data: data, } - return msv.kv.Set(msv.key, multiStateVectorVersion, obj) + return msv.kv.Set(msv.key, obj) } // Delete removes the MultiStateVector from storage. diff --git a/storage/utility/multiStateVector_test.go b/storage/utility/multiStateVector_test.go index 38085804b..ddaf9d9e8 100644 --- a/storage/utility/multiStateVector_test.go +++ b/storage/utility/multiStateVector_test.go @@ -890,7 +890,7 @@ func TestLoadMultiStateVector_UnmarshalError(t *testing.T) { expectedErr := strings.Split(loadUnmarshalMsvErr, "%")[0] // Save invalid data to storage - err := kv.Set(makeMultiStateVectorKey(key), multiStateVectorVersion, + err := kv.Set(makeMultiStateVectorKey(key), &versioned.Object{ Version: multiStateVectorVersion, Timestamp: netTime.Now(), diff --git a/storage/utility/sidh.go b/storage/utility/sidh.go index d8082d872..90facf119 100644 --- a/storage/utility/sidh.go +++ b/storage/utility/sidh.go @@ -93,7 +93,7 @@ func StoreSIDHPublicKey(kv *versioned.KV, sidH *sidh.PublicKey, key string) erro Data: sidHBytes, } - return kv.Set(key, currentSIDHPubKeyVersion, &obj) + return kv.Set(key, &obj) } // LoadSIDHPubKeyA loads a public key from storage. @@ -138,7 +138,7 @@ func StoreSIDHPrivateKey(kv *versioned.KV, sidH *sidh.PrivateKey, key string) er Data: sidHBytes, } - return kv.Set(key, currentSIDHPrivKeyVersion, &obj) + return kv.Set(key, &obj) } // LoadSIDHPrivateKeyA loads a public key from storage. diff --git a/storage/utility/stateVector.go b/storage/utility/stateVector.go index 2ed89e2fa..98d5ee3c2 100644 --- a/storage/utility/stateVector.go +++ b/storage/utility/stateVector.go @@ -388,7 +388,7 @@ func (sv *StateVector) save() error { Data: data, } - return sv.kv.Set(sv.key, currentStateVectorVersion, &obj) + return sv.kv.Set(sv.key, &obj) } // Delete remove the StateVector from storage. diff --git a/storage/utility/stateVector_test.go b/storage/utility/stateVector_test.go index 4b2188b25..aecfbe361 100644 --- a/storage/utility/stateVector_test.go +++ b/storage/utility/stateVector_test.go @@ -582,7 +582,7 @@ func TestLoadStateVector_UnmarshalError(t *testing.T) { Timestamp: netTime.Now(), Data: []byte("invalidStateVector"), } - err := kv.Set(makeStateVectorKey(key), currentStateVectorVersion, &obj) + err := kv.Set(makeStateVectorKey(key), &obj) if err != nil { t.Errorf("Failed to save invalid StateVector to storage: %+v", err) } diff --git a/storage/versioned/kv.go b/storage/versioned/kv.go index 13f05e82c..6bc4ef4bc 100644 --- a/storage/versioned/kv.go +++ b/storage/versioned/kv.go @@ -131,8 +131,10 @@ func (v *KV) Delete(key string, version uint64) error { // Set upserts new data into the storage // When calling this, you are responsible for prefixing the key with the correct // type optionally unique id! Call MakeKeyWithPrefix() to do so. -func (v *KV) Set(key string, version uint64, object *Object) error { - key = v.makeKey(key, version) +// The [Object] should contain the versioning if you are maintaining such +// a functionality. +func (v *KV) Set(key string, object *Object) error { + key = v.makeKey(key, object.Version) jww.TRACE.Printf("Set %p with key %v", v.r.data, key) return v.r.data.Set(key, object) } diff --git a/storage/versioned/kv_test.go b/storage/versioned/kv_test.go index cd34474ed..bc1cb53fb 100644 --- a/storage/versioned/kv_test.go +++ b/storage/versioned/kv_test.go @@ -188,7 +188,7 @@ func TestVersionedKV_Set(t *testing.T) { Timestamp: netTime.Now(), Data: []byte("not upgraded"), } - err := vkv.Set("test", originalVersion, &original) + err := vkv.Set("test", &original) if err != nil { t.Fatal(err) } diff --git a/ud/registered.go b/ud/registered.go index 77742fc17..b9c9cd5c7 100644 --- a/ud/registered.go +++ b/ud/registered.go @@ -32,7 +32,7 @@ func setRegistered(kv *versioned.KV) error { Data: data, } - if err := kv.Set(isRegisteredKey, isRegisteredVersion, obj); err != nil { + if err := kv.Set(isRegisteredKey, obj); err != nil { jww.FATAL.Panicf("Failed to store that the client is "+ "registered: %+v", err) } diff --git a/ud/store/store.go b/ud/store/store.go index 0cf274add..8576ed374 100644 --- a/ud/store/store.go +++ b/ud/store/store.go @@ -94,7 +94,7 @@ func (s *Store) saveConfirmedFacts() error { } // Save to storage - return s.kv.Set(confirmedFactKey, version, &obj) + return s.kv.Set(confirmedFactKey, &obj) } // saveUnconfirmedFacts saves all data within Store.unconfirmedFacts into storage. @@ -113,7 +113,7 @@ func (s *Store) saveUnconfirmedFacts() error { } // Save to storage - return s.kv.Set(unconfirmedFactKey, version, &obj) + return s.kv.Set(unconfirmedFactKey, &obj) } -- GitLab