mirror of https://github.com/status-im/go-waku.git
fix: use sync.Pool for msgId hasher
This commit is contained in:
parent
93e8b34c1a
commit
df2cccec04
|
@ -6,6 +6,7 @@ import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"hash"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/libp2p/go-libp2p/core/host"
|
"github.com/libp2p/go-libp2p/core/host"
|
||||||
|
@ -51,9 +52,22 @@ type WakuRelay struct {
|
||||||
subscriptionsMutex sync.Mutex
|
subscriptionsMutex sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sha256Pool = sync.Pool{New: func() interface{} {
|
||||||
|
return sha256.New()
|
||||||
|
}}
|
||||||
|
|
||||||
func msgIdFn(pmsg *pubsub_pb.Message) string {
|
func msgIdFn(pmsg *pubsub_pb.Message) string {
|
||||||
hash := sha256.Sum256(pmsg.Data)
|
h, ok := sha256Pool.Get().(hash.Hash)
|
||||||
return string(hash[:])
|
if !ok {
|
||||||
|
h = sha256.New()
|
||||||
|
}
|
||||||
|
defer sha256Pool.Put(h)
|
||||||
|
h.Reset()
|
||||||
|
|
||||||
|
var result [32]byte
|
||||||
|
h.Write(pmsg.Data)
|
||||||
|
h.Sum(result[:0])
|
||||||
|
return string(result[:])
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewWakuRelay returns a new instance of a WakuRelay struct
|
// NewWakuRelay returns a new instance of a WakuRelay struct
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
pubsub_pb "github.com/libp2p/go-libp2p-pubsub/pb"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"github.com/waku-org/go-waku/tests"
|
"github.com/waku-org/go-waku/tests"
|
||||||
"github.com/waku-org/go-waku/waku/v2/protocol/pb"
|
"github.com/waku-org/go-waku/waku/v2/protocol/pb"
|
||||||
|
@ -53,3 +54,17 @@ func TestWakuRelay(t *testing.T) {
|
||||||
|
|
||||||
<-ctx.Done()
|
<-ctx.Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMsgID(t *testing.T) {
|
||||||
|
expectedMsgIdBytes := []byte{208, 214, 63, 55, 144, 6, 206, 39, 40, 251, 138, 74, 66, 168, 43, 32, 91, 94, 149, 122, 237, 198, 149, 87, 232, 156, 197, 34, 53, 131, 78, 112}
|
||||||
|
|
||||||
|
topic := "abcde"
|
||||||
|
msg := &pubsub_pb.Message{
|
||||||
|
Data: []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
|
||||||
|
Topic: &topic,
|
||||||
|
}
|
||||||
|
|
||||||
|
msgId := msgIdFn(msg)
|
||||||
|
|
||||||
|
require.Equal(t, expectedMsgIdBytes, []byte(msgId))
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue