diff --git a/go.mod b/go.mod index afa2906d340690bd313143758cb9eebea0bae2a2..a2e098d1b295c97143fc9271537d5767698b47dd 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/golang/protobuf v1.3.2 // indirect github.com/google/open-location-code/go v0.0.0-20190903173953-119bc96a3a51 github.com/gorilla/websocket v1.4.1 - github.com/iotaledger/hive.go v0.0.0-20200131164002-e50853dd9172 + github.com/iotaledger/hive.go v0.0.0-20200203224255-313f831d7885 github.com/iotaledger/iota.go v1.0.0-beta.9 github.com/kr/text v0.1.0 github.com/labstack/echo v3.3.10+incompatible diff --git a/go.sum b/go.sum index ab78d117665377fc563d08c1760d5f0fe70d16f8..ff2be2016d19ed5c2b0601e999d12b0c3e678219 100644 --- a/go.sum +++ b/go.sum @@ -114,6 +114,8 @@ github.com/iotaledger/hive.go v0.0.0-20200131142821-bdca7883742d h1:3uYitVVvpt/v github.com/iotaledger/hive.go v0.0.0-20200131142821-bdca7883742d/go.mod h1:wj3bFHlcX0NiEOWu5+WOg/MI/5N7PKCFnyaziaylB64= github.com/iotaledger/hive.go v0.0.0-20200131164002-e50853dd9172 h1:QuckesiAtCzfxkxndNaerpeW0AKmxciZtApyjNwe7s4= github.com/iotaledger/hive.go v0.0.0-20200131164002-e50853dd9172/go.mod h1:wj3bFHlcX0NiEOWu5+WOg/MI/5N7PKCFnyaziaylB64= +github.com/iotaledger/hive.go v0.0.0-20200203224255-313f831d7885 h1:MAD62T49q1AnoybapTCnlqIFfFv2fs0GmKgn7IcR+oA= +github.com/iotaledger/hive.go v0.0.0-20200203224255-313f831d7885/go.mod h1:wj3bFHlcX0NiEOWu5+WOg/MI/5N7PKCFnyaziaylB64= github.com/iotaledger/iota.go v1.0.0-beta.9 h1:c654s9pkdhMBkABUvWg+6k91MEBbdtmZXP1xDfQpajg= github.com/iotaledger/iota.go v1.0.0-beta.9/go.mod h1:F6WBmYd98mVjAmmPVYhnxg8NNIWCjjH8VWT9qvv3Rc8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= diff --git a/packages/binary/bytesfilter/bytes_filter.go b/packages/binary/bytesfilter/bytes_filter.go deleted file mode 100644 index e434eef8d58ddd0f7746876ea4ca32c1e1a38962..0000000000000000000000000000000000000000 --- a/packages/binary/bytesfilter/bytes_filter.go +++ /dev/null @@ -1,58 +0,0 @@ -package bytesfilter - -import ( - "sync" - - "github.com/iotaledger/hive.go/typeutils" - - "github.com/iotaledger/goshimmer/packages/binary/types" -) - -type BytesFilter struct { - byteArrays [][]byte - bytesByKey map[string]types.Empty - size int - mutex sync.RWMutex -} - -func New(size int) *BytesFilter { - return &BytesFilter{ - byteArrays: make([][]byte, 0, size), - bytesByKey: make(map[string]types.Empty, size), - size: size, - } -} - -func (bytesFilter *BytesFilter) Add(bytes []byte) bool { - key := typeutils.BytesToString(bytes) - - bytesFilter.mutex.Lock() - - if _, exists := bytesFilter.bytesByKey[key]; !exists { - if len(bytesFilter.byteArrays) == bytesFilter.size { - delete(bytesFilter.bytesByKey, typeutils.BytesToString(bytesFilter.byteArrays[0])) - - bytesFilter.byteArrays = append(bytesFilter.byteArrays[1:], bytes) - } else { - bytesFilter.byteArrays = append(bytesFilter.byteArrays, bytes) - } - - bytesFilter.bytesByKey[key] = types.Void - - bytesFilter.mutex.Unlock() - - return true - } else { - bytesFilter.mutex.Unlock() - - return false - } -} - -func (bytesFilter *BytesFilter) Contains(byteArray []byte) (exists bool) { - bytesFilter.mutex.RLock() - _, exists = bytesFilter.bytesByKey[typeutils.BytesToString(byteArray)] - bytesFilter.mutex.RUnlock() - - return -} diff --git a/packages/binary/bytesfilter/bytes_filter_test.go b/packages/binary/bytesfilter/bytes_filter_test.go deleted file mode 100644 index 1b928ffeb32647839fd30aae4e47451c534e2f0c..0000000000000000000000000000000000000000 --- a/packages/binary/bytesfilter/bytes_filter_test.go +++ /dev/null @@ -1,47 +0,0 @@ -package bytesfilter - -import ( - "testing" -) - -func BenchmarkAdd(b *testing.B) { - filter, bytesFilter := setupTest(15000, 1604) - - b.ResetTimer() - - for i := 0; i < b.N; i++ { - filter.Add(bytesFilter) - } -} - -func BenchmarkContains(b *testing.B) { - filter, bytesFilter := setupTest(15000, 1604) - - b.ResetTimer() - - for i := 0; i < b.N; i++ { - filter.Contains(bytesFilter) - } -} - -func setupTest(filterSize int, byteArraySize int) (*BytesFilter, []byte) { - filter := New(filterSize) - - for j := 0; j < filterSize; j++ { - byteArray := make([]byte, byteArraySize) - - for i := 0; i < len(byteArray); i++ { - byteArray[(i+j)%byteArraySize] = byte((i + j) % 128) - } - - filter.Add(byteArray) - } - - byteArray := make([]byte, byteArraySize) - - for i := 0; i < len(byteArray); i++ { - byteArray[i] = byte(i % 128) - } - - return filter, byteArray -} diff --git a/packages/binary/transactionparser/builtinfilters/recently_seen_bytes_filter.go b/packages/binary/transactionparser/builtinfilters/recently_seen_bytes_filter.go index 1e8f93c033023e4570000189874f8a6a9fe34dcc..c0a6002f0cdadf0290cbab19057bba3f6c3536d4 100644 --- a/packages/binary/transactionparser/builtinfilters/recently_seen_bytes_filter.go +++ b/packages/binary/transactionparser/builtinfilters/recently_seen_bytes_filter.go @@ -4,8 +4,7 @@ import ( "sync" "github.com/iotaledger/hive.go/async" - - "github.com/iotaledger/goshimmer/packages/binary/bytesfilter" + "github.com/iotaledger/hive.go/bytesfilter" ) type RecentlySeenBytesFilter struct { diff --git a/packages/binary/transactionparser/builtinfilters/transaction_signature_filter.go b/packages/binary/transactionparser/builtinfilters/transaction_signature_filter.go index b3ae899952afe986ec0579fc69c5673b2b1edd5d..9160d821cfa2ff6c1d1946ca34953010f8ddf38b 100644 --- a/packages/binary/transactionparser/builtinfilters/transaction_signature_filter.go +++ b/packages/binary/transactionparser/builtinfilters/transaction_signature_filter.go @@ -3,8 +3,9 @@ package builtinfilters import ( "sync" - "github.com/iotaledger/goshimmer/packages/binary/tangle/model/transaction" "github.com/iotaledger/hive.go/async" + + "github.com/iotaledger/goshimmer/packages/binary/tangle/model/transaction" ) type TransactionSignatureFilter struct {