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 @@
-
\ No newline at end of file
+
\ 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