diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f9d20f0..cc30f7cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ *??? ??, ????* +### BUG FIXES + +- Update `pkg/anonymity`: storeHashIntoDatabase - hash from layer1 -> hash from layer2 + ## v1.7.11 diff --git a/pkg/anonymity/qb/anonymity.go b/pkg/anonymity/qb/anonymity.go index 550b5538..e180b354 100644 --- a/pkg/anonymity/qb/anonymity.go +++ b/pkg/anonymity/qb/anonymity.go @@ -242,13 +242,12 @@ func (p *sNode) consumeMessage(pCtx context.Context, pNetMsg layer1.IMessage) er } // try store hash of message - if err := p.storeHashIntoDatabase(logBuilder, pNetMsg.GetHash()); err != nil { + if err := p.storeHashIntoDatabase(logBuilder, pNetMsg); err != nil { // internal logger - if !errors.Is(err, ErrHashAlreadyExist) { - return errors.Join(ErrStoreHashIntoDatabase, err) + if errors.Is(err, ErrHashAlreadyExist) { + return nil } - // hash already exist in database - return nil + return errors.Join(ErrStoreHashIntoDatabase, err) } // try decrypt consumed message @@ -400,7 +399,7 @@ func (p *sNode) produceMessage( WithPubKey(p.fQBProcessor.GetClient().GetPrivKey().GetPubKey()) // try push hash into database - if err := p.storeHashIntoDatabase(logBuilder, pNetMsg.GetHash()); err != nil { + if err := p.storeHashIntoDatabase(logBuilder, pNetMsg); err != nil { // internal logger if errors.Is(err, ErrHashAlreadyExist) { return false, nil @@ -420,9 +419,10 @@ func (p *sNode) produceMessage( return true, nil } -func (p *sNode) storeHashIntoDatabase(pLogBuilder anon_logger.ILogBuilder, pHash []byte) error { +func (p *sNode) storeHashIntoDatabase(pLogBuilder anon_logger.ILogBuilder, pNetMsg layer1.IMessage) error { // check already received data by hash - _, err := p.fKVDatavase.Get(pHash) + hash := hashing.NewHasher(pNetMsg.GetPayload().ToBytes()).ToBytes() + _, err := p.fKVDatavase.Get(hash) if err == nil { p.fLogger.PushInfo(pLogBuilder.WithType(anon_logger.CLogInfoExist)) return ErrHashAlreadyExist @@ -432,7 +432,7 @@ func (p *sNode) storeHashIntoDatabase(pLogBuilder anon_logger.ILogBuilder, pHash return errors.Join(ErrGetHashFromDB, err) } // set hash to database with new address - if err := p.fKVDatavase.Set(pHash, []byte{}); err != nil { + if err := p.fKVDatavase.Set(hash, []byte{}); err != nil { p.fLogger.PushErro(pLogBuilder.WithType(anon_logger.CLogErroDatabaseSet)) return errors.Join(ErrSetHashIntoDB, err) } diff --git a/pkg/anonymity/qb/anonymity_test.go b/pkg/anonymity/qb/anonymity_test.go index 838a7f57..2512efdf 100644 --- a/pkg/anonymity/qb/anonymity_test.go +++ b/pkg/anonymity/qb/anonymity_test.go @@ -14,7 +14,6 @@ import ( "github.com/number571/go-peer/pkg/anonymity/qb/adapters" "github.com/number571/go-peer/pkg/anonymity/qb/queue" "github.com/number571/go-peer/pkg/crypto/asymmetric" - "github.com/number571/go-peer/pkg/crypto/hashing" "github.com/number571/go-peer/pkg/crypto/hybrid/client" "github.com/number571/go-peer/pkg/crypto/random" "github.com/number571/go-peer/pkg/encoding" @@ -70,7 +69,12 @@ func TestNodeSettings(t *testing.T) { _node := node.(*sNode) err := _node.storeHashIntoDatabase( anon_logger.NewLogBuilder("_"), - hashing.NewHasher([]byte{}).ToBytes(), + layer1.NewMessage( + layer1.NewConstructSettings(&layer1.SConstructSettings{ + FSettings: layer1.NewSettings(&layer1.SSettings{}), + }), + payload.NewPayload32(0, []byte{}), + ), ) if err == nil { t.Error("success store hash into database without correct set function") diff --git a/pkg/message/layer1/types.go b/pkg/message/layer1/types.go index 1e11e175..2267d637 100644 --- a/pkg/message/layer1/types.go +++ b/pkg/message/layer1/types.go @@ -8,7 +8,10 @@ import ( type IMessage interface { types.IConverter + // hash = HMAC(network_key, payload) GetHash() []byte + + // proof = PoW(hash) GetProof() uint64 // payload = head(32bit) || body(Nbit) diff --git a/test/result/badge_codelines.svg b/test/result/badge_codelines.svg index bff5fa1e..735ee049 100644 --- a/test/result/badge_codelines.svg +++ b/test/result/badge_codelines.svg @@ -1 +1 @@ -code lines: 12394code lines12394 \ No newline at end of file +code lines: 12401code lines12401 \ No newline at end of file diff --git a/test/result/coverage.svg b/test/result/coverage.svg index f099a669..4f48318c 100644 --- a/test/result/coverage.svg +++ b/test/result/coverage.svg @@ -20,7 +20,7 @@ - + - + - + - + crypto @@ -65,12 +65,12 @@ - + encoding @@ -78,12 +78,12 @@ - + logger @@ -91,12 +91,12 @@ - + message @@ -104,12 +104,12 @@ - + network @@ -117,12 +117,12 @@ - + payload @@ -130,12 +130,12 @@ - + state @@ -143,12 +143,12 @@ - + storage @@ -156,12 +156,12 @@ - + action.go @@ -169,13 +169,13 @@ - + - + - + - + head.go @@ -207,12 +207,12 @@ - + logger/log_builder.go @@ -220,12 +220,12 @@ - + queue @@ -233,12 +233,12 @@ - + settings.go @@ -246,12 +246,12 @@ - + asymmetric @@ -259,12 +259,12 @@ - + hashing @@ -272,12 +272,12 @@ - + hybrid/client @@ -285,18 +285,18 @@ - + - + puzzle/puzzle.go @@ -304,12 +304,12 @@ - + random/random.go @@ -317,12 +317,12 @@ - + symmetric/symmetric.go @@ -330,12 +330,12 @@ - + bytes.go @@ -343,18 +343,18 @@ - + - + hex.go @@ -362,12 +362,12 @@ - + serialize_json.go @@ -375,18 +375,18 @@ - + - + logger.go @@ -394,18 +394,18 @@ - + - + layer1 @@ -413,12 +413,12 @@ - + layer2 @@ -426,12 +426,12 @@ - + conn @@ -439,12 +439,12 @@ - + connkeeper @@ -452,12 +452,12 @@ - + network.go @@ -465,12 +465,12 @@ - + settings.go @@ -478,12 +478,12 @@ - + joiner @@ -491,12 +491,12 @@ - + payload32.go @@ -504,12 +504,12 @@ - + payload64.go @@ -517,12 +517,12 @@ - + state.go @@ -530,12 +530,12 @@ - + cache/lru.go @@ -543,12 +543,12 @@ - + database @@ -556,18 +556,18 @@ - + - + queue.go @@ -575,12 +575,12 @@ - + settings.go @@ -588,12 +588,12 @@ - + dsa.go @@ -601,12 +601,12 @@ - + kem.go @@ -614,12 +614,12 @@ - + key.go @@ -627,12 +627,12 @@ - + map_pubkeys.go @@ -640,12 +640,12 @@ - + hashing.go @@ -653,18 +653,18 @@ - + - + client.go @@ -672,12 +672,12 @@ - + message.go @@ -685,12 +685,12 @@ - + settings.go @@ -698,12 +698,12 @@ - + message.go @@ -711,12 +711,12 @@ - + conn.go @@ -724,12 +724,12 @@ - + settings.go @@ -737,12 +737,12 @@ - + connkeeper.go @@ -750,30 +750,30 @@ - + - + - + - + database.go