From 73c686ef6ca0a35b212142fc5f5d582fa2976c30 Mon Sep 17 00:00:00 2001 From: number571 Date: Tue, 21 Mar 2023 10:54:05 +0700 Subject: [PATCH] update --- README.md | 2 +- pkg/client/client.go | 80 +-- pkg/client/message/message.go | 56 +- pkg/client/message/params.go | 6 +- pkg/client/queue/queue.go | 106 +-- pkg/client/queue/settings.go | 36 +- pkg/client/settings.go | 26 +- pkg/crypto/asymmetric/asymmetric.go | 127 ++-- pkg/crypto/asymmetric/list_pubkeys.go | 32 +- pkg/crypto/entropy/entropy.go | 17 +- pkg/crypto/hashing/hashing.go | 16 +- pkg/crypto/hashing/hmac.go | 18 +- pkg/crypto/puzzle/puzzle.go | 14 +- pkg/crypto/random/random.go | 14 +- pkg/crypto/symmetric/symmetric.go | 36 +- pkg/crypto/types.go | 4 +- pkg/encoding/bytes.go | 8 +- pkg/encoding/hex.go | 8 +- pkg/encoding/serialize.go | 8 +- pkg/filesystem/file.go | 16 +- pkg/logger/logger.go | 32 +- pkg/logger/settings.go | 24 +- pkg/network/anonymity/anonymity.go | 242 +++---- pkg/network/anonymity/head.go | 20 +- pkg/network/anonymity/logger/logger.go | 22 +- pkg/network/anonymity/payload.go | 4 +- pkg/network/anonymity/settings.go | 42 +- pkg/network/anonymity/wrapper.go | 22 +- pkg/network/conn/conn.go | 58 +- pkg/network/conn/settings.go | 36 +- pkg/network/conn_keeper/conn_keeper.go | 63 +- pkg/network/conn_keeper/settings.go | 26 +- pkg/network/message/message.go | 32 +- pkg/network/network.go | 168 ++--- pkg/network/settings.go | 46 +- pkg/payload/payload.go | 24 +- pkg/storage/crypto.go | 76 +- pkg/storage/database/leveldb.go | 128 ++-- pkg/storage/database/settings.go | 42 +- pkg/storage/memory.go | 44 +- pkg/types/closer.go | 4 +- pkg/types/stopper.go | 4 +- pkg/wrapper/wrapper.go | 18 +- test/result/coverage.out | 954 ++++++++++++------------- test/result/result.out | 116 +-- 45 files changed, 1442 insertions(+), 1435 deletions(-) diff --git a/README.md b/README.md index f91e047f..bc4c153f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ The `go-peer` library contains a large number of functions necessary to ensure t 1. Append comments for functions/variables/constants/etc (doc) 2. Append benchmarks 3. Write tests for coverage > 70% -4. Arguments with prefix 'a' +4. Arguments with prefix 'p' 5. Develop union_blockchain 6. Rename functions in crypto package (Get,Set,...) diff --git a/pkg/client/client.go b/pkg/client/client.go index fdaef6a4..093a7ec9 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -27,10 +27,10 @@ type sClient struct { // Create client by private key as identification. // Handle function is used when the network exists. -func NewClient(sett ISettings, priv asymmetric.IPrivKey) IClient { +func NewClient(pSett ISettings, pPrivKey asymmetric.IPrivKey) IClient { client := &sClient{ - fSettings: sett, - fPrivKey: priv, + fSettings: pSett, + fPrivKey: pPrivKey, } msg := client.encryptWithParams( client.GetPubKey(), @@ -46,30 +46,30 @@ func NewClient(sett ISettings, priv asymmetric.IPrivKey) IClient { } // Get public key from client object. -func (client *sClient) GetPubKey() asymmetric.IPubKey { - return client.GetPrivKey().GetPubKey() +func (p *sClient) GetPubKey() asymmetric.IPubKey { + return p.GetPrivKey().GetPubKey() } // Get private key from client object. -func (client *sClient) GetPrivKey() asymmetric.IPrivKey { - return client.fPrivKey +func (p *sClient) GetPrivKey() asymmetric.IPrivKey { + return p.fPrivKey } // Get settings from client object. -func (client *sClient) GetSettings() ISettings { - return client.fSettings +func (p *sClient) GetSettings() ISettings { + return p.fSettings } // Encrypt message with public key of receiver. // The message can be decrypted only if private key is known. -func (client *sClient) EncryptPayload(receiver asymmetric.IPubKey, pld payload.IPayload) (message.IMessage, error) { - if receiver.GetSize() != client.GetPubKey().GetSize() { +func (p *sClient) EncryptPayload(pRecv asymmetric.IPubKey, pPld payload.IPayload) (message.IMessage, error) { + if pRecv.GetSize() != p.GetPubKey().GetSize() { return nil, fmt.Errorf("size of public keys sender and receiver not equal") } var ( - maxMsgSize = client.GetSettings().GetMessageSize() >> 1 // limit of bytes without hex - resultSize = uint64(client.fVoidMsgSize) + uint64(len(pld.ToBytes())) + maxMsgSize = p.GetSettings().GetMessageSize() >> 1 // limit of bytes without hex + resultSize = uint64(p.fVoidMsgSize) + uint64(len(pPld.ToBytes())) ) if resultSize > maxMsgSize { @@ -80,28 +80,28 @@ func (client *sClient) EncryptPayload(receiver asymmetric.IPubKey, pld payload.I ) } - return client.encryptWithParams( - receiver, - pld, - client.GetSettings().GetWorkSize(), + return p.encryptWithParams( + pRecv, + pPld, + p.GetSettings().GetWorkSize(), maxMsgSize-resultSize, ), nil } -func (client *sClient) encryptWithParams(receiver asymmetric.IPubKey, pld payload.IPayload, workSize, addPadd uint64) message.IMessage { +func (p *sClient) encryptWithParams(pRecv asymmetric.IPubKey, pPld payload.IPayload, pWorkSize, pPadd uint64) message.IMessage { var ( rand = random.NewStdPRNG() salt = rand.GetBytes(symmetric.CAESKeySize) session = rand.GetBytes(symmetric.CAESKeySize) ) - payloadBytes := pld.ToBytes() + payloadBytes := pPld.ToBytes() doublePayload := payload.NewPayload( uint64(len(payloadBytes)), bytes.Join( [][]byte{ payloadBytes, - rand.GetBytes(addPadd), + rand.GetBytes(pPadd), }, []byte{}, ), @@ -109,25 +109,25 @@ func (client *sClient) encryptWithParams(receiver asymmetric.IPubKey, pld payloa hash := hashing.NewHMACSHA256Hasher(salt, bytes.Join( [][]byte{ - client.GetPubKey().GetAddress().ToBytes(), - receiver.GetAddress().ToBytes(), + p.GetPubKey().GetAddress().ToBytes(), + pRecv.GetAddress().ToBytes(), doublePayload.ToBytes(), }, []byte{}, )).ToBytes() cipher := symmetric.NewAESCipher(session) - bProof := encoding.Uint64ToBytes(puzzle.NewPoWPuzzle(workSize).ProofBytes(hash)) + bProof := encoding.Uint64ToBytes(puzzle.NewPoWPuzzle(pWorkSize).ProofBytes(hash)) return &message.SMessage{ FHead: message.SHeadMessage{ - FSender: encoding.HexEncode(cipher.EncryptBytes(client.GetPubKey().ToBytes())), - FSession: encoding.HexEncode(receiver.EncryptBytes(session)), + FSender: encoding.HexEncode(cipher.EncryptBytes(p.GetPubKey().ToBytes())), + FSession: encoding.HexEncode(pRecv.EncryptBytes(session)), FSalt: encoding.HexEncode(cipher.EncryptBytes(salt)), }, FBody: message.SBodyMessage{ FPayload: encoding.HexEncode(cipher.EncryptBytes(doublePayload.ToBytes())), FHash: encoding.HexEncode(hash), - FSign: encoding.HexEncode(cipher.EncryptBytes(client.GetPrivKey().SignBytes(hash))), + FSign: encoding.HexEncode(cipher.EncryptBytes(p.GetPrivKey().SignBytes(hash))), FProof: encoding.HexEncode(bProof[:]), }, } @@ -135,32 +135,32 @@ func (client *sClient) encryptWithParams(receiver asymmetric.IPubKey, pld payloa // Decrypt message with private key of receiver. // No one else except the sender will be able to decrypt the message. -func (client *sClient) DecryptMessage(msg message.IMessage) (asymmetric.IPubKey, payload.IPayload, error) { - if msg == nil { +func (p *sClient) DecryptMessage(pMsg message.IMessage) (asymmetric.IPubKey, payload.IPayload, error) { + if pMsg == nil { return nil, nil, fmt.Errorf("msg is nil") } // Initial check. - if len(msg.GetBody().GetHash()) != hashing.CSHA256Size { + if len(pMsg.GetBody().GetHash()) != hashing.CSHA256Size { return nil, nil, fmt.Errorf("msg hash != sha256 size") } // Proof of work. Prevent spam. - diff := client.GetSettings().GetWorkSize() + diff := p.GetSettings().GetWorkSize() puzzle := puzzle.NewPoWPuzzle(diff) - if !puzzle.VerifyBytes(msg.GetBody().GetHash(), msg.GetBody().GetProof()) { + if !puzzle.VerifyBytes(pMsg.GetBody().GetHash(), pMsg.GetBody().GetProof()) { return nil, nil, fmt.Errorf("invalid proof of msg") } // Decrypt session key by private key of receiver. - session := client.GetPrivKey().DecryptBytes(msg.GetHead().GetSession()) + session := p.GetPrivKey().DecryptBytes(pMsg.GetHead().GetSession()) if session == nil { return nil, nil, fmt.Errorf("failed decrypt session key") } // Decrypt public key of sender by decrypted session key. cipher := symmetric.NewAESCipher(session) - publicBytes := cipher.DecryptBytes(msg.GetHead().GetSender()) + publicBytes := cipher.DecryptBytes(pMsg.GetHead().GetSender()) if publicBytes == nil { return nil, nil, fmt.Errorf("failed decrypt public key") } @@ -170,12 +170,12 @@ func (client *sClient) DecryptMessage(msg message.IMessage) (asymmetric.IPubKey, if pubKey == nil { return nil, nil, fmt.Errorf("failed load public key") } - if pubKey.GetSize() != client.GetPubKey().GetSize() { + if pubKey.GetSize() != p.GetPubKey().GetSize() { return nil, nil, fmt.Errorf("invalid public key size") } // Decrypt main data of message by session key. - doublePayloadBytes := cipher.DecryptBytes(msg.GetBody().GetPayload().ToBytes()) + doublePayloadBytes := cipher.DecryptBytes(pMsg.GetBody().GetPayload().ToBytes()) if doublePayloadBytes == nil { return nil, nil, fmt.Errorf("failed decrypt double payload") } @@ -185,7 +185,7 @@ func (client *sClient) DecryptMessage(msg message.IMessage) (asymmetric.IPubKey, } // Decrypt salt. - salt := cipher.DecryptBytes(msg.GetHead().GetSalt()) + salt := cipher.DecryptBytes(pMsg.GetHead().GetSalt()) if salt == nil { return nil, nil, fmt.Errorf("failed decrypt salt") } @@ -194,22 +194,22 @@ func (client *sClient) DecryptMessage(msg message.IMessage) (asymmetric.IPubKey, check := hashing.NewHMACSHA256Hasher(salt, bytes.Join( [][]byte{ pubKey.GetAddress().ToBytes(), - client.GetPubKey().GetAddress().ToBytes(), + p.GetPubKey().GetAddress().ToBytes(), doublePayload.ToBytes(), }, []byte{}, )).ToBytes() - if !bytes.Equal(check, msg.GetBody().GetHash()) { + if !bytes.Equal(check, pMsg.GetBody().GetHash()) { return nil, nil, fmt.Errorf("invalid msg hash") } // Decrypt sign of message and verify this // by public key of sender and hash of message. - sign := cipher.DecryptBytes(msg.GetBody().GetSign()) + sign := cipher.DecryptBytes(pMsg.GetBody().GetSign()) if sign == nil { return nil, nil, fmt.Errorf("failed decrypt sign") } - if !pubKey.VerifyBytes(msg.GetBody().GetHash(), sign) { + if !pubKey.VerifyBytes(pMsg.GetBody().GetHash(), sign) { return nil, nil, fmt.Errorf("invalid msg sign") } diff --git a/pkg/client/message/message.go b/pkg/client/message/message.go index f1faf4c3..246efb15 100644 --- a/pkg/client/message/message.go +++ b/pkg/client/message/message.go @@ -35,74 +35,74 @@ type SBodyMessage struct { } // Message can be created only with client module. -func LoadMessage(bmsg []byte, params IParams) IMessage { +func LoadMessage(pMsg []byte, pParams IParams) IMessage { msg := new(SMessage) - if err := json.Unmarshal(bmsg, msg); err != nil { + if err := json.Unmarshal(pMsg, msg); err != nil { return nil } - if !msg.IsValid(params) { + if !msg.IsValid(pParams) { return nil } return msg } -func (msg *SMessage) GetHead() IHead { - return msg.FHead +func (p *SMessage) GetHead() IHead { + return p.FHead } -func (msg *SMessage) GetBody() IBody { - return msg.FBody +func (p *SMessage) GetBody() IBody { + return p.FBody } -func (msg *SMessage) ToBytes() []byte { - jsonData, err := json.Marshal(msg) +func (p *SMessage) ToBytes() []byte { + jsonData, err := json.Marshal(p) if err != nil { return nil } return jsonData } -func (msg *SMessage) IsValid(params IParams) bool { - if uint64(len(msg.ToBytes())) > params.GetMessageSize() { +func (p *SMessage) IsValid(pParams IParams) bool { + if uint64(len(p.ToBytes())) > pParams.GetMessageSize() { return false } - if len(msg.GetBody().GetHash()) != hashing.CSHA256Size { + if len(p.GetBody().GetHash()) != hashing.CSHA256Size { return false } - puzzle := puzzle.NewPoWPuzzle(params.GetWorkSize()) - return puzzle.VerifyBytes(msg.GetBody().GetHash(), msg.GetBody().GetProof()) + puzzle := puzzle.NewPoWPuzzle(pParams.GetWorkSize()) + return puzzle.VerifyBytes(p.GetBody().GetHash(), p.GetBody().GetProof()) } // IHead -func (head SHeadMessage) GetSender() []byte { - return encoding.HexDecode(head.FSender) +func (p SHeadMessage) GetSender() []byte { + return encoding.HexDecode(p.FSender) } -func (head SHeadMessage) GetSession() []byte { - return encoding.HexDecode(head.FSession) +func (p SHeadMessage) GetSession() []byte { + return encoding.HexDecode(p.FSession) } -func (head SHeadMessage) GetSalt() []byte { - return encoding.HexDecode(head.FSalt) +func (p SHeadMessage) GetSalt() []byte { + return encoding.HexDecode(p.FSalt) } // IBody -func (body SBodyMessage) GetPayload() payload.IPayload { - return payload.LoadPayload(encoding.HexDecode(body.FPayload)) +func (p SBodyMessage) GetPayload() payload.IPayload { + return payload.LoadPayload(encoding.HexDecode(p.FPayload)) } -func (body SBodyMessage) GetHash() []byte { - return encoding.HexDecode(body.FHash) +func (p SBodyMessage) GetHash() []byte { + return encoding.HexDecode(p.FHash) } -func (body SBodyMessage) GetSign() []byte { - return encoding.HexDecode(body.FSign) +func (p SBodyMessage) GetSign() []byte { + return encoding.HexDecode(p.FSign) } -func (body SBodyMessage) GetProof() uint64 { - bProof := encoding.HexDecode(body.FProof) +func (p SBodyMessage) GetProof() uint64 { + bProof := encoding.HexDecode(p.FProof) if len(bProof) != encoding.CSizeUint64 { return 0 } diff --git a/pkg/client/message/params.go b/pkg/client/message/params.go index 79554093..20278535 100644 --- a/pkg/client/message/params.go +++ b/pkg/client/message/params.go @@ -9,10 +9,10 @@ type sParams struct { fWorkSize uint64 } -func NewParams(msgSize, workSize uint64) IParams { +func NewParams(pMsgSize, pWorkSize uint64) IParams { return &sParams{ - fMessageSize: msgSize, - fWorkSize: workSize, + fMessageSize: pMsgSize, + fWorkSize: pWorkSize, } } diff --git a/pkg/client/queue/queue.go b/pkg/client/queue/queue.go index 916258ab..9f42099b 100644 --- a/pkg/client/queue/queue.go +++ b/pkg/client/queue/queue.go @@ -28,57 +28,57 @@ type sPull struct { fQueue chan message.IMessage } -func NewMessageQueue(sett ISettings, client client.IClient) IMessageQueue { +func NewMessageQueue(pSett ISettings, pClient client.IClient) IMessageQueue { return &sMessageQueue{ - fSettings: sett, - fClient: client, - fQueue: make(chan message.IMessage, sett.GetCapacity()), + fSettings: pSett, + fClient: pClient, + fQueue: make(chan message.IMessage, pSett.GetCapacity()), fMsgPull: sPull{ - fQueue: make(chan message.IMessage, sett.GetPullCapacity()), + fQueue: make(chan message.IMessage, pSett.GetPullCapacity()), }, } } -func (q *sMessageQueue) GetSettings() ISettings { - return q.fSettings +func (p *sMessageQueue) GetSettings() ISettings { + return p.fSettings } -func (q *sMessageQueue) UpdateClient(c client.IClient) { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) UpdateClient(pClient client.IClient) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - q.fClient = c - q.fQueue = make(chan message.IMessage, q.GetSettings().GetCapacity()) + p.fClient = pClient + p.fQueue = make(chan message.IMessage, p.GetSettings().GetCapacity()) } -func (q *sMessageQueue) GetClient() client.IClient { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) GetClient() client.IClient { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return q.fClient + return p.fClient } -func (q *sMessageQueue) Run() error { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) Run() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if q.fIsRun { + if p.fIsRun { return errors.New("queue already running") } - q.fIsRun = true + p.fIsRun = true - q.fMsgPull.fSignal = make(chan struct{}) + p.fMsgPull.fSignal = make(chan struct{}) go func() { for { select { - case <-q.readSignal(): + case <-p.readSignal(): return - case <-time.After(q.GetSettings().GetDuration() / 2): - currLen := len(q.fMsgPull.fQueue) - if uint64(currLen) >= q.GetSettings().GetPullCapacity() { + case <-time.After(p.GetSettings().GetDuration() / 2): + currLen := len(p.fMsgPull.fQueue) + if uint64(currLen) >= p.GetSettings().GetPullCapacity() { continue } - q.fMsgPull.fQueue <- q.newPseudoMessage() + p.fMsgPull.fQueue <- p.newPseudoMessage() } } }() @@ -86,45 +86,45 @@ func (q *sMessageQueue) Run() error { return nil } -func (q *sMessageQueue) Stop() error { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) Stop() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if !q.fIsRun { + if !p.fIsRun { return errors.New("queue already closed or not started") } - q.fIsRun = false + p.fIsRun = false - close(q.fMsgPull.fSignal) + close(p.fMsgPull.fSignal) return nil } -func (q *sMessageQueue) EnqueueMessage(msg message.IMessage) error { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) EnqueueMessage(pMsg message.IMessage) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if uint64(len(q.fQueue)) >= q.GetSettings().GetCapacity() { + if uint64(len(p.fQueue)) >= p.GetSettings().GetCapacity() { return errors.New("queue already full, need wait and retry") } - q.fQueue <- msg + p.fQueue <- pMsg return nil } -func (q *sMessageQueue) DequeueMessage() <-chan message.IMessage { +func (p *sMessageQueue) DequeueMessage() <-chan message.IMessage { closed := make(chan bool) go func() { select { - case <-q.readSignal(): + case <-p.readSignal(): closed <- true return - case <-time.After(q.GetSettings().GetDuration()): - q.fMutex.Lock() - defer q.fMutex.Unlock() + case <-time.After(p.GetSettings().GetDuration()): + p.fMutex.Lock() + defer p.fMutex.Unlock() - if len(q.fQueue) == 0 { - q.fQueue <- (<-q.fMsgPull.fQueue) + if len(p.fQueue) == 0 { + p.fQueue <- (<-p.fMsgPull.fQueue) } closed <- false } @@ -136,12 +136,12 @@ func (q *sMessageQueue) DequeueMessage() <-chan message.IMessage { return queue } - return q.fQueue + return p.fQueue } -func (q *sMessageQueue) newPseudoMessage() message.IMessage { - msg, err := q.GetClient().EncryptPayload( - q.GetClient().GetPubKey(), +func (p *sMessageQueue) newPseudoMessage() message.IMessage { + msg, err := p.GetClient().EncryptPayload( + p.GetClient().GetPubKey(), payload.NewPayload(0, []byte{1}), ) if err != nil { @@ -150,9 +150,9 @@ func (q *sMessageQueue) newPseudoMessage() message.IMessage { return msg } -func (q *sMessageQueue) readSignal() <-chan struct{} { - q.fMutex.Lock() - defer q.fMutex.Unlock() +func (p *sMessageQueue) readSignal() <-chan struct{} { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return q.fMsgPull.fSignal + return p.fMsgPull.fSignal } diff --git a/pkg/client/queue/settings.go b/pkg/client/queue/settings.go index 8e08e19f..f66215a8 100644 --- a/pkg/client/queue/settings.go +++ b/pkg/client/queue/settings.go @@ -21,35 +21,35 @@ type sSettings struct { FDuration time.Duration } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FCapacity: sett.FCapacity, - FPullCapacity: sett.FPullCapacity, - FDuration: sett.FDuration, + FCapacity: pSett.FCapacity, + FPullCapacity: pSett.FPullCapacity, + FDuration: pSett.FDuration, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { - if s.FCapacity == 0 { - s.FCapacity = cCapacity +func (p *sSettings) useDefaultValues() ISettings { + if p.FCapacity == 0 { + p.FCapacity = cCapacity } - if s.FPullCapacity == 0 { - s.FPullCapacity = cPullCapacity + if p.FPullCapacity == 0 { + p.FPullCapacity = cPullCapacity } - if s.FDuration == 0 { - s.FDuration = cDuration + if p.FDuration == 0 { + p.FDuration = cDuration } - return s + return p } -func (s *sSettings) GetCapacity() uint64 { - return s.FCapacity +func (p *sSettings) GetCapacity() uint64 { + return p.FCapacity } -func (s *sSettings) GetPullCapacity() uint64 { - return s.FPullCapacity +func (p *sSettings) GetPullCapacity() uint64 { + return p.FPullCapacity } -func (s *sSettings) GetDuration() time.Duration { - return s.FDuration +func (p *sSettings) GetDuration() time.Duration { + return p.FDuration } diff --git a/pkg/client/settings.go b/pkg/client/settings.go index 5e91ac6b..93afd4b4 100644 --- a/pkg/client/settings.go +++ b/pkg/client/settings.go @@ -15,27 +15,27 @@ type sSettings struct { FMessageSize uint64 } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FWorkSize: sett.FWorkSize, - FMessageSize: sett.FMessageSize, + FWorkSize: pSett.FWorkSize, + FMessageSize: pSett.FMessageSize, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { - if s.FWorkSize == 0 { - s.FWorkSize = cWorkSize +func (p *sSettings) useDefaultValues() ISettings { + if p.FWorkSize == 0 { + p.FWorkSize = cWorkSize } - if s.FMessageSize == 0 { - s.FMessageSize = cMessageSize + if p.FMessageSize == 0 { + p.FMessageSize = cMessageSize } - return s + return p } -func (s *sSettings) GetWorkSize() uint64 { - return s.FWorkSize +func (p *sSettings) GetWorkSize() uint64 { + return p.FWorkSize } -func (s *sSettings) GetMessageSize() uint64 { - return s.FMessageSize +func (p *sSettings) GetMessageSize() uint64 { + return p.FMessageSize } diff --git a/pkg/crypto/asymmetric/asymmetric.go b/pkg/crypto/asymmetric/asymmetric.go index a09033e9..e22dffdd 100644 --- a/pkg/crypto/asymmetric/asymmetric.go +++ b/pkg/crypto/asymmetric/asymmetric.go @@ -39,24 +39,24 @@ type sRSAPrivKey struct { fPrivKey *rsa.PrivateKey } -func newPrivKey(privKey *rsa.PrivateKey) IPrivKey { +func newPrivKey(pPrivKey *rsa.PrivateKey) IPrivKey { return &sRSAPrivKey{ - fPubKey: newPubKey(&privKey.PublicKey), - fPrivKey: privKey, + fPubKey: newPubKey(&pPrivKey.PublicKey), + fPrivKey: pPrivKey, } } // Create private key by number of bits. -func NewRSAPrivKey(bits uint64) IPrivKey { - privKey, err := rsa.GenerateKey(rand.Reader, int(bits)) +func NewRSAPrivKey(pBits uint64) IPrivKey { + privKey, err := rsa.GenerateKey(rand.Reader, int(pBits)) if err != nil { return nil } return newPrivKey(privKey) } -func LoadRSAPrivKey(typePrivKey interface{}) IPrivKey { - switch x := typePrivKey.(type) { +func LoadRSAPrivKey(pPrivKey interface{}) IPrivKey { + switch x := pPrivKey.(type) { case []byte: privKey := bytesToPrivateKey(x) if privKey == nil { @@ -90,37 +90,37 @@ func LoadRSAPrivKey(typePrivKey interface{}) IPrivKey { } } -func (key *sRSAPrivKey) DecryptBytes(msg []byte) []byte { - return decryptRSA(key.fPrivKey, msg) +func (p *sRSAPrivKey) DecryptBytes(pMsg []byte) []byte { + return decryptRSA(p.fPrivKey, pMsg) } -func (key *sRSAPrivKey) SignBytes(msg []byte) []byte { - return sign(key.fPrivKey, hashing.NewSHA256Hasher(msg).ToBytes()) +func (p *sRSAPrivKey) SignBytes(pMsg []byte) []byte { + return sign(p.fPrivKey, hashing.NewSHA256Hasher(pMsg).ToBytes()) } -func (key *sRSAPrivKey) GetPubKey() IPubKey { - return key.fPubKey +func (p *sRSAPrivKey) GetPubKey() IPubKey { + return p.fPubKey } -func (key *sRSAPrivKey) ToBytes() []byte { - return privateKeyToBytes(key.fPrivKey) +func (p *sRSAPrivKey) ToBytes() []byte { + return privateKeyToBytes(p.fPrivKey) } -func (key *sRSAPrivKey) ToString() string { - return fmt.Sprintf(cPrivKeyPrefixTemplate+"%X"+cKeySuffix, key.GetType(), key.ToBytes()) +func (p *sRSAPrivKey) ToString() string { + return fmt.Sprintf(cPrivKeyPrefixTemplate+"%X"+cKeySuffix, p.GetType(), p.ToBytes()) } -func (key *sRSAPrivKey) GetType() string { +func (p *sRSAPrivKey) GetType() string { return CRSAKeyType } -func (key *sRSAPrivKey) GetSize() uint64 { - return key.GetPubKey().GetSize() +func (p *sRSAPrivKey) GetSize() uint64 { + return p.GetPubKey().GetSize() } // Used PKCS1. -func bytesToPrivateKey(privData []byte) *rsa.PrivateKey { - priv, err := x509.ParsePKCS1PrivateKey(privData) +func bytesToPrivateKey(pPrivData []byte) *rsa.PrivateKey { + priv, err := x509.ParsePKCS1PrivateKey(pPrivData) if err != nil { return nil } @@ -128,8 +128,8 @@ func bytesToPrivateKey(privData []byte) *rsa.PrivateKey { } // Used RSA(OAEP). -func decryptRSA(priv *rsa.PrivateKey, data []byte) []byte { - data, err := rsa.DecryptOAEP(sha256.New(), rand.Reader, priv, data, nil) +func decryptRSA(pPrivKey *rsa.PrivateKey, pData []byte) []byte { + data, err := rsa.DecryptOAEP(sha256.New(), rand.Reader, pPrivKey, pData, nil) if err != nil { return nil } @@ -137,12 +137,12 @@ func decryptRSA(priv *rsa.PrivateKey, data []byte) []byte { } // Used PKCS1. -func privateKeyToBytes(priv *rsa.PrivateKey) []byte { - return x509.MarshalPKCS1PrivateKey(priv) +func privateKeyToBytes(pPrivKey *rsa.PrivateKey) []byte { + return x509.MarshalPKCS1PrivateKey(pPrivKey) } -func sign(priv *rsa.PrivateKey, hash []byte) []byte { - signature, err := rsa.SignPSS(rand.Reader, priv, crypto.SHA256, hash, nil) +func sign(pPrivKey *rsa.PrivateKey, pHash []byte) []byte { + signature, err := rsa.SignPSS(rand.Reader, pPrivKey, crypto.SHA256, pHash, nil) if err != nil { return nil } @@ -158,15 +158,15 @@ type sRSAPubKey struct { fPubKey *rsa.PublicKey } -func newPubKey(pubKey *rsa.PublicKey) IPubKey { +func newPubKey(pPubKey *rsa.PublicKey) IPubKey { return &sRSAPubKey{ - fAddr: newAddress(pubKey), - fPubKey: pubKey, + fAddr: newAddress(pPubKey), + fPubKey: pPubKey, } } -func LoadRSAPubKey(pubkey interface{}) IPubKey { - switch x := pubkey.(type) { +func LoadRSAPubKey(pPubKey interface{}) IPubKey { + switch x := pPubKey.(type) { case []byte: pub := bytesToPublicKey(x) if pub == nil { @@ -200,32 +200,32 @@ func LoadRSAPubKey(pubkey interface{}) IPubKey { } } -func (key *sRSAPubKey) EncryptBytes(msg []byte) []byte { - return encryptRSA(key.fPubKey, msg) +func (p *sRSAPubKey) EncryptBytes(pMsg []byte) []byte { + return encryptRSA(p.fPubKey, pMsg) } -func (key *sRSAPubKey) GetAddress() IAddress { - return key.fAddr +func (p *sRSAPubKey) GetAddress() IAddress { + return p.fAddr } -func (key *sRSAPubKey) VerifyBytes(msg []byte, sig []byte) bool { - return verify(key.fPubKey, hashing.NewSHA256Hasher(msg).ToBytes(), sig) == nil +func (p *sRSAPubKey) VerifyBytes(pMsg []byte, pSign []byte) bool { + return verify(p.fPubKey, hashing.NewSHA256Hasher(pMsg).ToBytes(), pSign) == nil } -func (key *sRSAPubKey) ToBytes() []byte { - return publicKeyToBytes(key.fPubKey) +func (p *sRSAPubKey) ToBytes() []byte { + return publicKeyToBytes(p.fPubKey) } -func (key *sRSAPubKey) ToString() string { - return fmt.Sprintf(cPubKeyPrefixTemplate+"%X"+cKeySuffix, key.GetType(), key.ToBytes()) +func (p *sRSAPubKey) ToString() string { + return fmt.Sprintf(cPubKeyPrefixTemplate+"%X"+cKeySuffix, p.GetType(), p.ToBytes()) } -func (key *sRSAPubKey) GetType() string { +func (p *sRSAPubKey) GetType() string { return CRSAKeyType } -func (key *sRSAPubKey) GetSize() uint64 { - return uint64(key.fPubKey.N.BitLen()) +func (p *sRSAPubKey) GetSize() uint64 { + return uint64(p.fPubKey.N.BitLen()) } /* @@ -236,33 +236,33 @@ type sAddress struct { fBytes []byte } -func newAddress(pubKey *rsa.PublicKey) IAddress { +func newAddress(pPubKey *rsa.PublicKey) IAddress { return &sAddress{ fBytes: hashing.NewSHA256Hasher( - publicKeyToBytes(pubKey), + publicKeyToBytes(pPubKey), ).ToBytes(), } } -func (addr *sAddress) ToBytes() []byte { - return addr.fBytes +func (p *sAddress) ToBytes() []byte { + return p.fBytes } -func (addr *sAddress) ToString() string { - return fmt.Sprintf("Address(%s){%X}", addr.GetType(), addr.ToBytes()) +func (p *sAddress) ToString() string { + return fmt.Sprintf("Address(%s){%X}", p.GetType(), p.ToBytes()) } -func (addr *sAddress) GetType() string { +func (p *sAddress) GetType() string { return CRSAKeyType } -func (addr *sAddress) GetSize() uint64 { +func (p *sAddress) GetSize() uint64 { return hashing.CSHA256Size } // Used RSA(OAEP). -func encryptRSA(pub *rsa.PublicKey, data []byte) []byte { - data, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, pub, data, nil) +func encryptRSA(pPubKey *rsa.PublicKey, pData []byte) []byte { + data, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, pPubKey, pData, nil) if err != nil { return nil } @@ -270,8 +270,8 @@ func encryptRSA(pub *rsa.PublicKey, data []byte) []byte { } // Used PKCS1. -func bytesToPublicKey(pubData []byte) *rsa.PublicKey { - pub, err := x509.ParsePKCS1PublicKey(pubData) +func bytesToPublicKey(pPubData []byte) *rsa.PublicKey { + pub, err := x509.ParsePKCS1PublicKey(pPubData) if err != nil { return nil } @@ -279,16 +279,17 @@ func bytesToPublicKey(pubData []byte) *rsa.PublicKey { } // Used PKCS1. -func publicKeyToBytes(pub *rsa.PublicKey) []byte { - return x509.MarshalPKCS1PublicKey(pub) +func publicKeyToBytes(pPubKey *rsa.PublicKey) []byte { + return x509.MarshalPKCS1PublicKey(pPubKey) } // Used RSA(PSS). -func verify(pub *rsa.PublicKey, hash, sign []byte) error { - return rsa.VerifyPSS(pub, crypto.SHA256, hash, sign, nil) +func verify(pPubKey *rsa.PublicKey, pHash, pSign []byte) error { + return rsa.VerifyPSS(pPubKey, crypto.SHA256, pHash, pSign, nil) } -func skipSpaceChars(s string) string { +func skipSpaceChars(pS string) string { + s := pS s = strings.ReplaceAll(s, "\n", "") s = strings.ReplaceAll(s, "\t", "") s = strings.ReplaceAll(s, " ", "") diff --git a/pkg/crypto/asymmetric/list_pubkeys.go b/pkg/crypto/asymmetric/list_pubkeys.go index 78a4d65e..94ab950b 100644 --- a/pkg/crypto/asymmetric/list_pubkeys.go +++ b/pkg/crypto/asymmetric/list_pubkeys.go @@ -21,21 +21,21 @@ func NewListPubKeys() IListPubKeys { } // Check the existence of a friend in the list by the public key. -func (l *sListPubKeys) InPubKeys(pub IPubKey) bool { - l.fMutex.Lock() - defer l.fMutex.Unlock() +func (p *sListPubKeys) InPubKeys(pPubKey IPubKey) bool { + p.fMutex.Lock() + defer p.fMutex.Unlock() - _, ok := l.fMapping[pub.GetAddress().ToString()] + _, ok := p.fMapping[pPubKey.GetAddress().ToString()] return ok } // Get a list of friends public keys. -func (l *sListPubKeys) GetPubKeys() []IPubKey { - l.fMutex.Lock() - defer l.fMutex.Unlock() +func (p *sListPubKeys) GetPubKeys() []IPubKey { + p.fMutex.Lock() + defer p.fMutex.Unlock() var list []IPubKey - for _, pub := range l.fMapping { + for _, pub := range p.fMapping { list = append(list, pub) } @@ -43,17 +43,17 @@ func (l *sListPubKeys) GetPubKeys() []IPubKey { } // Add public key to list of friends. -func (l *sListPubKeys) AddPubKey(pub IPubKey) { - l.fMutex.Lock() - defer l.fMutex.Unlock() +func (p *sListPubKeys) AddPubKey(pPubKey IPubKey) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - l.fMapping[pub.GetAddress().ToString()] = pub + p.fMapping[pPubKey.GetAddress().ToString()] = pPubKey } // Delete public key from list of friends. -func (l *sListPubKeys) DelPubKey(pub IPubKey) { - l.fMutex.Lock() - defer l.fMutex.Unlock() +func (p *sListPubKeys) DelPubKey(pub IPubKey) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - delete(l.fMapping, pub.GetAddress().ToString()) + delete(p.fMapping, pub.GetAddress().ToString()) } diff --git a/pkg/crypto/entropy/entropy.go b/pkg/crypto/entropy/entropy.go index 49874d66..bd995f35 100644 --- a/pkg/crypto/entropy/entropy.go +++ b/pkg/crypto/entropy/entropy.go @@ -15,22 +15,25 @@ type sEntropyBooster struct { fBits uint64 } -func NewEntropyBooster(bits uint64, salt []byte) IEntropyBooster { +func NewEntropyBooster(pBits uint64, pSalt []byte) IEntropyBooster { return &sEntropyBooster{ - fBits: bits, - fSalt: salt, + fBits: pBits, + fSalt: pSalt, } } // Increase entropy by multiple hashing. -func (e *sEntropyBooster) BoostEntropy(data []byte) []byte { - lim := uint64(1 << e.fBits) +func (p *sEntropyBooster) BoostEntropy(pData []byte) []byte { + var ( + lim = uint64(1 << p.fBits) + data = pData + ) for i := uint64(0); i < lim; i++ { data = hashing.NewSHA256Hasher(bytes.Join( [][]byte{ - data, - e.fSalt, + pData, + p.fSalt, }, []byte{}, )).ToBytes() diff --git a/pkg/crypto/hashing/hashing.go b/pkg/crypto/hashing/hashing.go index 523d8161..95870d7c 100644 --- a/pkg/crypto/hashing/hashing.go +++ b/pkg/crypto/hashing/hashing.go @@ -18,26 +18,26 @@ type sSHA256Hasher struct { fHash []byte } -func NewSHA256Hasher(data []byte) IHasher { +func NewSHA256Hasher(pData []byte) IHasher { h := sha256.New() - h.Write(data) + h.Write(pData) return &sSHA256Hasher{ fHash: h.Sum(nil), } } -func (h *sSHA256Hasher) ToString() string { - return fmt.Sprintf("Hash(%s){%X}", h.GetType(), h.ToBytes()) +func (p *sSHA256Hasher) ToString() string { + return fmt.Sprintf("Hash(%s){%X}", p.GetType(), p.ToBytes()) } -func (h *sSHA256Hasher) ToBytes() []byte { - return h.fHash +func (p *sSHA256Hasher) ToBytes() []byte { + return p.fHash } -func (h *sSHA256Hasher) GetType() string { +func (p *sSHA256Hasher) GetType() string { return CSHA256KeyType } -func (h *sSHA256Hasher) GetSize() uint64 { +func (p *sSHA256Hasher) GetSize() uint64 { return CSHA256Size } diff --git a/pkg/crypto/hashing/hmac.go b/pkg/crypto/hashing/hmac.go index a78c8064..ef32430e 100644 --- a/pkg/crypto/hashing/hmac.go +++ b/pkg/crypto/hashing/hmac.go @@ -14,26 +14,26 @@ type sHMACSHA256Hasher struct { fHash []byte } -func NewHMACSHA256Hasher(key []byte, data []byte) IHasher { - h := hmac.New(sha256.New, key) - h.Write(data) +func NewHMACSHA256Hasher(pKey []byte, pData []byte) IHasher { + h := hmac.New(sha256.New, pKey) + h.Write(pData) return &sHMACSHA256Hasher{ fHash: h.Sum(nil), } } -func (h *sHMACSHA256Hasher) ToString() string { - return fmt.Sprintf("HMAC(%s){%X}", h.GetType(), h.ToBytes()) +func (p *sHMACSHA256Hasher) ToString() string { + return fmt.Sprintf("HMAC(%s){%X}", p.GetType(), p.ToBytes()) } -func (h *sHMACSHA256Hasher) ToBytes() []byte { - return h.fHash +func (p *sHMACSHA256Hasher) ToBytes() []byte { + return p.fHash } -func (h *sHMACSHA256Hasher) GetType() string { +func (p *sHMACSHA256Hasher) GetType() string { return CSHA256KeyType } -func (h *sHMACSHA256Hasher) GetSize() uint64 { +func (p *sHMACSHA256Hasher) GetSize() uint64 { return CSHA256Size } diff --git a/pkg/crypto/puzzle/puzzle.go b/pkg/crypto/puzzle/puzzle.go index 503a4cd6..fc44cd78 100644 --- a/pkg/crypto/puzzle/puzzle.go +++ b/pkg/crypto/puzzle/puzzle.go @@ -17,20 +17,22 @@ type sPoWPuzzle struct { fDiff uint8 } -func NewPoWPuzzle(diff uint64) IPuzzle { - return &sPoWPuzzle{uint8(diff)} +func NewPoWPuzzle(pDiff uint64) IPuzzle { + return &sPoWPuzzle{ + fDiff: uint8(pDiff), + } } // Proof of work by the method of finding the desired hash. // Hash must start with 'diff' number of zero bits. -func (puzzle *sPoWPuzzle) ProofBytes(packHash []byte) uint64 { +func (p *sPoWPuzzle) ProofBytes(packHash []byte) uint64 { var ( target = big.NewInt(1) intHash = big.NewInt(1) nonce = uint64(0) hash []byte ) - target.Lsh(target, hashSizeInBits()-uint(puzzle.fDiff)) + target.Lsh(target, hashSizeInBits()-uint(p.fDiff)) for nonce < math.MaxUint64 { bNonce := encoding.Uint64ToBytes(nonce) hash = hashing.NewSHA256Hasher(bytes.Join( @@ -50,7 +52,7 @@ func (puzzle *sPoWPuzzle) ProofBytes(packHash []byte) uint64 { } // Verifies the work of the proof of work function. -func (puzzle *sPoWPuzzle) VerifyBytes(packHash []byte, nonce uint64) bool { +func (p *sPoWPuzzle) VerifyBytes(packHash []byte, nonce uint64) bool { intHash := big.NewInt(1) target := big.NewInt(1) bNonce := encoding.Uint64ToBytes(nonce) @@ -62,7 +64,7 @@ func (puzzle *sPoWPuzzle) VerifyBytes(packHash []byte, nonce uint64) bool { []byte{}, )).ToBytes() intHash.SetBytes(hash) - target.Lsh(target, hashSizeInBits()-uint(puzzle.fDiff)) + target.Lsh(target, hashSizeInBits()-uint(p.fDiff)) return intHash.Cmp(target) == -1 } diff --git a/pkg/crypto/random/random.go b/pkg/crypto/random/random.go index 1863ff04..10836f05 100644 --- a/pkg/crypto/random/random.go +++ b/pkg/crypto/random/random.go @@ -18,7 +18,7 @@ func NewStdPRNG() IPRNG { } // Generates a cryptographically strong pseudo-random bytes. -func (r *sStdPRNG) GetBytes(n uint64) []byte { +func (p *sStdPRNG) GetBytes(n uint64) []byte { slice := make([]byte, n) _, err := rand.Read(slice) if err != nil { @@ -29,18 +29,18 @@ func (r *sStdPRNG) GetBytes(n uint64) []byte { } // Generates a cryptographically strong pseudo-random string. -func (r *sStdPRNG) GetString(n uint64) string { - return encoding.HexEncode(r.GetBytes(n))[:n] +func (p *sStdPRNG) GetString(n uint64) string { + return encoding.HexEncode(p.GetBytes(n))[:n] } // Generate cryptographically strong pseudo-random uint64 number. -func (r *sStdPRNG) GetUint64() uint64 { +func (p *sStdPRNG) GetUint64() uint64 { res := [encoding.CSizeUint64]byte{} - copy(res[:], r.GetBytes(8)) + copy(res[:], p.GetBytes(8)) return encoding.BytesToUint64(res) } // Generate cryptographically strong pseudo-random bool value. -func (r *sStdPRNG) GetBool() bool { - return r.GetBytes(1)[0]%2 == 0 +func (p *sStdPRNG) GetBool() bool { + return p.GetBytes(1)[0]%2 == 0 } diff --git a/pkg/crypto/symmetric/symmetric.go b/pkg/crypto/symmetric/symmetric.go index 39c0e891..0230f6df 100644 --- a/pkg/crypto/symmetric/symmetric.go +++ b/pkg/crypto/symmetric/symmetric.go @@ -23,14 +23,14 @@ type sAESCipher struct { fKey []byte } -func NewAESCipher(key []byte) ICipher { +func NewAESCipher(pKey []byte) ICipher { return &sAESCipher{ - fKey: hashing.NewSHA256Hasher(key).ToBytes(), + fKey: hashing.NewSHA256Hasher(pKey).ToBytes(), } } -func (cph *sAESCipher) EncryptBytes(msg []byte) []byte { - block, err := aes.NewCipher(cph.fKey) +func (p *sAESCipher) EncryptBytes(pMsg []byte) []byte { + block, err := aes.NewCipher(p.fKey) if err != nil { return nil } @@ -39,43 +39,43 @@ func (cph *sAESCipher) EncryptBytes(msg []byte) []byte { iv := random.NewStdPRNG().GetBytes(uint64(blockSize)) stream := cipher.NewCTR(block, iv) - result := make([]byte, len(msg)+len(iv)) + result := make([]byte, len(pMsg)+len(iv)) copy(result[:blockSize], iv) - stream.XORKeyStream(result[blockSize:], msg) + stream.XORKeyStream(result[blockSize:], pMsg) return result } -func (cph *sAESCipher) DecryptBytes(msg []byte) []byte { - block, err := aes.NewCipher(cph.fKey) +func (p *sAESCipher) DecryptBytes(pMsg []byte) []byte { + block, err := aes.NewCipher(p.fKey) if err != nil { return nil } blockSize := block.BlockSize() - if len(msg) < blockSize { + if len(pMsg) < blockSize { return nil } - stream := cipher.NewCTR(block, msg[:blockSize]) - result := make([]byte, len(msg)-blockSize) + stream := cipher.NewCTR(block, pMsg[:blockSize]) + result := make([]byte, len(pMsg)-blockSize) - stream.XORKeyStream(result, msg[blockSize:]) + stream.XORKeyStream(result, pMsg[blockSize:]) return result } -func (cph *sAESCipher) ToString() string { - return fmt.Sprintf("Key(%s){%X}", cph.GetType(), cph.ToBytes()) +func (p *sAESCipher) ToString() string { + return fmt.Sprintf("Key(%s){%X}", p.GetType(), p.ToBytes()) } -func (cph *sAESCipher) ToBytes() []byte { - return cph.fKey +func (p *sAESCipher) ToBytes() []byte { + return p.fKey } -func (cph *sAESCipher) GetType() string { +func (p *sAESCipher) GetType() string { return CAESKeyType } -func (cph *sAESCipher) GetSize() uint64 { +func (p *sAESCipher) GetSize() uint64 { return CAESKeySize } diff --git a/pkg/crypto/types.go b/pkg/crypto/types.go index 5decb957..d0346f12 100644 --- a/pkg/crypto/types.go +++ b/pkg/crypto/types.go @@ -1,9 +1,9 @@ package crypto type IEncrypter interface { - EncryptBytes(msg []byte) []byte + EncryptBytes(pMsg []byte) []byte } type IDecrypter interface { - DecryptBytes(msg []byte) []byte + DecryptBytes(pMsg []byte) []byte } diff --git a/pkg/encoding/bytes.go b/pkg/encoding/bytes.go index 475d7854..3e225569 100644 --- a/pkg/encoding/bytes.go +++ b/pkg/encoding/bytes.go @@ -14,11 +14,11 @@ const ( ) // Uint64 to slice of bytes by big endian. -func Uint64ToBytes(num uint64) [cSizeUint64]byte { +func Uint64ToBytes(pNum uint64) [cSizeUint64]byte { res := [CSizeUint64]byte{} var data = new(bytes.Buffer) - err := binary.Write(data, binary.BigEndian, num) + err := binary.Write(data, binary.BigEndian, pNum) if err != nil { panic(err) } @@ -28,6 +28,6 @@ func Uint64ToBytes(num uint64) [cSizeUint64]byte { } // Slice of bytes to uint64 by big endian. -func BytesToUint64(bytes [cSizeUint64]byte) uint64 { - return binary.BigEndian.Uint64(bytes[:]) +func BytesToUint64(pBytes [cSizeUint64]byte) uint64 { + return binary.BigEndian.Uint64(pBytes[:]) } diff --git a/pkg/encoding/hex.go b/pkg/encoding/hex.go index d4f0b5ba..03f8736e 100644 --- a/pkg/encoding/hex.go +++ b/pkg/encoding/hex.go @@ -2,12 +2,12 @@ package encoding import "encoding/hex" -func HexEncode(data []byte) string { - return hex.EncodeToString(data) +func HexEncode(pData []byte) string { + return hex.EncodeToString(pData) } -func HexDecode(data string) []byte { - result, err := hex.DecodeString(data) +func HexDecode(pData string) []byte { + result, err := hex.DecodeString(pData) if err != nil { return nil } diff --git a/pkg/encoding/serialize.go b/pkg/encoding/serialize.go index 69378c91..4676da30 100644 --- a/pkg/encoding/serialize.go +++ b/pkg/encoding/serialize.go @@ -2,14 +2,14 @@ package encoding import "encoding/json" -func Serialize(data interface{}) []byte { - res, err := json.MarshalIndent(data, "", "\t") +func Serialize(pData interface{}) []byte { + res, err := json.MarshalIndent(pData, "", "\t") if err != nil { return nil } return res } -func Deserialize(data []byte, res interface{}) error { - return json.Unmarshal(data, res) +func Deserialize(pData []byte, pRes interface{}) error { + return json.Unmarshal(pData, pRes) } diff --git a/pkg/filesystem/file.go b/pkg/filesystem/file.go index e1b6ab51..151d0b81 100644 --- a/pkg/filesystem/file.go +++ b/pkg/filesystem/file.go @@ -12,25 +12,25 @@ type sFile struct { fPath string } -func OpenFile(path string) IFile { +func OpenFile(pPath string) IFile { return &sFile{ - fPath: path, + fPath: pPath, } } -func (file *sFile) Read() ([]byte, error) { - data, err := os.ReadFile(file.fPath) +func (p *sFile) Read() ([]byte, error) { + data, err := os.ReadFile(p.fPath) if err != nil { return nil, err } return data, nil } -func (file *sFile) Write(data []byte) error { - return os.WriteFile(file.fPath, data, 0644) +func (p *sFile) Write(pData []byte) error { + return os.WriteFile(p.fPath, pData, 0644) } -func (file *sFile) IsExist() bool { - _, err := os.Stat(file.fPath) +func (p *sFile) IsExist() bool { + _, err := os.Stat(p.fPath) return !os.IsNotExist(err) } diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index 863d0bf7..3e08337d 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -23,22 +23,22 @@ const ( colorReset = "\033[0m" ) -func NewLogger(sett ISettings) ILogger { +func NewLogger(pSett ISettings) ILogger { logger := &sLogger{ - fSettings: sett, + fSettings: pSett, } - infoStream := sett.GetStreamInfo() + infoStream := pSett.GetStreamInfo() if infoStream != nil { logger.fInfoOut = log.New(infoStream, fmt.Sprintf("%s[INFO] %s", colorCyan, colorReset), log.LstdFlags) } - warnStream := sett.GetStreamWarn() + warnStream := pSett.GetStreamWarn() if warnStream != nil { logger.fWarnOut = log.New(warnStream, fmt.Sprintf("%s[WARN] %s", colorYellow, colorReset), log.LstdFlags) } - erroStream := sett.GetStreamErro() + erroStream := pSett.GetStreamErro() if erroStream != nil { logger.fErroOut = log.New(erroStream, fmt.Sprintf("%s[ERRO] %s", colorRed, colorReset), log.LstdFlags) } @@ -46,27 +46,27 @@ func NewLogger(sett ISettings) ILogger { return logger } -func (l *sLogger) GetSettings() ISettings { - return l.fSettings +func (p *sLogger) GetSettings() ISettings { + return p.fSettings } -func (l *sLogger) PushInfo(info string) { - if l.fInfoOut == nil { +func (p *sLogger) PushInfo(info string) { + if p.fInfoOut == nil { return } - l.fInfoOut.Println(info) + p.fInfoOut.Println(info) } -func (l *sLogger) PushWarn(warn string) { - if l.fWarnOut == nil { +func (p *sLogger) PushWarn(warn string) { + if p.fWarnOut == nil { return } - l.fWarnOut.Println(warn) + p.fWarnOut.Println(warn) } -func (l *sLogger) PushErro(erro string) { - if l.fErroOut == nil { +func (p *sLogger) PushErro(erro string) { + if p.fErroOut == nil { return } - l.fErroOut.Println(erro) + p.fErroOut.Println(erro) } diff --git a/pkg/logger/settings.go b/pkg/logger/settings.go index f32413e5..41fe1aa4 100644 --- a/pkg/logger/settings.go +++ b/pkg/logger/settings.go @@ -15,27 +15,27 @@ type sSettings struct { FErro *os.File } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FInfo: sett.FInfo, - FWarn: sett.FWarn, - FErro: sett.FErro, + FInfo: pSett.FInfo, + FWarn: pSett.FWarn, + FErro: pSett.FErro, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { +func (p *sSettings) useDefaultValues() ISettings { // set nil for void fields - return s + return p } -func (s *sSettings) GetStreamInfo() *os.File { - return s.FInfo +func (p *sSettings) GetStreamInfo() *os.File { + return p.FInfo } -func (s *sSettings) GetStreamWarn() *os.File { - return s.FWarn +func (p *sSettings) GetStreamWarn() *os.File { + return p.FWarn } -func (s *sSettings) GetStreamErro() *os.File { - return s.FErro +func (p *sSettings) GetStreamErro() *os.File { + return p.FErro } diff --git a/pkg/network/anonymity/anonymity.go b/pkg/network/anonymity/anonymity.go index c0b5fd5d..9ffeeae3 100644 --- a/pkg/network/anonymity/anonymity.go +++ b/pkg/network/anonymity/anonymity.go @@ -38,117 +38,117 @@ type sNode struct { } func NewNode( - sett ISettings, - log logger.ILogger, - wDB IWrapperDB, - nnode network.INode, - queue queue.IMessageQueue, - friends asymmetric.IListPubKeys, + pSett ISettings, + pLogger logger.ILogger, + pWrapperDB IWrapperDB, + pNetwork network.INode, + pQueue queue.IMessageQueue, + pFriends asymmetric.IListPubKeys, ) INode { return &sNode{ - fSettings: sett, - fLogger: log, - fWrapperDB: wDB, - fNetwork: nnode, - fQueue: queue, - fFriends: friends, + fSettings: pSett, + fLogger: pLogger, + fWrapperDB: pWrapperDB, + fNetwork: pNetwork, + fQueue: pQueue, + fFriends: pFriends, fHandleRoutes: make(map[uint32]IHandlerF), fHandleActions: make(map[string]chan []byte), } } -func (node *sNode) Run() error { - logger := anon_logger.NewLogger(node.GetSettings().GetServiceName()) +func (p *sNode) Run() error { + logger := anon_logger.NewLogger(p.GetSettings().GetServiceName()) - if err := node.runQueue(logger); err != nil { + if err := p.runQueue(logger); err != nil { return err } - node.GetNetworkNode().HandleFunc( - node.GetSettings().GetNetworkMask(), - node.handleWrapper(logger), + p.GetNetworkNode().HandleFunc( + p.GetSettings().GetNetworkMask(), + p.handleWrapper(logger), ) return nil } -func (node *sNode) Stop() error { - node.GetNetworkNode().HandleFunc(node.GetSettings().GetNetworkMask(), nil) +func (p *sNode) Stop() error { + p.GetNetworkNode().HandleFunc(p.GetSettings().GetNetworkMask(), nil) return types.StopAll([]types.ICommand{ - node.GetMessageQueue(), + p.GetMessageQueue(), }) } -func (node *sNode) GetLogger() logger.ILogger { - return node.fLogger +func (p *sNode) GetLogger() logger.ILogger { + return p.fLogger } -func (node *sNode) GetSettings() ISettings { - return node.fSettings +func (p *sNode) GetSettings() ISettings { + return p.fSettings } -func (node *sNode) GetWrapperDB() IWrapperDB { - return node.fWrapperDB +func (p *sNode) GetWrapperDB() IWrapperDB { + return p.fWrapperDB } -func (node *sNode) GetNetworkNode() network.INode { - return node.fNetwork +func (p *sNode) GetNetworkNode() network.INode { + return p.fNetwork } -func (node *sNode) GetMessageQueue() queue.IMessageQueue { - return node.fQueue +func (p *sNode) GetMessageQueue() queue.IMessageQueue { + return p.fQueue } // Return f2f structure. -func (node *sNode) GetListPubKeys() asymmetric.IListPubKeys { - return node.fFriends +func (p *sNode) GetListPubKeys() asymmetric.IListPubKeys { + return p.fFriends } -func (node *sNode) HandleFunc(head uint32, handle IHandlerF) INode { - node.setRoute(head, handle) - return node +func (p *sNode) HandleFunc(pHead uint32, pHandle IHandlerF) INode { + p.setRoute(pHead, pHandle) + return p } // Send message without response waiting. -func (node *sNode) BroadcastPayload(recv asymmetric.IPubKey, pld payload.IPayload) error { - if len(node.GetNetworkNode().GetConnections()) == 0 { +func (p *sNode) BroadcastPayload(pRecv asymmetric.IPubKey, pPld payload.IPayload) error { + if len(p.GetNetworkNode().GetConnections()) == 0 { return errors.New("length of connections = 0") } - msg, err := node.GetMessageQueue().GetClient().EncryptPayload(recv, pld) + msg, err := p.GetMessageQueue().GetClient().EncryptPayload(pRecv, pPld) if err != nil { return err } - return node.send(msg) + return p.send(msg) } // Send message with response waiting. // Payload head must be uint32. -func (node *sNode) FetchPayload(recv asymmetric.IPubKey, pld payload.IPayload) ([]byte, error) { +func (p *sNode) FetchPayload(pRecv asymmetric.IPubKey, pPld payload.IPayload) ([]byte, error) { headAction := uint32(random.NewStdPRNG().GetUint64()) - headRoute := mustBeUint32(pld.GetHead()) + headRoute := mustBeUint32(pPld.GetHead()) newPld := payload.NewPayload( joinHead(headAction, headRoute).Uint64(), - pld.GetBody(), + pPld.GetBody(), ) - actionKey := newActionKey(recv, headAction) + actionKey := newActionKey(pRecv, headAction) - node.setAction(actionKey) - defer node.delAction(actionKey) + p.setAction(actionKey) + defer p.delAction(actionKey) - if err := node.BroadcastPayload(recv, newPld); err != nil { + if err := p.BroadcastPayload(pRecv, newPld); err != nil { return nil, err } - return node.recv(actionKey) + return p.recv(actionKey) } -func (node *sNode) send(msg message.IMessage) error { - for i := uint64(0); i <= node.GetSettings().GetRetryEnqueue(); i++ { - if err := node.GetMessageQueue().EnqueueMessage(msg); err != nil { - time.Sleep(node.GetMessageQueue().GetSettings().GetDuration()) +func (p *sNode) send(pMsg message.IMessage) error { + for i := uint64(0); i <= p.GetSettings().GetRetryEnqueue(); i++ { + if err := p.GetMessageQueue().EnqueueMessage(pMsg); err != nil { + time.Sleep(p.GetMessageQueue().GetSettings().GetDuration()) continue } return nil @@ -156,8 +156,8 @@ func (node *sNode) send(msg message.IMessage) error { return fmt.Errorf("failed: enqueue message") } -func (node *sNode) recv(actionKey string) ([]byte, error) { - action, ok := node.getAction(actionKey) +func (p *sNode) recv(pActionKey string) ([]byte, error) { + action, ok := p.getAction(pActionKey) if !ok { return nil, errors.New("action undefined") } @@ -167,19 +167,19 @@ func (node *sNode) recv(actionKey string) ([]byte, error) { return nil, errors.New("chan is closed") } return result, nil - case <-time.After(node.GetSettings().GetTimeWait()): + case <-time.After(p.GetSettings().GetTimeWait()): return nil, errors.New("time is over") } } -func (node *sNode) runQueue(logger anon_logger.ILogger) error { - if err := node.GetMessageQueue().Run(); err != nil { +func (p *sNode) runQueue(pLogger anon_logger.ILogger) error { + if err := p.GetMessageQueue().Run(); err != nil { return err } go func() { for { - msg, ok := <-node.GetMessageQueue().DequeueMessage() + msg, ok := <-p.GetMessageQueue().DequeueMessage() if !ok { break } @@ -187,44 +187,44 @@ func (node *sNode) runQueue(logger anon_logger.ILogger) error { var ( hash = msg.GetBody().GetHash() proof = msg.GetBody().GetProof() - pubKey = node.GetMessageQueue().GetClient().GetPubKey() + pubKey = p.GetMessageQueue().GetClient().GetPubKey() ) - if err := node.networkBroadcast(logger, msg); err != nil { - node.fLogger.PushErro(logger.GetFmtLog(anon_logger.CLogErroMiddleware, hash, proof, pubKey, nil)) + if err := p.networkBroadcast(pLogger, msg); err != nil { + p.fLogger.PushErro(pLogger.GetFmtLog(anon_logger.CLogErroMiddleware, hash, proof, pubKey, nil)) continue } - node.fLogger.PushInfo(logger.GetFmtLog(anon_logger.CLogBaseBroadcast, hash, proof, pubKey, nil)) + p.fLogger.PushInfo(pLogger.GetFmtLog(anon_logger.CLogBaseBroadcast, hash, proof, pubKey, nil)) } }() return nil } -func (node *sNode) handleWrapper(logger anon_logger.ILogger) network.IHandlerF { - return func(_ network.INode, conn conn.IConn, reqBytes []byte) { +func (p *sNode) handleWrapper(pLogger anon_logger.ILogger) network.IHandlerF { + return func(_ network.INode, pConn conn.IConn, pReqBytes []byte) { msg := message.LoadMessage( - reqBytes, + pReqBytes, message.NewParams( - node.GetMessageQueue().GetClient().GetSettings().GetMessageSize(), - node.GetMessageQueue().GetClient().GetSettings().GetWorkSize(), + p.GetMessageQueue().GetClient().GetSettings().GetMessageSize(), + p.GetMessageQueue().GetClient().GetSettings().GetWorkSize(), ), ) if msg == nil { - node.GetLogger().PushWarn(logger.GetFmtLog(anon_logger.CLogWarnMessageNull, nil, 0, nil, conn)) + p.GetLogger().PushWarn(pLogger.GetFmtLog(anon_logger.CLogWarnMessageNull, nil, 0, nil, pConn)) return } var ( - addr = node.GetMessageQueue().GetClient().GetPubKey().GetAddress().ToString() + addr = p.GetMessageQueue().GetClient().GetPubKey().GetAddress().ToString() hash = msg.GetBody().GetHash() proof = msg.GetBody().GetProof() - database = node.GetWrapperDB().Get() + database = p.GetWrapperDB().Get() ) if database == nil { - node.GetLogger().PushErro(logger.GetFmtLog(anon_logger.CLogErroDatabaseGet, hash, proof, nil, conn)) + p.GetLogger().PushErro(pLogger.GetFmtLog(anon_logger.CLogErroDatabaseGet, hash, proof, nil, pConn)) return } @@ -234,36 +234,36 @@ func (node *sNode) handleWrapper(logger anon_logger.ILogger) network.IHandlerF { // check already received data by hash hashIsExist := (err == nil) if hashIsExist && strings.Contains(string(gotAddrs), addr) { - node.GetLogger().PushInfo(logger.GetFmtLog(anon_logger.CLogInfoExist, hash, proof, nil, conn)) + p.GetLogger().PushInfo(pLogger.GetFmtLog(anon_logger.CLogInfoExist, hash, proof, nil, pConn)) return } // set hash to database updateAddrs := fmt.Sprintf("%s;%s", string(gotAddrs), addr) if err := database.Set(hashDB, []byte(updateAddrs)); err != nil { - node.GetLogger().PushErro(logger.GetFmtLog(anon_logger.CLogErroDatabaseSet, hash, proof, nil, conn)) + p.GetLogger().PushErro(pLogger.GetFmtLog(anon_logger.CLogErroDatabaseSet, hash, proof, nil, pConn)) return } // do not send data if than already received if !hashIsExist { // broadcast message to network - if err := node.networkBroadcast(logger, msg); err != nil { - node.GetLogger().PushErro(logger.GetFmtLog(anon_logger.CLogErroMiddleware, hash, proof, nil, conn)) + if err := p.networkBroadcast(pLogger, msg); err != nil { + p.GetLogger().PushErro(pLogger.GetFmtLog(anon_logger.CLogErroMiddleware, hash, proof, nil, pConn)) return } } // try decrypt message - sender, pld, err := node.GetMessageQueue().GetClient().DecryptMessage(msg) + sender, pld, err := p.GetMessageQueue().GetClient().DecryptMessage(msg) if err != nil { - node.GetLogger().PushInfo(logger.GetFmtLog(anon_logger.CLogInfoUndecryptable, hash, proof, nil, conn)) + p.GetLogger().PushInfo(pLogger.GetFmtLog(anon_logger.CLogInfoUndecryptable, hash, proof, nil, pConn)) return } // check sender in f2f list - if !node.GetListPubKeys().InPubKeys(sender) { - node.GetLogger().PushWarn(logger.GetFmtLog(anon_logger.CLogWarnNotFriend, hash, proof, sender, conn)) + if !p.GetListPubKeys().InPubKeys(sender) { + p.GetLogger().PushWarn(pLogger.GetFmtLog(anon_logger.CLogWarnNotFriend, hash, proof, sender, pConn)) return } @@ -272,102 +272,102 @@ func (node *sNode) handleWrapper(logger anon_logger.ILogger) network.IHandlerF { // get session by payload head actionKey := newActionKey(sender, head.GetAction()) - action, ok := node.getAction(actionKey) + action, ok := p.getAction(actionKey) if ok { - node.GetLogger().PushInfo(logger.GetFmtLog(anon_logger.CLogInfoAction, hash, proof, sender, conn)) + p.GetLogger().PushInfo(pLogger.GetFmtLog(anon_logger.CLogInfoAction, hash, proof, sender, pConn)) action <- pld.GetBody() return } // get function by payload head - f, ok := node.getRoute(head.GetRoute()) + f, ok := p.getRoute(head.GetRoute()) if !ok || f == nil { - node.GetLogger().PushWarn(logger.GetFmtLog(anon_logger.CLogWarnUnknownRoute, hash, proof, sender, conn)) + p.GetLogger().PushWarn(pLogger.GetFmtLog(anon_logger.CLogWarnUnknownRoute, hash, proof, sender, pConn)) return } // response can be nil - resp := f(node, sender, hash, pld.GetBody()) + resp := f(p, sender, hash, pld.GetBody()) if resp == nil { - node.GetLogger().PushInfo(logger.GetFmtLog(anon_logger.CLogInfoWithoutResp, hash, proof, sender, conn)) + p.GetLogger().PushInfo(pLogger.GetFmtLog(anon_logger.CLogInfoWithoutResp, hash, proof, sender, pConn)) return } // create the message and put this to the queue - if err := node.BroadcastPayload(sender, payload.NewPayload(pld.GetHead(), resp)); err != nil { - node.GetLogger().PushErro(logger.GetFmtLog(anon_logger.CLogBaseEnqueueResp, hash, proof, sender, conn)) + if err := p.BroadcastPayload(sender, payload.NewPayload(pld.GetHead(), resp)); err != nil { + p.GetLogger().PushErro(pLogger.GetFmtLog(anon_logger.CLogBaseEnqueueResp, hash, proof, sender, pConn)) return } - node.GetLogger().PushInfo(logger.GetFmtLog(anon_logger.CLogBaseEnqueueResp, hash, proof, sender, conn)) + p.GetLogger().PushInfo(pLogger.GetFmtLog(anon_logger.CLogBaseEnqueueResp, hash, proof, sender, pConn)) } } -func (node *sNode) networkBroadcast(logger anon_logger.ILogger, msg message.IMessage) error { - hash := msg.GetBody().GetHash() - proof := msg.GetBody().GetProof() +func (p *sNode) networkBroadcast(pLogger anon_logger.ILogger, pMsg message.IMessage) error { + hash := pMsg.GetBody().GetHash() + proof := pMsg.GetBody().GetProof() // redirect message to another nodes - err := node.GetNetworkNode().BroadcastPayload( + err := p.GetNetworkNode().BroadcastPayload( payload.NewPayload( - node.GetSettings().GetNetworkMask(), - msg.ToBytes(), + p.GetSettings().GetNetworkMask(), + pMsg.ToBytes(), ), ) if err != nil { - node.fLogger.PushWarn(logger.GetFmtLog(anon_logger.CLogBaseBroadcast, hash, proof, nil, nil)) + p.fLogger.PushWarn(pLogger.GetFmtLog(anon_logger.CLogBaseBroadcast, hash, proof, nil, nil)) // need continue (some of connections may be closed) } return nil } -func (node *sNode) setRoute(head uint32, handle IHandlerF) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) setRoute(pHead uint32, pHandle IHandlerF) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - node.fHandleRoutes[head] = handle + p.fHandleRoutes[pHead] = pHandle } -func (node *sNode) getRoute(head uint32) (IHandlerF, bool) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) getRoute(pHead uint32) (IHandlerF, bool) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - f, ok := node.fHandleRoutes[head] + f, ok := p.fHandleRoutes[pHead] return f, ok } -func (node *sNode) getAction(actionKey string) (chan []byte, bool) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) getAction(pActionKey string) (chan []byte, bool) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - f, ok := node.fHandleActions[actionKey] + f, ok := p.fHandleActions[pActionKey] return f, ok } -func (node *sNode) setAction(actionKey string) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) setAction(pActionKey string) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - node.fHandleActions[actionKey] = make(chan []byte) + p.fHandleActions[pActionKey] = make(chan []byte) } -func (node *sNode) delAction(actionKey string) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) delAction(pActionKey string) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - delete(node.fHandleActions, actionKey) + delete(p.fHandleActions, pActionKey) } -func newActionKey(pubKey asymmetric.IPubKey, head uint32) string { - pubKeyAddr := pubKey.GetAddress().ToString() - headString := fmt.Sprintf("%d", head) +func newActionKey(pPubKey asymmetric.IPubKey, pHead uint32) string { + pubKeyAddr := pPubKey.GetAddress().ToString() + headString := fmt.Sprintf("%d", pHead) return fmt.Sprintf("%s-%s", pubKeyAddr, headString) } -func mustBeUint32(v uint64) uint32 { - if v > math.MaxUint32 { +func mustBeUint32(pValue uint64) uint32 { + if pValue > math.MaxUint32 { panic("v > math.MaxUint32") } - return uint32(v) + return uint32(pValue) } diff --git a/pkg/network/anonymity/head.go b/pkg/network/anonymity/head.go index eb90df59..49f6e090 100644 --- a/pkg/network/anonymity/head.go +++ b/pkg/network/anonymity/head.go @@ -9,22 +9,22 @@ var ( // B used for route type sHead uint64 -func loadHead(n uint64) iHead { - return sHead(n) +func loadHead(pN uint64) iHead { + return sHead(pN) } -func joinHead(action, route uint32) iHead { - return sHead((uint64(action) << 32) | uint64(route)) +func joinHead(pAction, pRoute uint32) iHead { + return sHead((uint64(pAction) << 32) | uint64(pRoute)) } -func (k sHead) GetRoute() uint32 { - return uint32(k & 0x00000000FFFFFFFF) +func (p sHead) GetRoute() uint32 { + return uint32(p & 0x00000000FFFFFFFF) } -func (k sHead) GetAction() uint32 { - return uint32(k >> 32) +func (p sHead) GetAction() uint32 { + return uint32(p >> 32) } -func (k sHead) Uint64() uint64 { - return uint64(k) +func (p sHead) Uint64() uint64 { + return uint64(p) } diff --git a/pkg/network/anonymity/logger/logger.go b/pkg/network/anonymity/logger/logger.go index 0707236d..5c6f4c96 100644 --- a/pkg/network/anonymity/logger/logger.go +++ b/pkg/network/anonymity/logger/logger.go @@ -16,27 +16,27 @@ type sLogger struct { fService string } -func NewLogger(service string) ILogger { - if len(service) != 3 { +func NewLogger(pService string) ILogger { + if len(pService) != 3 { return nil } return &sLogger{ - fService: service, + fService: pService, } } -func (l *sLogger) GetFmtLog(lType ILogType, msgHash []byte, proof uint64, pubKey asymmetric.IPubKey, netConn conn.IConn) string { +func (p *sLogger) GetFmtLog(pType ILogType, pMsgHash []byte, pProof uint64, pPubKey asymmetric.IPubKey, pNetConn conn.IConn) string { conn := "127.0.0.1:" - if netConn != nil { - conn = netConn.GetSocket().RemoteAddr().String() + if pNetConn != nil { + conn = pNetConn.GetSocket().RemoteAddr().String() } addr := make([]byte, hashing.CSHA256Size) - if pubKey != nil { - addr = pubKey.GetAddress().ToBytes() + if pPubKey != nil { + addr = pPubKey.GetAddress().ToBytes() } hash := make([]byte, hashing.CSHA256Size) - if msgHash != nil { - hash = msgHash + if pMsgHash != nil { + hash = pMsgHash } - return fmt.Sprintf(cLogTemplate, l.fService, lType, hash[:4], hash[28:], addr[:4], addr[28:], proof, conn) + return fmt.Sprintf(cLogTemplate, p.fService, pType, hash[:4], hash[28:], addr[:4], addr[28:], pProof, conn) } diff --git a/pkg/network/anonymity/payload.go b/pkg/network/anonymity/payload.go index 31d00e8f..8d48e93e 100644 --- a/pkg/network/anonymity/payload.go +++ b/pkg/network/anonymity/payload.go @@ -2,6 +2,6 @@ package anonymity import "github.com/number571/go-peer/pkg/payload" -func NewPayload(head uint32, body []byte) payload.IPayload { - return payload.NewPayload(uint64(head), body) +func NewPayload(pHead uint32, pBody []byte) payload.IPayload { + return payload.NewPayload(uint64(pHead), pBody) } diff --git a/pkg/network/anonymity/settings.go b/pkg/network/anonymity/settings.go index 9e746ba0..c0cfbab4 100644 --- a/pkg/network/anonymity/settings.go +++ b/pkg/network/anonymity/settings.go @@ -22,40 +22,40 @@ type sSettings struct { FTimeWait time.Duration } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FServiceName: sett.FServiceName, - FRetryEnqueue: sett.FRetryEnqueue, - FNetworkMask: sett.FNetworkMask, - FTimeWait: sett.FTimeWait, + FServiceName: pSett.FServiceName, + FRetryEnqueue: pSett.FRetryEnqueue, + FNetworkMask: pSett.FNetworkMask, + FTimeWait: pSett.FTimeWait, }).useDefaultValue() } -func (s *sSettings) useDefaultValue() ISettings { - if s.FServiceName == "" { - s.FServiceName = cServiceName +func (p *sSettings) useDefaultValue() ISettings { + if p.FServiceName == "" { + p.FServiceName = cServiceName } - if s.FNetworkMask == 0 { - s.FNetworkMask = cMaskNetwork + if p.FNetworkMask == 0 { + p.FNetworkMask = cMaskNetwork } - if s.FTimeWait == 0 { - s.FTimeWait = cTimeWait + if p.FTimeWait == 0 { + p.FTimeWait = cTimeWait } - return s + return p } -func (s *sSettings) GetServiceName() string { - return s.FServiceName +func (p *sSettings) GetServiceName() string { + return p.FServiceName } -func (s *sSettings) GetTimeWait() time.Duration { - return s.FTimeWait +func (p *sSettings) GetTimeWait() time.Duration { + return p.FTimeWait } -func (s *sSettings) GetNetworkMask() uint64 { - return s.FNetworkMask +func (p *sSettings) GetNetworkMask() uint64 { + return p.FNetworkMask } -func (s *sSettings) GetRetryEnqueue() uint64 { - return s.FRetryEnqueue +func (p *sSettings) GetRetryEnqueue() uint64 { + return p.FRetryEnqueue } diff --git a/pkg/network/anonymity/wrapper.go b/pkg/network/anonymity/wrapper.go index 663598bb..50d7e099 100644 --- a/pkg/network/anonymity/wrapper.go +++ b/pkg/network/anonymity/wrapper.go @@ -20,27 +20,27 @@ func NewWrapperDB() IWrapperDB { return &sWrapperDB{fWrapper: wrapper.NewWrapper()} } -func (w *sWrapperDB) Get() database.IKeyValueDB { - db, ok := w.fWrapper.Get().(database.IKeyValueDB) +func (p *sWrapperDB) Get() database.IKeyValueDB { + db, ok := p.fWrapper.Get().(database.IKeyValueDB) if !ok { return nil } return db } -func (w *sWrapperDB) Set(db database.IKeyValueDB) IWrapperDB { - w.fMutex.Lock() - defer w.fMutex.Unlock() +func (p *sWrapperDB) Set(pDB database.IKeyValueDB) IWrapperDB { + p.fMutex.Lock() + defer p.fMutex.Unlock() - w.fWrapper.Set(db) - return w + p.fWrapper.Set(pDB) + return p } -func (w *sWrapperDB) Close() error { - w.fMutex.Lock() - defer w.fMutex.Unlock() +func (p *sWrapperDB) Close() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - db, ok := w.fWrapper.Get().(database.IKeyValueDB) + db, ok := p.fWrapper.Get().(database.IKeyValueDB) if !ok { return nil } diff --git a/pkg/network/conn/conn.go b/pkg/network/conn/conn.go index 3eaf9b10..b300ab44 100644 --- a/pkg/network/conn/conn.go +++ b/pkg/network/conn/conn.go @@ -22,39 +22,39 @@ type sConn struct { fSettings ISettings } -func NewConn(sett ISettings, address string) (IConn, error) { - conn, err := net.Dial("tcp", address) +func NewConn(pSett ISettings, pAddr string) (IConn, error) { + conn, err := net.Dial("tcp", pAddr) if err != nil { return nil, err } - return LoadConn(sett, conn), nil + return LoadConn(pSett, conn), nil } -func LoadConn(sett ISettings, conn net.Conn) IConn { +func LoadConn(pSett ISettings, pConn net.Conn) IConn { return &sConn{ - fSettings: sett, - fSocket: conn, + fSettings: pSett, + fSocket: pConn, } } -func (conn *sConn) GetSettings() ISettings { - return conn.fSettings +func (p *sConn) GetSettings() ISettings { + return p.fSettings } -func (conn *sConn) GetSocket() net.Conn { - return conn.fSocket +func (p *sConn) GetSocket() net.Conn { + return p.fSocket } -func (conn *sConn) FetchPayload(pld payload.IPayload) (payload.IPayload, error) { +func (p *sConn) FetchPayload(pPld payload.IPayload) (payload.IPayload, error) { var ( chPld = make(chan payload.IPayload) - timeWait = conn.fSettings.GetTimeWait() + timeWait = p.fSettings.GetTimeWait() ) - if err := conn.WritePayload(pld); err != nil { + if err := p.WritePayload(pPld); err != nil { return nil, err } - go readPayload(conn, chPld) + go readPayload(p, chPld) select { case rpld := <-chPld: @@ -67,22 +67,22 @@ func (conn *sConn) FetchPayload(pld payload.IPayload) (payload.IPayload, error) } } -func (conn *sConn) Close() error { - return conn.GetSocket().Close() +func (p *sConn) Close() error { + return p.GetSocket().Close() } -func (conn *sConn) WritePayload(pld payload.IPayload) error { - conn.fMutex.Lock() - defer conn.fMutex.Unlock() +func (p *sConn) WritePayload(pPld payload.IPayload) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() var ( - msgBytes = message.NewMessage(pld, []byte(conn.fSettings.GetNetworkKey())).GetBytes() + msgBytes = message.NewMessage(pPld, []byte(p.fSettings.GetNetworkKey())).GetBytes() packBytes = payload.NewPayload(uint64(len(msgBytes)), msgBytes).ToBytes() packPtr = len(packBytes) ) for { - n, err := conn.GetSocket().Write(packBytes[:packPtr]) + n, err := p.GetSocket().Write(packBytes[:packPtr]) if err != nil { return err } @@ -98,21 +98,21 @@ func (conn *sConn) WritePayload(pld payload.IPayload) error { return nil } -func (conn *sConn) ReadPayload() payload.IPayload { +func (p *sConn) ReadPayload() payload.IPayload { chPld := make(chan payload.IPayload) - go readPayload(conn, chPld) + go readPayload(p, chPld) return <-chPld } -func readPayload(conn *sConn, chPld chan payload.IPayload) { +func readPayload(pConn *sConn, pChPld chan payload.IPayload) { var pld payload.IPayload defer func() { - chPld <- pld + pChPld <- pld }() // bufLen = Size[u64] in bytes bufLen := make([]byte, encoding.CSizeUint64) - length, err := conn.GetSocket().Read(bufLen) + length, err := pConn.GetSocket().Read(bufLen) if err != nil { return } @@ -125,14 +125,14 @@ func readPayload(conn *sConn, chPld chan payload.IPayload) { copy(arrLen[:], bufLen) mustLen := encoding.BytesToUint64(arrLen) - if mustLen > conn.fSettings.GetMessageSize() { + if mustLen > pConn.fSettings.GetMessageSize() { return } msgRaw := make([]byte, 0, mustLen) for { buffer := make([]byte, mustLen) - n, err := conn.GetSocket().Read(buffer) + n, err := pConn.GetSocket().Read(buffer) if err != nil { return } @@ -154,7 +154,7 @@ func readPayload(conn *sConn, chPld chan payload.IPayload) { // try unpack message from bytes msg := message.LoadMessage( msgRaw, - []byte(conn.fSettings.GetNetworkKey()), + []byte(pConn.fSettings.GetNetworkKey()), ) if msg == nil { return diff --git a/pkg/network/conn/settings.go b/pkg/network/conn/settings.go index ef62fa7c..1c158f9d 100644 --- a/pkg/network/conn/settings.go +++ b/pkg/network/conn/settings.go @@ -19,35 +19,35 @@ type sSettings struct { FTimeWait time.Duration } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FNetworkKey: sett.FNetworkKey, - FMessageSize: sett.FMessageSize, - FTimeWait: sett.FTimeWait, + FNetworkKey: pSett.FNetworkKey, + FMessageSize: pSett.FMessageSize, + FTimeWait: pSett.FTimeWait, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { - if s.FNetworkKey == "" { - s.FNetworkKey = cNetworkKey +func (p *sSettings) useDefaultValues() ISettings { + if p.FNetworkKey == "" { + p.FNetworkKey = cNetworkKey } - if s.FMessageSize == 0 { - s.FMessageSize = cMessageSize + if p.FMessageSize == 0 { + p.FMessageSize = cMessageSize } - if s.FTimeWait == 0 { - s.FTimeWait = cTimeWait + if p.FTimeWait == 0 { + p.FTimeWait = cTimeWait } - return s + return p } -func (s *sSettings) GetNetworkKey() string { - return s.FNetworkKey +func (p *sSettings) GetNetworkKey() string { + return p.FNetworkKey } -func (s *sSettings) GetMessageSize() uint64 { - return s.FMessageSize +func (p *sSettings) GetMessageSize() uint64 { + return p.FMessageSize } -func (s *sSettings) GetTimeWait() time.Duration { - return s.FTimeWait +func (p *sSettings) GetTimeWait() time.Duration { + return p.FTimeWait } diff --git a/pkg/network/conn_keeper/conn_keeper.go b/pkg/network/conn_keeper/conn_keeper.go index ea27e5c7..44a528de 100644 --- a/pkg/network/conn_keeper/conn_keeper.go +++ b/pkg/network/conn_keeper/conn_keeper.go @@ -20,40 +20,40 @@ type sConnKeeper struct { fSettings ISettings } -func NewConnKeeper(sett ISettings, node network.INode) IConnKeeper { +func NewConnKeeper(pSett ISettings, pNode network.INode) IConnKeeper { return &sConnKeeper{ - fNode: node, - fSettings: sett, + fNode: pNode, + fSettings: pSett, } } -func (connKeeper *sConnKeeper) GetNetworkNode() network.INode { - return connKeeper.fNode +func (p *sConnKeeper) GetNetworkNode() network.INode { + return p.fNode } -func (connKeeper *sConnKeeper) GetSettings() ISettings { - return connKeeper.fSettings +func (p *sConnKeeper) GetSettings() ISettings { + return p.fSettings } -func (connKeeper *sConnKeeper) Run() error { - connKeeper.fMutex.Lock() - defer connKeeper.fMutex.Unlock() +func (p *sConnKeeper) Run() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if connKeeper.fIsRun { + if p.fIsRun { return errors.New("conn keeper already started") } - connKeeper.fIsRun = true + p.fIsRun = true - connKeeper.fSignal = make(chan struct{}) - connKeeper.tryConnectToAll() + p.fSignal = make(chan struct{}) + p.tryConnectToAll() go func() { for { select { - case <-connKeeper.readSignal(): + case <-p.readSignal(): return - case <-time.After(connKeeper.GetSettings().GetDuration()): - connKeeper.tryConnectToAll() + case <-time.After(p.GetSettings().GetDuration()): + p.tryConnectToAll() } } }() @@ -61,34 +61,35 @@ func (connKeeper *sConnKeeper) Run() error { return nil } -func (connKeeper *sConnKeeper) Stop() error { - connKeeper.fMutex.Lock() - defer connKeeper.fMutex.Unlock() +func (p *sConnKeeper) Stop() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if !connKeeper.fIsRun { + if !p.fIsRun { return errors.New("conn keeper already closed or not started") } - connKeeper.fIsRun = false + p.fIsRun = false - close(connKeeper.fSignal) + close(p.fSignal) return nil } -func (connKeeper *sConnKeeper) tryConnectToAll() { +func (p *sConnKeeper) tryConnectToAll() { NEXT: - for _, address := range connKeeper.GetSettings().GetConnections() { - for addr := range connKeeper.fNode.GetConnections() { + for _, address := range p.GetSettings().GetConnections() { + for addr := range p.fNode.GetConnections() { if addr == address { + // no need add connect continue NEXT } } - connKeeper.fNode.AddConnect(address) + p.fNode.AddConnect(address) } } -func (connKeeper *sConnKeeper) readSignal() <-chan struct{} { - connKeeper.fMutex.Lock() - defer connKeeper.fMutex.Unlock() +func (p *sConnKeeper) readSignal() <-chan struct{} { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return connKeeper.fSignal + return p.fSignal } diff --git a/pkg/network/conn_keeper/settings.go b/pkg/network/conn_keeper/settings.go index f3493541..1c5aa8fa 100644 --- a/pkg/network/conn_keeper/settings.go +++ b/pkg/network/conn_keeper/settings.go @@ -20,27 +20,27 @@ type sSettings struct { FDuration time.Duration } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FConnections: sett.FConnections, - FDuration: sett.FDuration, + FConnections: pSett.FConnections, + FDuration: pSett.FDuration, }).useDefaultValue() } -func (s *sSettings) useDefaultValue() ISettings { - if s.FDuration == 0 { - s.FDuration = cDuration +func (p *sSettings) useDefaultValue() ISettings { + if p.FDuration == 0 { + p.FDuration = cDuration } - if s.FConnections == nil { - s.FConnections = gConnections + if p.FConnections == nil { + p.FConnections = gConnections } - return s + return p } -func (s *sSettings) GetConnections() []string { - return s.FConnections() +func (p *sSettings) GetConnections() []string { + return p.FConnections() } -func (s *sSettings) GetDuration() time.Duration { - return s.FDuration +func (p *sSettings) GetDuration() time.Duration { + return p.FDuration } diff --git a/pkg/network/message/message.go b/pkg/network/message/message.go index b7319b58..cb3c7d4a 100644 --- a/pkg/network/message/message.go +++ b/pkg/network/message/message.go @@ -16,28 +16,28 @@ type sMessage struct { fPayload payload.IPayload } -func NewMessage(pld payload.IPayload, key []byte) IMessage { +func NewMessage(pPld payload.IPayload, pKey []byte) IMessage { return &sMessage{ fHash: hashing.NewHMACSHA256Hasher( - key, - pld.ToBytes(), + pKey, + pPld.ToBytes(), ).ToBytes(), - fPayload: pld, + fPayload: pPld, } } -func LoadMessage(packData, key []byte) IMessage { +func LoadMessage(pData, pKey []byte) IMessage { // check Hash[uN] - if len(packData) < hashing.CSHA256Size { + if len(pData) < hashing.CSHA256Size { return nil } - hashRecv := packData[:hashing.CSHA256Size] - payloadBytes := packData[hashing.CSHA256Size:] + hashRecv := pData[:hashing.CSHA256Size] + payloadBytes := pData[hashing.CSHA256Size:] if !bytes.Equal( hashRecv, hashing.NewHMACSHA256Hasher( - key, + pKey, payloadBytes, ).ToBytes(), ) { @@ -56,19 +56,19 @@ func LoadMessage(packData, key []byte) IMessage { } } -func (msg *sMessage) GetHash() []byte { - return msg.fHash +func (p *sMessage) GetHash() []byte { + return p.fHash } -func (msg *sMessage) GetPayload() payload.IPayload { - return msg.fPayload +func (p *sMessage) GetPayload() payload.IPayload { + return p.fPayload } -func (msg *sMessage) GetBytes() []byte { +func (p *sMessage) GetBytes() []byte { return bytes.Join( [][]byte{ - msg.fHash, - msg.fPayload.ToBytes(), + p.fHash, + p.fPayload.ToBytes(), }, []byte{}, ) diff --git a/pkg/network/network.go b/pkg/network/network.go index bf4aca27..4bd930ed 100644 --- a/pkg/network/network.go +++ b/pkg/network/network.go @@ -28,28 +28,28 @@ type sNode struct { // Creating a node object managed by connections with multiple nodes. // Saves hashes of received messages to a buffer to prevent network cycling. // Redirects messages to handle routers by keys. -func NewNode(sett ISettings) INode { +func NewNode(pSett ISettings) INode { return &sNode{ - fSettings: sett, - fHashMapping: storage.NewMemoryStorage(sett.GetCapacity()), + fSettings: pSett, + fHashMapping: storage.NewMemoryStorage(pSett.GetCapacity()), fConnections: make(map[string]conn.IConn), fHandleRoutes: make(map[uint64]IHandlerF), } } // Return settings interface. -func (node *sNode) GetSettings() ISettings { - return node.fSettings +func (p *sNode) GetSettings() ISettings { + return p.fSettings } // Puts the hash of the message in the buffer and sends the message to all connections of the node. -func (node *sNode) BroadcastPayload(pld payload.IPayload) error { - hasher := hashing.NewSHA256Hasher(pld.ToBytes()) - node.inMappingWithSet(hasher.ToBytes()) +func (p *sNode) BroadcastPayload(pPld payload.IPayload) error { + hasher := hashing.NewSHA256Hasher(pPld.ToBytes()) + p.inMappingWithSet(hasher.ToBytes()) var err error - for _, conn := range node.GetConnections() { - e := conn.WritePayload(pld) + for _, conn := range p.GetConnections() { + e := conn.WritePayload(pPld) if e != nil { err = e } @@ -61,32 +61,32 @@ func (node *sNode) BroadcastPayload(pld payload.IPayload) error { // Opens a tcp connection to receive data from outside. // Checks the number of valid connections. // Redirects connections to the handle router. -func (node *sNode) Run() error { - listener, err := net.Listen("tcp", node.GetSettings().GetAddress()) +func (p *sNode) Run() error { + listener, err := net.Listen("tcp", p.GetSettings().GetAddress()) if err != nil { return err } - go func(l net.Listener) { - defer l.Close() - node.setListener(l) + go func(pListener net.Listener) { + defer pListener.Close() + p.setListener(pListener) for { - tconn, err := node.getListener().Accept() + tconn, err := p.getListener().Accept() if err != nil { break } - if node.hasMaxConnSize() { + if p.hasMaxConnSize() { tconn.Close() continue } - sett := node.GetSettings().GetConnSettings() + sett := p.GetSettings().GetConnSettings() conn := conn.LoadConn(sett, tconn) address := tconn.RemoteAddr().String() - node.setConnection(address, conn) - go node.handleConn(address, conn) + p.setConnection(address, conn) + go p.handleConn(address, conn) } }(listener) @@ -94,39 +94,39 @@ func (node *sNode) Run() error { } // Closes the listener and all connections. -func (node *sNode) Stop() error { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) Stop() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - toClose := make([]types.ICloser, 0, len(node.fConnections)+1) - if node.fListener != nil { - toClose = append(toClose, node.fListener) + toClose := make([]types.ICloser, 0, len(p.fConnections)+1) + if p.fListener != nil { + toClose = append(toClose, p.fListener) } - for id, conn := range node.fConnections { + for id, conn := range p.fConnections { toClose = append(toClose, conn) - delete(node.fConnections, id) + delete(p.fConnections, id) } return types.CloseAll(toClose) } // Saves the function to the map by key for subsequent redirection. -func (node *sNode) HandleFunc(head uint64, handle IHandlerF) INode { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) HandleFunc(pHead uint64, pHandle IHandlerF) INode { + p.fMutex.Lock() + defer p.fMutex.Unlock() - node.fHandleRoutes[head] = handle - return node + p.fHandleRoutes[pHead] = pHandle + return p } // Retrieves the entire list of connections with addresses. -func (node *sNode) GetConnections() map[string]conn.IConn { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) GetConnections() map[string]conn.IConn { + p.fMutex.Lock() + defer p.fMutex.Unlock() - var mapping = make(map[string]conn.IConn, len(node.fConnections)) - for addr, conn := range node.fConnections { + var mapping = make(map[string]conn.IConn, len(p.fConnections)) + for addr, conn := range p.fConnections { mapping[addr] = conn } @@ -135,42 +135,42 @@ func (node *sNode) GetConnections() map[string]conn.IConn { // Connects to the node at the specified address and automatically starts reading all incoming messages. // Checks the number of connections. -func (node *sNode) AddConnect(address string) error { - if node.hasMaxConnSize() { +func (p *sNode) AddConnect(pAddress string) error { + if p.hasMaxConnSize() { return fmt.Errorf("has max connections size") } - sett := node.GetSettings().GetConnSettings() - conn, err := conn.NewConn(sett, address) + sett := p.GetSettings().GetConnSettings() + conn, err := conn.NewConn(sett, pAddress) if err != nil { return err } - node.setConnection(address, conn) - go node.handleConn(address, conn) + p.setConnection(pAddress, conn) + go p.handleConn(pAddress, conn) return nil } // Disables the connection at the address and removes the connection from the connection list. -func (node *sNode) DelConnect(address string) error { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) DelConnect(pAddress string) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - conn, ok := node.fConnections[address] + conn, ok := p.fConnections[pAddress] if !ok { return nil } - delete(node.fConnections, address) + delete(p.fConnections, pAddress) return conn.Close() } // Processes the received data from the connection. -func (node *sNode) handleConn(address string, conn conn.IConn) { - defer node.DelConnect(address) +func (p *sNode) handleConn(pAddress string, pConn conn.IConn) { + defer p.DelConnect(pAddress) for { - ok := node.handleMessage(conn, conn.ReadPayload()) + ok := p.handleMessage(pConn, pConn.ReadPayload()) if !ok { break } @@ -180,83 +180,83 @@ func (node *sNode) handleConn(address string, conn conn.IConn) { // Processes the message for correctness and redirects it to the handler function. // Returns true if the message was successfully redirected to the handler function // > or if the message already existed in the hash value store. -func (node *sNode) handleMessage(conn conn.IConn, pld payload.IPayload) bool { +func (p *sNode) handleMessage(pConn conn.IConn, pPld payload.IPayload) bool { // null message from connection is error - if pld == nil { + if pPld == nil { return false } // check message in mapping by hash - hash := hashing.NewSHA256Hasher(pld.ToBytes()).ToBytes() - if node.inMappingWithSet(hash) { + hash := hashing.NewSHA256Hasher(pPld.ToBytes()).ToBytes() + if p.inMappingWithSet(hash) { return true } // get function by head - f, ok := node.getFunction(pld.GetHead()) + f, ok := p.getFunction(pPld.GetHead()) if !ok || f == nil { return false } - f(node, conn, pld.GetBody()) + f(p, pConn, pPld.GetBody()) return true } // Checks the current number of connections with the limit. -func (node *sNode) hasMaxConnSize() bool { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) hasMaxConnSize() bool { + p.fMutex.Lock() + defer p.fMutex.Unlock() - maxConns := node.GetSettings().GetMaxConnects() - return uint64(len(node.fConnections)) > maxConns + maxConns := p.GetSettings().GetMaxConnects() + return uint64(len(p.fConnections)) > maxConns } // Checks the hash of the message for existence in the hash store. // Returns true if the hash already existed, otherwise false. -func (node *sNode) inMappingWithSet(hash []byte) bool { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) inMappingWithSet(pHash []byte) bool { + p.fMutex.Lock() + defer p.fMutex.Unlock() // skey already exists - _, err := node.fHashMapping.Get(hash) + _, err := p.fHashMapping.Get(pHash) if err == nil { return true } // push skey to mapping - node.fHashMapping.Set(hash, []byte{1}) + p.fHashMapping.Set(pHash, []byte{1}) return false } // Saves the connection to the map. -func (node *sNode) setConnection(address string, conn conn.IConn) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) setConnection(pAddress string, pConn conn.IConn) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - node.fConnections[address] = conn + p.fConnections[pAddress] = pConn } // Gets the handler function by key. -func (node *sNode) getFunction(head uint64) (IHandlerF, bool) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) getFunction(pHead uint64) (IHandlerF, bool) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - f, ok := node.fHandleRoutes[head] + f, ok := p.fHandleRoutes[pHead] return f, ok } // Sets the listener. -func (node *sNode) setListener(listener net.Listener) { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) setListener(pListener net.Listener) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - node.fListener = listener + p.fListener = pListener } // Gets the listener. -func (node *sNode) getListener() net.Listener { - node.fMutex.Lock() - defer node.fMutex.Unlock() +func (p *sNode) getListener() net.Listener { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return node.fListener + return p.fListener } diff --git a/pkg/network/settings.go b/pkg/network/settings.go index c921c89a..eb1cdf73 100644 --- a/pkg/network/settings.go +++ b/pkg/network/settings.go @@ -20,43 +20,43 @@ type sSettings struct { FConnSettings conn.ISettings } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FAddress: sett.FAddress, - FCapacity: sett.FCapacity, - FMaxConnects: sett.FMaxConnects, - FConnSettings: sett.FConnSettings, + FAddress: pSett.FAddress, + FCapacity: pSett.FCapacity, + FMaxConnects: pSett.FMaxConnects, + FConnSettings: pSett.FConnSettings, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { - if s.FAddress == "" { - s.FAddress = cAddress +func (p *sSettings) useDefaultValues() ISettings { + if p.FAddress == "" { + p.FAddress = cAddress } - if s.FCapacity == 0 { - s.FCapacity = cCapacity + if p.FCapacity == 0 { + p.FCapacity = cCapacity } - if s.FMaxConnects == 0 { - s.FMaxConnects = cMaxConnects + if p.FMaxConnects == 0 { + p.FMaxConnects = cMaxConnects } - if s.FConnSettings == nil { - s.FConnSettings = conn.NewSettings(&conn.SSettings{}) + if p.FConnSettings == nil { + p.FConnSettings = conn.NewSettings(&conn.SSettings{}) } - return s + return p } -func (s *sSettings) GetAddress() string { - return s.FAddress +func (p *sSettings) GetAddress() string { + return p.FAddress } -func (s *sSettings) GetCapacity() uint64 { - return s.FCapacity +func (p *sSettings) GetCapacity() uint64 { + return p.FCapacity } -func (s *sSettings) GetMaxConnects() uint64 { - return s.FMaxConnects +func (p *sSettings) GetMaxConnects() uint64 { + return p.FMaxConnects } -func (s *sSettings) GetConnSettings() conn.ISettings { - return s.FConnSettings +func (p *sSettings) GetConnSettings() conn.ISettings { + return p.FConnSettings } diff --git a/pkg/payload/payload.go b/pkg/payload/payload.go index e6c1a1ae..69974de2 100644 --- a/pkg/payload/payload.go +++ b/pkg/payload/payload.go @@ -12,31 +12,31 @@ var ( type sPayload []byte -func NewPayload(head uint64, data []byte) IPayload { - bHead := encoding.Uint64ToBytes(head) +func NewPayload(pHead uint64, pData []byte) IPayload { + bHead := encoding.Uint64ToBytes(pHead) return sPayload(bytes.Join([][]byte{ bHead[:], - data, + pData, }, []byte{})) } -func LoadPayload(payloadBytes []byte) IPayload { - if len(payloadBytes) < encoding.CSizeUint64 { +func LoadPayload(pPayloadBytes []byte) IPayload { + if len(pPayloadBytes) < encoding.CSizeUint64 { return nil } - return sPayload(payloadBytes) + return sPayload(pPayloadBytes) } -func (payload sPayload) GetHead() uint64 { +func (p sPayload) GetHead() uint64 { bHead := [encoding.CSizeUint64]byte{} - copy(bHead[:], payload[:encoding.CSizeUint64]) + copy(bHead[:], p[:encoding.CSizeUint64]) return encoding.BytesToUint64(bHead) } -func (payload sPayload) GetBody() []byte { - return payload[encoding.CSizeUint64:] +func (p sPayload) GetBody() []byte { + return p[encoding.CSizeUint64:] } -func (payload sPayload) ToBytes() []byte { - return payload[:] +func (p sPayload) ToBytes() []byte { + return p[:] } diff --git a/pkg/storage/crypto.go b/pkg/storage/crypto.go index c9fb3333..91bbebf5 100644 --- a/pkg/storage/crypto.go +++ b/pkg/storage/crypto.go @@ -29,14 +29,14 @@ type storageData struct { FSecrets map[string][]byte `json:"secrets"` } -func NewCryptoStorage(path string, key []byte, workSize uint64) (IKeyValueStorage, error) { +func NewCryptoStorage(pPath string, pKey []byte, pWorkSize uint64) (IKeyValueStorage, error) { store := &sCryptoStorage{ - fPath: path, - fWorkSize: workSize, + fPath: pPath, + fWorkSize: pWorkSize, } if store.exists() { - encdata, err := filesystem.OpenFile(path).Read() + encdata, err := filesystem.OpenFile(pPath).Read() if err != nil { return nil, err } @@ -46,7 +46,7 @@ func NewCryptoStorage(path string, key []byte, workSize uint64) (IKeyValueStorag } entropy := entropy.NewEntropyBooster(store.fWorkSize, store.fSalt) - store.fCipher = symmetric.NewAESCipher(entropy.BoostEntropy(key)) + store.fCipher = symmetric.NewAESCipher(entropy.BoostEntropy(pKey)) if !store.exists() { store.Set(nil, nil) @@ -60,9 +60,9 @@ func NewCryptoStorage(path string, key []byte, workSize uint64) (IKeyValueStorag return store, nil } -func (store *sCryptoStorage) Set(key, value []byte) error { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sCryptoStorage) Set(pKey, pValue []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() var ( mapping storageData @@ -70,8 +70,8 @@ func (store *sCryptoStorage) Set(key, value []byte) error { ) // Open and decrypt storage - if store.exists() { - mapping, err = store.decrypt() + if p.exists() { + mapping, err = p.decrypt() if err != nil { return err } @@ -80,34 +80,34 @@ func (store *sCryptoStorage) Set(key, value []byte) error { } // Encrypt and save private key into storage - entropy := entropy.NewEntropyBooster(store.fWorkSize, store.fSalt) - ekey := entropy.BoostEntropy(key) + entropy := entropy.NewEntropyBooster(p.fWorkSize, p.fSalt) + ekey := entropy.BoostEntropy(pKey) hash := hashing.NewSHA256Hasher(ekey).ToString() cipher := symmetric.NewAESCipher(ekey) - mapping.FSecrets[hash] = cipher.EncryptBytes(value) + mapping.FSecrets[hash] = cipher.EncryptBytes(pValue) - return store.encrypt(&mapping) + return p.encrypt(&mapping) } -func (store *sCryptoStorage) Get(key []byte) ([]byte, error) { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sCryptoStorage) Get(pKey []byte) ([]byte, error) { + p.fMutex.Lock() + defer p.fMutex.Unlock() // If storage not exists. - if !store.exists() { + if !p.exists() { return nil, fmt.Errorf("error: storage undefined") } // Open and decrypt storage - mapping, err := store.decrypt() + mapping, err := p.decrypt() if err != nil { return nil, err } // Open and decrypt private key - entropy := entropy.NewEntropyBooster(store.fWorkSize, store.fSalt) - ekey := entropy.BoostEntropy(key) + entropy := entropy.NewEntropyBooster(p.fWorkSize, p.fSalt) + ekey := entropy.BoostEntropy(pKey) hash := hashing.NewSHA256Hasher(ekey).ToString() encsecret, ok := mapping.FSecrets[hash] @@ -121,24 +121,24 @@ func (store *sCryptoStorage) Get(key []byte) ([]byte, error) { return secret, nil } -func (store *sCryptoStorage) Del(key []byte) error { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sCryptoStorage) Del(pKey []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() // If storage not exists. - if !store.exists() { + if !p.exists() { return fmt.Errorf("error: storage undefined") } // Open and decrypt storage - mapping, err := store.decrypt() + mapping, err := p.decrypt() if err != nil { return err } // Open and decrypt private key - entropy := entropy.NewEntropyBooster(store.fWorkSize, store.fSalt) - hash := hashing.NewSHA256Hasher(entropy.BoostEntropy(key)).ToString() + entropy := entropy.NewEntropyBooster(p.fWorkSize, p.fSalt) + hash := hashing.NewSHA256Hasher(entropy.BoostEntropy(pKey)).ToString() _, ok := mapping.FSecrets[hash] if !ok { @@ -146,23 +146,23 @@ func (store *sCryptoStorage) Del(key []byte) error { } delete(mapping.FSecrets, hash) - return store.encrypt(&mapping) + return p.encrypt(&mapping) } -func (store *sCryptoStorage) exists() bool { - return filesystem.OpenFile(store.fPath).IsExist() +func (p *sCryptoStorage) exists() bool { + return filesystem.OpenFile(p.fPath).IsExist() } -func (store *sCryptoStorage) encrypt(mapping *storageData) error { +func (p *sCryptoStorage) encrypt(pMapping *storageData) error { // Encrypt and save storage - data, err := json.Marshal(mapping) + data, err := json.Marshal(pMapping) if err != nil { return err } - err = filesystem.OpenFile(store.fPath).Write( + err = filesystem.OpenFile(p.fPath).Write( bytes.Join( - [][]byte{store.fSalt, store.fCipher.EncryptBytes(data)}, + [][]byte{p.fSalt, p.fCipher.EncryptBytes(data)}, []byte{}, ), ) @@ -173,15 +173,15 @@ func (store *sCryptoStorage) encrypt(mapping *storageData) error { return nil } -func (store *sCryptoStorage) decrypt() (storageData, error) { +func (p *sCryptoStorage) decrypt() (storageData, error) { var mapping storageData - encdata, err := filesystem.OpenFile(store.fPath).Read() + encdata, err := filesystem.OpenFile(p.fPath).Read() if err != nil { return storageData{}, err } - data := store.fCipher.DecryptBytes(encdata[symmetric.CAESKeySize:]) + data := p.fCipher.DecryptBytes(encdata[symmetric.CAESKeySize:]) err = json.Unmarshal(data, &mapping) if err != nil { return storageData{}, err diff --git a/pkg/storage/database/leveldb.go b/pkg/storage/database/leveldb.go index 9d1ea239..9edb5b58 100644 --- a/pkg/storage/database/leveldb.go +++ b/pkg/storage/database/leveldb.go @@ -32,106 +32,106 @@ type sLevelDBIterator struct { fCipher symmetric.ICipher } -func NewLevelDB(sett ISettings) IKeyValueDB { - db, err := leveldb.OpenFile(sett.GetPath(), nil) +func NewLevelDB(pSett ISettings) IKeyValueDB { + db, err := leveldb.OpenFile(pSett.GetPath(), nil) if err != nil { return nil } - salt, err := db.Get(sett.GetSaltKey(), nil) + salt, err := db.Get(pSett.GetSaltKey(), nil) if err != nil { salt = random.NewStdPRNG().GetBytes(symmetric.CAESKeySize) - if err := db.Put(sett.GetSaltKey(), salt, nil); err != nil { + if err := db.Put(pSett.GetSaltKey(), salt, nil); err != nil { return nil } } return &sLevelDB{ fSalt: salt, fDB: db, - fSettings: sett, - fCipher: symmetric.NewAESCipher(sett.GetCipherKey()), + fSettings: pSett, + fCipher: symmetric.NewAESCipher(pSett.GetCipherKey()), } } -func (db *sLevelDB) GetSettings() ISettings { - return db.fSettings +func (p *sLevelDB) GetSettings() ISettings { + return p.fSettings } -func (db *sLevelDB) Set(key []byte, value []byte) error { - db.fMutex.Lock() - defer db.fMutex.Unlock() +func (p *sLevelDB) Set(pKey []byte, pValue []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return db.fDB.Put( - db.tryHash(key), - doEncrypt(db.fCipher, value), + return p.fDB.Put( + p.tryHash(pKey), + doEncrypt(p.fCipher, pValue), nil, ) } -func (db *sLevelDB) Get(key []byte) ([]byte, error) { - db.fMutex.Lock() - defer db.fMutex.Unlock() +func (p *sLevelDB) Get(pKey []byte) ([]byte, error) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - encBytes, err := db.fDB.Get(db.tryHash(key), nil) + encBytes, err := p.fDB.Get(p.tryHash(pKey), nil) if err != nil { return nil, err } return tryDecrypt( - db.fCipher, + p.fCipher, encBytes, ) } -func (db *sLevelDB) Del(key []byte) error { - db.fMutex.Lock() - defer db.fMutex.Unlock() +func (p *sLevelDB) Del(pKey []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return db.fDB.Delete(db.tryHash(key), nil) + return p.fDB.Delete(p.tryHash(pKey), nil) } -func (db *sLevelDB) Close() error { - db.fMutex.Lock() - defer db.fMutex.Unlock() +func (p *sLevelDB) Close() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return db.fDB.Close() + return p.fDB.Close() } // Storage in hashing mode can't iterates -func (db *sLevelDB) GetIterator(prefix []byte) IIterator { - db.fMutex.Lock() - defer db.fMutex.Unlock() +func (p *sLevelDB) GetIterator(pPrefix []byte) IIterator { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if db.fSettings.GetHashing() { + if p.fSettings.GetHashing() { return nil } return &sLevelDBIterator{ - fIter: db.fDB.NewIterator(util.BytesPrefix(prefix), nil), - fCipher: db.fCipher, + fIter: p.fDB.NewIterator(util.BytesPrefix(pPrefix), nil), + fCipher: p.fCipher, } } -func (iter *sLevelDBIterator) Next() bool { - iter.fMutex.Lock() - defer iter.fMutex.Unlock() +func (p *sLevelDBIterator) Next() bool { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return iter.fIter.Next() + return p.fIter.Next() } -func (iter *sLevelDBIterator) GetKey() []byte { - iter.fMutex.Lock() - defer iter.fMutex.Unlock() +func (p *sLevelDBIterator) GetKey() []byte { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return iter.fIter.Key() + return p.fIter.Key() } -func (iter *sLevelDBIterator) GetValue() []byte { - iter.fMutex.Lock() - defer iter.fMutex.Unlock() +func (p *sLevelDBIterator) GetValue() []byte { + p.fMutex.Lock() + defer p.fMutex.Unlock() decBytes, err := tryDecrypt( - iter.fCipher, - iter.fIter.Value(), + p.fCipher, + p.fIter.Value(), ) if err != nil { return nil @@ -139,40 +139,40 @@ func (iter *sLevelDBIterator) GetValue() []byte { return decBytes } -func (iter *sLevelDBIterator) Close() error { - iter.fMutex.Lock() - defer iter.fMutex.Unlock() +func (p *sLevelDBIterator) Close() error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - iter.fIter.Release() + p.fIter.Release() return nil } -func doEncrypt(cipher symmetric.ICipher, dataBytes []byte) []byte { +func doEncrypt(pCipher symmetric.ICipher, pDataBytes []byte) []byte { return bytes.Join( [][]byte{ hashing.NewHMACSHA256Hasher( - cipher.ToBytes(), - dataBytes, + pCipher.ToBytes(), + pDataBytes, ).ToBytes(), - cipher.EncryptBytes(dataBytes), + pCipher.EncryptBytes(pDataBytes), }, []byte{}, ) } -func tryDecrypt(cipher symmetric.ICipher, encBytes []byte) ([]byte, error) { - if len(encBytes) < hashing.CSHA256Size+symmetric.CAESBlockSize { +func tryDecrypt(pCipher symmetric.ICipher, pEncBytes []byte) ([]byte, error) { + if len(pEncBytes) < hashing.CSHA256Size+symmetric.CAESBlockSize { return nil, fmt.Errorf("incorrect size of encrypted data") } - decBytes := cipher.DecryptBytes(encBytes[hashing.CSHA256Size:]) + decBytes := pCipher.DecryptBytes(pEncBytes[hashing.CSHA256Size:]) if decBytes == nil { return nil, fmt.Errorf("failed decrypt message") } - gotHashed := encBytes[:hashing.CSHA256Size] + gotHashed := pEncBytes[:hashing.CSHA256Size] newHashed := hashing.NewHMACSHA256Hasher( - cipher.ToBytes(), + pCipher.ToBytes(), decBytes, ).ToBytes() @@ -183,14 +183,14 @@ func tryDecrypt(cipher symmetric.ICipher, encBytes []byte) ([]byte, error) { return decBytes, nil } -func (db *sLevelDB) tryHash(key []byte) []byte { - if !db.fSettings.GetHashing() { - return key +func (p *sLevelDB) tryHash(pKey []byte) []byte { + if !p.fSettings.GetHashing() { + return pKey } saltWithKey := bytes.Join( [][]byte{ - db.fSalt, - key, + p.fSalt, + pKey, }, []byte{}, ) diff --git a/pkg/storage/database/settings.go b/pkg/storage/database/settings.go index 7ffe8dc7..002ddab4 100644 --- a/pkg/storage/database/settings.go +++ b/pkg/storage/database/settings.go @@ -18,40 +18,40 @@ type sSettings struct { FCipherKey []byte } -func NewSettings(sett *SSettings) ISettings { +func NewSettings(pSett *SSettings) ISettings { return (&sSettings{ - FPath: sett.FPath, - FHashing: sett.FHashing, - FSaltKey: sett.FSaltKey, - FCipherKey: sett.FCipherKey, + FPath: pSett.FPath, + FHashing: pSett.FHashing, + FSaltKey: pSett.FSaltKey, + FCipherKey: pSett.FCipherKey, }).useDefaultValues() } -func (s *sSettings) useDefaultValues() ISettings { - if s.FPath == "" { - s.FPath = cPath +func (p *sSettings) useDefaultValues() ISettings { + if p.FPath == "" { + p.FPath = cPath } - if s.FSaltKey == nil { - s.FSaltKey = []byte(cSaltKey) + if p.FSaltKey == nil { + p.FSaltKey = []byte(cSaltKey) } - if s.FCipherKey == nil { - s.FCipherKey = []byte(cCipherKey) + if p.FCipherKey == nil { + p.FCipherKey = []byte(cCipherKey) } - return s + return p } -func (s *sSettings) GetPath() string { - return s.FPath +func (p *sSettings) GetPath() string { + return p.FPath } -func (s *sSettings) GetSaltKey() []byte { - return s.FSaltKey +func (p *sSettings) GetSaltKey() []byte { + return p.FSaltKey } -func (s *sSettings) GetHashing() bool { - return s.FHashing +func (p *sSettings) GetHashing() bool { + return p.FHashing } -func (s *sSettings) GetCipherKey() []byte { - return s.FCipherKey +func (p *sSettings) GetCipherKey() []byte { + return p.FCipherKey } diff --git a/pkg/storage/memory.go b/pkg/storage/memory.go index 2526be19..5f7f3ef3 100644 --- a/pkg/storage/memory.go +++ b/pkg/storage/memory.go @@ -18,35 +18,35 @@ type sMemoryStorage struct { fMapping map[string][]byte } -func NewMemoryStorage(max uint64) IKeyValueStorage { +func NewMemoryStorage(pMaximum uint64) IKeyValueStorage { return &sMemoryStorage{ - fMaximum: max, - fKeyQueue: make([]string, 0, max), - fMapping: make(map[string][]byte, max), + fMaximum: pMaximum, + fKeyQueue: make([]string, 0, pMaximum), + fMapping: make(map[string][]byte, pMaximum), } } -func (store *sMemoryStorage) Set(key, value []byte) error { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sMemoryStorage) Set(pKey, pValue []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - if uint64(len(store.fMapping)) >= store.fMaximum { - delete(store.fMapping, store.fKeyQueue[0]) - store.fKeyQueue = store.fKeyQueue[1:] + if uint64(len(p.fMapping)) >= p.fMaximum { + delete(p.fMapping, p.fKeyQueue[0]) + p.fKeyQueue = p.fKeyQueue[1:] } - newKey := encoding.HexEncode(key) + newKey := encoding.HexEncode(pKey) - store.fKeyQueue = append(store.fKeyQueue, newKey) - store.fMapping[newKey] = value + p.fKeyQueue = append(p.fKeyQueue, newKey) + p.fMapping[newKey] = pValue return nil } -func (store *sMemoryStorage) Get(key []byte) ([]byte, error) { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sMemoryStorage) Get(pKey []byte) ([]byte, error) { + p.fMutex.Lock() + defer p.fMutex.Unlock() - value, ok := store.fMapping[encoding.HexEncode(key)] + value, ok := p.fMapping[encoding.HexEncode(pKey)] if !ok { return nil, fmt.Errorf("undefined value by key") } @@ -54,15 +54,15 @@ func (store *sMemoryStorage) Get(key []byte) ([]byte, error) { return value, nil } -func (store *sMemoryStorage) Del(key []byte) error { - store.fMutex.Lock() - defer store.fMutex.Unlock() +func (p *sMemoryStorage) Del(pKey []byte) error { + p.fMutex.Lock() + defer p.fMutex.Unlock() - _, ok := store.fMapping[encoding.HexEncode(key)] + _, ok := p.fMapping[encoding.HexEncode(pKey)] if !ok { return fmt.Errorf("undefined value by key") } - delete(store.fMapping, encoding.HexEncode(key)) + delete(p.fMapping, encoding.HexEncode(pKey)) return nil } diff --git a/pkg/types/closer.go b/pkg/types/closer.go index 2603a244..9264f0f5 100644 --- a/pkg/types/closer.go +++ b/pkg/types/closer.go @@ -1,9 +1,9 @@ package types // returns last error from slice -func CloseAll(cs []ICloser) error { +func CloseAll(pClosers []ICloser) error { var lastErr error - for _, c := range cs { + for _, c := range pClosers { if err := c.Close(); err != nil { lastErr = err } diff --git a/pkg/types/stopper.go b/pkg/types/stopper.go index 65adb4f0..482c2ba9 100644 --- a/pkg/types/stopper.go +++ b/pkg/types/stopper.go @@ -1,9 +1,9 @@ package types // returns last error from slice -func StopAll(cs []ICommand) error { +func StopAll(pCommands []ICommand) error { var lastErr error - for _, c := range cs { + for _, c := range pCommands { if err := c.Stop(); err != nil { lastErr = err } diff --git a/pkg/wrapper/wrapper.go b/pkg/wrapper/wrapper.go index a33532ad..db3da3ee 100644 --- a/pkg/wrapper/wrapper.go +++ b/pkg/wrapper/wrapper.go @@ -17,17 +17,17 @@ func NewWrapper() IWrapper { return &sWrapper{fValue: new(interface{})} } -func (w *sWrapper) Get() interface{} { - w.fMutex.Lock() - defer w.fMutex.Unlock() +func (p *sWrapper) Get() interface{} { + p.fMutex.Lock() + defer p.fMutex.Unlock() - return (*w.fValue) + return (*p.fValue) } -func (w *sWrapper) Set(v interface{}) IWrapper { - w.fMutex.Lock() - defer w.fMutex.Unlock() +func (p *sWrapper) Set(pValue interface{}) IWrapper { + p.fMutex.Lock() + defer p.fMutex.Unlock() - (*w.fValue) = v - return w + (*p.fValue) = pValue + return p } diff --git a/test/result/coverage.out b/test/result/coverage.out index 0e7ae1ca..779b0210 100644 --- a/test/result/coverage.out +++ b/test/result/coverage.out @@ -35,49 +35,6 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:21.2,21.1 github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:21.15,22.36 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:22.36,23.14 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:27.2,27.12 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:25.13,31.56 2 1 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:31.56,33.3 1 1 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:34.2,34.66 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:34.66,35.13 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:39.13,42.23 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:42.23,43.28 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:46.2,47.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:47.16,48.13 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:51.2,55.52 4 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:58.55,59.33 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:59.33,62.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:64.2,65.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:65.16,68.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:70.2,70.42 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:70.42,73.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:75.2,75.20 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:78.55,79.32 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.32,82.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:84.2,85.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:85.16,88.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.2,90.30 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:93.55,94.32 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:94.32,97.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:99.2,103.16 4 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.16,106.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:108.2,109.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:109.16,112.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:114.2,114.60 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:117.40,119.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:119.16,121.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:123.2,124.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:124.16,126.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:128.2,128.19 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:131.52,133.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:133.16,135.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:137.2,137.18 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:140.38,145.16 4 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:145.16,147.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:149.2,149.71 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:149.71,151.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:153.2,153.89 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:153.89,155.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:157.2,157.12 1 0 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:28.13,34.56 2 1 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:34.56,36.3 1 1 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:37.2,37.83 1 0 @@ -131,30 +88,49 @@ github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:201.16 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:205.2,205.89 1 0 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:205.89,207.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:209.2,209.12 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:44.18,46.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:46.16,47.13 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:50.2,75.3 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:78.30,82.16 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:82.16,84.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:85.2,89.12 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:89.12,91.58 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:91.58,94.4 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:97.2,97.12 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:97.12,99.58 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:99.58,102.4 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:105.2,105.9 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:106.20,108.13 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:109.31,111.13 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:115.31,119.17 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:119.17,121.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:122.2,132.4 4 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:18.16,26.2 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:31.16,55.2 14 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:57.76,58.71 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:58.71,59.56 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:59.56,62.4 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:63.3,63.38 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_storage.go:9.78,15.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:25.13,31.56 2 1 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:31.56,33.3 1 1 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:34.2,34.66 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:34.66,35.13 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:39.13,42.23 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:42.23,43.28 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:46.2,47.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:47.16,48.13 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:51.2,55.52 4 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:58.55,59.33 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:59.33,62.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:64.2,65.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:65.16,68.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:70.2,70.42 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:70.42,73.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:75.2,75.20 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:78.55,79.32 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.32,82.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:84.2,85.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:85.16,88.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.2,90.30 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:93.55,94.32 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:94.32,97.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:99.2,103.16 4 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.16,106.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:108.2,109.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:109.16,112.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:114.2,114.60 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:117.40,119.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:119.16,121.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:123.2,124.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:124.16,126.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:128.2,128.19 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:131.52,133.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:133.16,135.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:137.2,137.18 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:140.38,145.16 4 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:145.16,147.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:149.2,149.71 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:149.71,151.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:153.2,153.89 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:153.89,155.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:157.2,157.12 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:19.40,24.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:26.30,34.2 5 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:36.59,37.15 1 0 @@ -197,6 +173,81 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:132.41,134.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:136.41,138.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:140.41,142.2 1 1 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:16.57,27.2 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:29.49,34.2 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:36.81,40.17 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:40.17,42.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:44.2,45.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:45.16,47.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:49.2,50.31 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:50.31,52.17 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:52.17,54.4 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:55.3,56.17 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:56.17,58.4 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:59.3,59.25 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:62.2,62.17 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:65.62,70.16 4 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:70.16,72.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.2,75.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:75.16,77.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:79.2,81.16 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:81.16,83.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:85.2,86.50 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:89.38,94.2 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:96.52,98.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:98.16,100.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:102.2,104.36 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:13.37,19.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:21.56,28.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:30.59,37.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:22.75,33.2 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:35.44,37.46 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:37.46,39.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:40.2,41.22 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:41.22,43.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:44.2,49.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:52.40,54.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:56.44,58.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:60.42,62.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:64.44,66.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:68.37,70.21 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:70.21,72.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:73.2,81.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:14.60,19.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:21.46,23.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:25.49,27.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:18.32,20.2 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:22.40,27.9 4 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:27.9,29.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:31.2,31.11 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:34.53,40.2 4 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:42.36,47.9 4 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:47.9,49.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:51.2,52.19 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:44.18,46.16 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:46.16,47.13 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:50.2,75.3 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:78.30,82.16 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:82.16,84.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:85.2,89.12 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:89.12,91.58 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:91.58,94.4 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:97.2,97.12 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:97.12,99.58 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:99.58,102.4 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:105.2,105.9 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:106.20,108.13 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:109.31,111.13 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:115.31,119.17 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:119.17,121.3 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/app.go:122.2,132.4 4 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:18.16,26.2 3 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:31.16,55.2 14 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:57.76,58.71 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:58.71,59.56 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:59.56,62.4 2 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_service.go:63.3,63.38 1 0 +github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/init_storage.go:9.78,15.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/clear.go:8.43,9.47 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/clear.go:9.47,11.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/clear.go:13.2,13.47 1 0 @@ -314,57 +365,6 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/update github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/updater.go:31.67,38.55 2 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/updater.go:38.55,40.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state/updater.go:42.2,47.25 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:16.57,27.2 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:29.49,34.2 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:36.81,40.17 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:40.17,42.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:44.2,45.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:45.16,47.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:49.2,50.31 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:50.31,52.17 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:52.17,54.4 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:55.3,56.17 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:56.17,58.4 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:59.3,59.25 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:62.2,62.17 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:65.62,70.16 4 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:70.16,72.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.2,75.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:75.16,77.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:79.2,81.16 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:81.16,83.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:85.2,86.50 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:89.38,94.2 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:96.52,98.16 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:98.16,100.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:102.2,104.36 3 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:13.37,19.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:21.56,28.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:30.59,37.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:22.75,33.2 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:35.44,37.46 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:37.46,39.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:40.2,41.22 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:41.22,43.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:44.2,49.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:52.40,54.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:56.44,58.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:60.42,62.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:64.44,66.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:68.37,70.21 2 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:70.21,72.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:73.2,81.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:14.60,19.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:21.46,23.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:25.49,27.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:18.32,20.2 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:22.40,27.9 4 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:27.9,29.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:31.2,31.11 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:34.53,40.2 4 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:42.36,47.9 4 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:47.9,49.3 1 0 -github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/wrapper.go:51.2,52.19 2 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:26.28,27.19 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:27.19,29.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:30.2,31.16 2 0 @@ -746,7 +746,6 @@ github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:197 github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:199.14,200.12 1 0 github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:202.3,202.29 1 0 github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:204.2,204.15 1 0 -github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings/init_client.go:8.61,16.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/init_app.go:9.40,11.16 2 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/init_app.go:11.16,13.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/init_app.go:15.2,15.29 1 0 @@ -761,6 +760,7 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:21.2,21.15 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:21.15,22.36 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:22.36,23.14 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:27.2,27.12 1 0 +github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings/init_client.go:8.61,16.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:34.66,37.26 2 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:37.26,39.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:41.2,41.66 1 1 @@ -790,6 +790,11 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:116.41,118.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:120.41,122.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:124.41,126.2 1 1 +github.com/number571/go-peer/cmd/union_blockchain/logger.go:12.21,17.2 1 0 +github.com/number571/go-peer/cmd/union_blockchain/logger.go:19.105,23.2 2 0 +github.com/number571/go-peer/cmd/union_blockchain/logger.go:25.90,29.2 2 0 +github.com/number571/go-peer/cmd/union_blockchain/logger.go:31.102,34.2 1 0 +github.com/number571/go-peer/cmd/union_blockchain/main.go:4.14,6.2 0 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/builder.go:17.28,19.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/builder.go:21.77,25.2 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/builder.go:27.86,31.2 1 0 @@ -815,11 +820,6 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:73. github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:80.16,82.3 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:84.2,84.17 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:87.75,95.2 2 0 -github.com/number571/go-peer/cmd/union_blockchain/logger.go:12.21,17.2 1 0 -github.com/number571/go-peer/cmd/union_blockchain/logger.go:19.105,23.2 2 0 -github.com/number571/go-peer/cmd/union_blockchain/logger.go:25.90,29.2 2 0 -github.com/number571/go-peer/cmd/union_blockchain/logger.go:31.102,34.2 1 0 -github.com/number571/go-peer/cmd/union_blockchain/main.go:4.14,6.2 0 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:21.48,27.20 2 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:27.20,28.35 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:30.2,35.11 3 1 @@ -974,11 +974,6 @@ github.com/number571/go-peer/internal/api/request.go:60.2,60.32 1 0 github.com/number571/go-peer/internal/api/request.go:60.32,62.3 1 0 github.com/number571/go-peer/internal/api/request.go:64.2,64.18 1 0 github.com/number571/go-peer/internal/api/response.go:8.59,14.2 2 0 -github.com/number571/go-peer/internal/pprof/pprof.go:16.38,24.2 3 0 -github.com/number571/go-peer/internal/pprof/pprof.go:26.61,27.35 1 0 -github.com/number571/go-peer/internal/pprof/pprof.go:27.35,32.57 4 0 -github.com/number571/go-peer/internal/pprof/pprof.go:32.57,35.4 2 0 -github.com/number571/go-peer/internal/pprof/pprof.go:38.2,38.69 1 0 github.com/number571/go-peer/cmd/union_blockchain/kernel/transaction/settings.go:16.45,20.2 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/transaction/settings.go:22.50,23.21 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/transaction/settings.go:23.21,25.3 1 1 @@ -1068,33 +1063,87 @@ github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool/settings.go:31. github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool/settings.go:34.2,34.10 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool/settings.go:37.45,39.2 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool/settings.go:41.59,43.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:38.56,40.50 2 1 +github.com/number571/go-peer/internal/pprof/pprof.go:16.38,24.2 3 0 +github.com/number571/go-peer/internal/pprof/pprof.go:26.61,27.35 1 0 +github.com/number571/go-peer/internal/pprof/pprof.go:27.35,32.57 4 0 +github.com/number571/go-peer/internal/pprof/pprof.go:32.57,35.4 2 0 +github.com/number571/go-peer/internal/pprof/pprof.go:38.2,38.69 1 0 +github.com/number571/go-peer/pkg/client/message/message.go:38.57,40.50 2 1 github.com/number571/go-peer/pkg/client/message/message.go:40.50,42.3 1 0 -github.com/number571/go-peer/pkg/client/message/message.go:43.2,43.26 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:43.26,45.3 1 0 +github.com/number571/go-peer/pkg/client/message/message.go:43.2,43.27 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:43.27,45.3 1 0 github.com/number571/go-peer/pkg/client/message/message.go:46.2,46.12 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:49.38,51.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:53.38,55.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:57.39,59.16 2 1 +github.com/number571/go-peer/pkg/client/message/message.go:49.36,51.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:53.36,55.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:57.37,59.16 2 1 github.com/number571/go-peer/pkg/client/message/message.go:59.16,61.3 1 0 github.com/number571/go-peer/pkg/client/message/message.go:62.2,62.17 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:65.51,66.58 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:66.58,68.3 1 0 -github.com/number571/go-peer/pkg/client/message/message.go:69.2,69.57 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:69.57,71.3 1 0 -github.com/number571/go-peer/pkg/client/message/message.go:72.2,73.78 2 1 -github.com/number571/go-peer/pkg/client/message/message.go:78.45,80.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:82.46,84.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:86.43,88.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:92.56,94.2 1 0 -github.com/number571/go-peer/pkg/client/message/message.go:96.43,98.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:100.43,102.2 1 1 -github.com/number571/go-peer/pkg/client/message/message.go:104.44,106.41 2 1 +github.com/number571/go-peer/pkg/client/message/message.go:65.50,66.57 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:66.57,68.3 1 0 +github.com/number571/go-peer/pkg/client/message/message.go:69.2,69.55 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:69.55,71.3 1 0 +github.com/number571/go-peer/pkg/client/message/message.go:72.2,73.74 2 1 +github.com/number571/go-peer/pkg/client/message/message.go:78.42,80.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:82.43,84.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:86.40,88.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:92.53,94.2 1 0 +github.com/number571/go-peer/pkg/client/message/message.go:96.40,98.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:100.40,102.2 1 1 +github.com/number571/go-peer/pkg/client/message/message.go:104.41,106.41 2 1 github.com/number571/go-peer/pkg/client/message/message.go:106.41,108.3 1 0 github.com/number571/go-peer/pkg/client/message/message.go:109.2,111.36 3 1 -github.com/number571/go-peer/pkg/client/message/params.go:12.50,17.2 1 1 +github.com/number571/go-peer/pkg/client/message/params.go:12.52,17.2 1 1 github.com/number571/go-peer/pkg/client/message/params.go:19.43,21.2 1 1 github.com/number571/go-peer/pkg/client/message/params.go:23.40,25.2 1 1 +github.com/number571/go-peer/pkg/client/client.go:30.71,46.2 4 1 +github.com/number571/go-peer/pkg/client/client.go:49.50,51.2 1 1 +github.com/number571/go-peer/pkg/client/client.go:54.52,56.2 1 1 +github.com/number571/go-peer/pkg/client/client.go:59.43,61.2 1 1 +github.com/number571/go-peer/pkg/client/client.go:65.109,66.48 1 1 +github.com/number571/go-peer/pkg/client/client.go:66.48,68.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:70.2,75.29 2 1 +github.com/number571/go-peer/pkg/client/client.go:75.29,81.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:83.2,88.8 1 1 +github.com/number571/go-peer/pkg/client/client.go:91.128,134.2 7 1 +github.com/number571/go-peer/pkg/client/client.go:138.103,139.17 1 1 +github.com/number571/go-peer/pkg/client/client.go:139.17,141.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:144.2,144.58 1 1 +github.com/number571/go-peer/pkg/client/client.go:144.58,146.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:149.2,151.78 3 1 +github.com/number571/go-peer/pkg/client/client.go:151.78,153.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:156.2,157.20 2 1 +github.com/number571/go-peer/pkg/client/client.go:157.20,159.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:162.2,164.24 3 1 +github.com/number571/go-peer/pkg/client/client.go:164.24,166.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:169.2,170.19 2 1 +github.com/number571/go-peer/pkg/client/client.go:170.19,172.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:173.2,173.49 1 1 +github.com/number571/go-peer/pkg/client/client.go:173.49,175.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:178.2,179.31 2 1 +github.com/number571/go-peer/pkg/client/client.go:179.31,181.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:182.2,183.26 2 1 +github.com/number571/go-peer/pkg/client/client.go:183.26,185.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:188.2,189.17 2 1 +github.com/number571/go-peer/pkg/client/client.go:189.17,191.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:194.2,202.51 2 1 +github.com/number571/go-peer/pkg/client/client.go:202.51,204.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:208.2,209.17 2 1 +github.com/number571/go-peer/pkg/client/client.go:209.17,211.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:212.2,212.57 1 1 +github.com/number571/go-peer/pkg/client/client.go:212.57,214.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:217.2,218.52 2 1 +github.com/number571/go-peer/pkg/client/client.go:218.52,220.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:221.2,222.16 2 1 +github.com/number571/go-peer/pkg/client/client.go:222.16,224.3 1 0 +github.com/number571/go-peer/pkg/client/client.go:227.2,227.25 1 1 +github.com/number571/go-peer/pkg/client/settings.go:18.46,23.2 1 1 +github.com/number571/go-peer/pkg/client/settings.go:25.50,26.22 1 1 +github.com/number571/go-peer/pkg/client/settings.go:26.22,28.3 1 0 +github.com/number571/go-peer/pkg/client/settings.go:29.2,29.25 1 1 +github.com/number571/go-peer/pkg/client/settings.go:29.25,31.3 1 0 +github.com/number571/go-peer/pkg/client/settings.go:32.2,32.10 1 1 +github.com/number571/go-peer/pkg/client/settings.go:35.42,37.2 1 1 +github.com/number571/go-peer/pkg/client/settings.go:39.45,41.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/hashes.go:12.64,13.54 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/hashes.go:13.54,14.33 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/hashes.go:14.33,17.4 2 0 @@ -1119,77 +1168,28 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:65.4,65.45 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:65.45,68.5 2 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:70.4,78.10 3 1 -github.com/number571/go-peer/pkg/client/client.go:30.66,46.2 4 1 -github.com/number571/go-peer/pkg/client/client.go:49.55,51.2 1 1 -github.com/number571/go-peer/pkg/client/client.go:54.57,56.2 1 1 -github.com/number571/go-peer/pkg/client/client.go:59.48,61.2 1 1 -github.com/number571/go-peer/pkg/client/client.go:65.116,66.56 1 1 -github.com/number571/go-peer/pkg/client/client.go:66.56,68.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:70.2,75.29 2 1 -github.com/number571/go-peer/pkg/client/client.go:75.29,81.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:83.2,88.8 1 1 -github.com/number571/go-peer/pkg/client/client.go:91.136,134.2 7 1 -github.com/number571/go-peer/pkg/client/client.go:138.107,139.16 1 1 -github.com/number571/go-peer/pkg/client/client.go:139.16,141.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:144.2,144.57 1 1 -github.com/number571/go-peer/pkg/client/client.go:144.57,146.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:149.2,151.76 3 1 -github.com/number571/go-peer/pkg/client/client.go:151.76,153.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:156.2,157.20 2 1 -github.com/number571/go-peer/pkg/client/client.go:157.20,159.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:162.2,164.24 3 1 -github.com/number571/go-peer/pkg/client/client.go:164.24,166.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:169.2,170.19 2 1 -github.com/number571/go-peer/pkg/client/client.go:170.19,172.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:173.2,173.54 1 1 -github.com/number571/go-peer/pkg/client/client.go:173.54,175.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:178.2,179.31 2 1 -github.com/number571/go-peer/pkg/client/client.go:179.31,181.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:182.2,183.26 2 1 -github.com/number571/go-peer/pkg/client/client.go:183.26,185.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:188.2,189.17 2 1 -github.com/number571/go-peer/pkg/client/client.go:189.17,191.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:194.2,202.50 2 1 -github.com/number571/go-peer/pkg/client/client.go:202.50,204.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:208.2,209.17 2 1 -github.com/number571/go-peer/pkg/client/client.go:209.17,211.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:212.2,212.56 1 1 -github.com/number571/go-peer/pkg/client/client.go:212.56,214.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:217.2,218.52 2 1 -github.com/number571/go-peer/pkg/client/client.go:218.52,220.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:221.2,222.16 2 1 -github.com/number571/go-peer/pkg/client/client.go:222.16,224.3 1 0 -github.com/number571/go-peer/pkg/client/client.go:227.2,227.25 1 1 -github.com/number571/go-peer/pkg/client/settings.go:18.45,23.2 1 1 -github.com/number571/go-peer/pkg/client/settings.go:25.50,26.22 1 1 -github.com/number571/go-peer/pkg/client/settings.go:26.22,28.3 1 0 -github.com/number571/go-peer/pkg/client/settings.go:29.2,29.25 1 1 -github.com/number571/go-peer/pkg/client/settings.go:29.25,31.3 1 0 -github.com/number571/go-peer/pkg/client/settings.go:32.2,32.10 1 1 -github.com/number571/go-peer/pkg/client/settings.go:35.42,37.2 1 1 -github.com/number571/go-peer/pkg/client/settings.go:39.45,41.2 1 1 -github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:21.43,27.2 3 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:20.41,24.2 1 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:28.57,36.29 3 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:36.29,46.32 4 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:46.32,48.4 1 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:49.3,49.10 1 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:51.2,51.14 1 0 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:55.70,69.2 7 1 +github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:71.28,73.2 1 1 +github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:21.44,27.2 3 1 github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:29.43,31.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:33.42,35.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:37.42,39.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:41.42,43.2 1 0 -github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:17.59,23.2 3 1 +github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:17.61,23.2 3 1 github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:25.47,27.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:29.46,31.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:33.46,35.2 1 1 github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:37.46,39.2 1 0 -github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:18.66,23.2 1 1 -github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:26.60,29.35 2 1 -github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:29.35,37.3 1 1 -github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:39.2,39.13 1 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:20.40,22.2 1 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:26.62,34.29 3 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:34.29,44.32 4 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:44.32,46.4 1 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:47.3,47.10 1 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:49.2,49.14 1 0 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:53.75,67.2 7 1 -github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:69.28,71.2 1 1 +github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:18.68,23.2 1 1 +github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:26.61,32.35 2 1 +github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:32.35,40.3 1 1 +github.com/number571/go-peer/pkg/crypto/entropy/entropy.go:42.2,42.13 1 1 github.com/number571/go-peer/pkg/crypto/random/random.go:16.25,18.2 1 1 github.com/number571/go-peer/pkg/crypto/random/random.go:21.46,24.16 3 1 github.com/number571/go-peer/pkg/crypto/random/random.go:24.16,26.13 1 0 @@ -1197,11 +1197,11 @@ github.com/number571/go-peer/pkg/crypto/random/random.go:28.2,28.14 1 1 github.com/number571/go-peer/pkg/crypto/random/random.go:32.47,34.2 1 1 github.com/number571/go-peer/pkg/crypto/random/random.go:37.39,41.2 3 1 github.com/number571/go-peer/pkg/crypto/random/random.go:44.35,46.2 1 0 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:42.51,47.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:50.42,52.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:42.52,47.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:50.43,52.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:52.16,54.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:55.2,55.28 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:58.55,59.33 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:58.52,59.30 1 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:60.14,62.21 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:62.21,64.4 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:65.3,65.29 1 1 @@ -1213,25 +1213,25 @@ github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:81.3,84.17 3 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:84.17,86.4 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:87.3,87.32 1 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:88.10,89.28 1 0 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:93.57,95.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:97.54,99.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:101.45,103.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:105.42,107.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:109.43,111.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:113.42,115.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:117.42,119.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:122.57,124.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:93.56,95.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:97.53,99.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:101.43,103.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:105.40,107.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:109.41,111.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:113.40,115.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:117.40,119.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:122.58,124.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:124.16,126.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:127.2,127.13 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:131.59,133.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:131.64,133.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:133.16,135.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:136.2,136.13 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:140.53,142.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:144.53,146.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:140.57,142.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:144.58,146.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:146.16,148.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:149.2,149.18 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:161.47,166.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:168.48,169.28 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:161.48,166.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:168.49,169.29 1 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:170.14,172.17 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:172.17,174.4 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:175.3,175.24 1 1 @@ -1243,87 +1243,47 @@ github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:191.3,194.17 3 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:194.17,196.4 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:197.3,197.31 1 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:198.10,199.28 1 0 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:203.56,205.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:207.46,209.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:211.65,213.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:215.41,217.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:219.42,221.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:223.41,225.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:227.41,229.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:239.49,245.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:247.40,249.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:251.41,253.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:255.40,257.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:259.40,261.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:264.57,266.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:203.55,205.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:207.44,209.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:211.66,213.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:215.39,217.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:219.40,221.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:223.39,225.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:227.39,229.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:239.50,245.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:247.37,249.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:251.38,253.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:255.37,257.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:259.37,261.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:264.62,266.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:266.16,268.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:269.2,269.13 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:273.54,275.16 2 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:273.55,275.16 2 1 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:275.16,277.3 1 0 github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:278.2,278.12 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:282.50,284.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:287.58,289.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:291.38,296.2 4 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:282.54,284.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:287.64,289.2 1 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:291.39,297.2 5 1 github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:17.36,21.2 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:24.52,30.2 4 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:24.56,30.2 4 1 github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:33.47,38.33 4 1 github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:38.33,40.3 1 1 github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:42.2,42.13 1 1 -github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:46.47,51.2 3 1 +github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:46.51,51.2 3 1 github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:54.47,59.2 3 1 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:26.39,30.2 1 1 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:32.56,34.16 2 1 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:26.40,30.2 1 1 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:32.55,34.16 2 1 github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:34.16,36.3 1 0 github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:38.2,46.15 7 1 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:49.56,51.16 2 1 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:49.55,51.16 2 1 github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:51.16,53.3 1 0 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:55.2,56.26 2 1 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:56.26,58.3 1 0 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:55.2,56.27 2 1 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:56.27,58.3 1 0 github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:60.2,64.15 4 1 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:67.42,69.2 1 0 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:71.41,73.2 1 0 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:75.41,77.2 1 0 -github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:79.41,81.2 1 0 -github.com/number571/go-peer/pkg/encoding/bytes.go:17.50,22.16 4 1 -github.com/number571/go-peer/pkg/encoding/bytes.go:22.16,23.13 1 0 -github.com/number571/go-peer/pkg/encoding/bytes.go:26.2,27.12 2 1 -github.com/number571/go-peer/pkg/encoding/bytes.go:31.52,33.2 1 1 -github.com/number571/go-peer/pkg/encoding/hex.go:5.36,7.2 1 1 -github.com/number571/go-peer/pkg/encoding/hex.go:9.36,11.16 2 1 -github.com/number571/go-peer/pkg/encoding/hex.go:11.16,13.3 1 0 -github.com/number571/go-peer/pkg/encoding/hex.go:14.2,14.15 1 1 -github.com/number571/go-peer/pkg/encoding/serialize.go:5.41,7.16 2 1 -github.com/number571/go-peer/pkg/encoding/serialize.go:7.16,9.3 1 0 -github.com/number571/go-peer/pkg/encoding/serialize.go:10.2,10.12 1 1 -github.com/number571/go-peer/pkg/encoding/serialize.go:13.54,15.2 1 1 -github.com/number571/go-peer/pkg/filesystem/file.go:15.34,19.2 1 1 -github.com/number571/go-peer/pkg/filesystem/file.go:21.43,23.16 2 1 -github.com/number571/go-peer/pkg/filesystem/file.go:23.16,25.3 1 1 -github.com/number571/go-peer/pkg/filesystem/file.go:26.2,26.18 1 1 -github.com/number571/go-peer/pkg/filesystem/file.go:29.45,31.2 1 1 -github.com/number571/go-peer/pkg/filesystem/file.go:33.35,36.2 2 1 -github.com/number571/go-peer/pkg/logger/logger.go:26.40,32.23 3 1 -github.com/number571/go-peer/pkg/logger/logger.go:32.23,34.3 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:36.2,37.23 2 1 -github.com/number571/go-peer/pkg/logger/logger.go:37.23,39.3 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:41.2,42.23 2 1 -github.com/number571/go-peer/pkg/logger/logger.go:42.23,44.3 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:46.2,46.15 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:49.43,51.2 1 0 -github.com/number571/go-peer/pkg/logger/logger.go:53.41,54.23 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:54.23,56.3 1 0 -github.com/number571/go-peer/pkg/logger/logger.go:57.2,57.26 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:60.41,61.23 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:61.23,63.3 1 0 -github.com/number571/go-peer/pkg/logger/logger.go:64.2,64.26 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:67.41,68.23 1 1 -github.com/number571/go-peer/pkg/logger/logger.go:68.23,70.3 1 0 -github.com/number571/go-peer/pkg/logger/logger.go:71.2,71.26 1 1 -github.com/number571/go-peer/pkg/logger/settings.go:18.45,24.2 1 1 -github.com/number571/go-peer/pkg/logger/settings.go:26.50,29.2 1 1 -github.com/number571/go-peer/pkg/logger/settings.go:31.46,33.2 1 1 -github.com/number571/go-peer/pkg/logger/settings.go:35.46,37.2 1 1 -github.com/number571/go-peer/pkg/logger/settings.go:39.46,41.2 1 1 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:67.40,69.2 1 0 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:71.39,73.2 1 0 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:75.39,77.2 1 0 +github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:79.39,81.2 1 0 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/chain.go:33.95,34.24 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/chain.go:34.24,36.3 1 0 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/chain.go:38.2,38.55 1 1 @@ -1417,63 +1377,85 @@ github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/settings.go:62.47 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/settings.go:66.53,68.2 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/settings.go:70.48,72.2 1 1 github.com/number571/go-peer/cmd/union_blockchain/kernel/chain/settings.go:74.63,76.2 1 1 -github.com/number571/go-peer/pkg/network/message/message.go:19.60,27.2 1 1 -github.com/number571/go-peer/pkg/network/message/message.go:29.49,31.41 1 1 -github.com/number571/go-peer/pkg/network/message/message.go:31.41,33.3 1 0 -github.com/number571/go-peer/pkg/network/message/message.go:35.2,43.4 3 1 -github.com/number571/go-peer/pkg/network/message/message.go:43.4,45.3 1 0 -github.com/number571/go-peer/pkg/network/message/message.go:48.2,49.16 2 1 -github.com/number571/go-peer/pkg/network/message/message.go:49.16,51.3 1 0 -github.com/number571/go-peer/pkg/network/message/message.go:53.2,56.3 1 1 -github.com/number571/go-peer/pkg/network/message/message.go:59.39,61.2 1 0 -github.com/number571/go-peer/pkg/network/message/message.go:63.52,65.2 1 1 -github.com/number571/go-peer/pkg/network/message/message.go:67.40,75.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:19.40,20.23 1 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:20.23,22.3 1 1 +github.com/number571/go-peer/pkg/encoding/bytes.go:17.51,22.16 4 1 +github.com/number571/go-peer/pkg/encoding/bytes.go:22.16,23.13 1 0 +github.com/number571/go-peer/pkg/encoding/bytes.go:26.2,27.12 2 1 +github.com/number571/go-peer/pkg/encoding/bytes.go:31.53,33.2 1 1 +github.com/number571/go-peer/pkg/encoding/hex.go:5.37,7.2 1 1 +github.com/number571/go-peer/pkg/encoding/hex.go:9.37,11.16 2 1 +github.com/number571/go-peer/pkg/encoding/hex.go:11.16,13.3 1 0 +github.com/number571/go-peer/pkg/encoding/hex.go:14.2,14.15 1 1 +github.com/number571/go-peer/pkg/encoding/serialize.go:5.42,7.16 2 1 +github.com/number571/go-peer/pkg/encoding/serialize.go:7.16,9.3 1 0 +github.com/number571/go-peer/pkg/encoding/serialize.go:10.2,10.12 1 1 +github.com/number571/go-peer/pkg/encoding/serialize.go:13.56,15.2 1 1 +github.com/number571/go-peer/pkg/filesystem/file.go:15.35,19.2 1 1 +github.com/number571/go-peer/pkg/filesystem/file.go:21.40,23.16 2 1 +github.com/number571/go-peer/pkg/filesystem/file.go:23.16,25.3 1 1 +github.com/number571/go-peer/pkg/filesystem/file.go:26.2,26.18 1 1 +github.com/number571/go-peer/pkg/filesystem/file.go:29.43,31.2 1 1 +github.com/number571/go-peer/pkg/filesystem/file.go:33.32,36.2 2 1 +github.com/number571/go-peer/pkg/logger/logger.go:26.41,32.23 3 1 +github.com/number571/go-peer/pkg/logger/logger.go:32.23,34.3 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:36.2,37.23 2 1 +github.com/number571/go-peer/pkg/logger/logger.go:37.23,39.3 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:41.2,42.23 2 1 +github.com/number571/go-peer/pkg/logger/logger.go:42.23,44.3 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:46.2,46.15 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:49.43,51.2 1 0 +github.com/number571/go-peer/pkg/logger/logger.go:53.41,54.23 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:54.23,56.3 1 0 +github.com/number571/go-peer/pkg/logger/logger.go:57.2,57.26 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:60.41,61.23 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:61.23,63.3 1 0 +github.com/number571/go-peer/pkg/logger/logger.go:64.2,64.26 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:67.41,68.23 1 1 +github.com/number571/go-peer/pkg/logger/logger.go:68.23,70.3 1 0 +github.com/number571/go-peer/pkg/logger/logger.go:71.2,71.26 1 1 +github.com/number571/go-peer/pkg/logger/settings.go:18.46,24.2 1 1 +github.com/number571/go-peer/pkg/logger/settings.go:26.50,29.2 1 1 +github.com/number571/go-peer/pkg/logger/settings.go:31.46,33.2 1 1 +github.com/number571/go-peer/pkg/logger/settings.go:35.46,37.2 1 1 +github.com/number571/go-peer/pkg/logger/settings.go:39.46,41.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:19.41,20.24 1 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:20.24,22.3 1 1 github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:23.2,25.3 1 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:28.129,30.20 2 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:30.20,32.3 1 0 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:33.2,34.19 2 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:34.19,36.3 1 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:37.2,38.20 2 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:38.20,40.3 1 1 -github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:41.2,41.108 1 1 -github.com/number571/go-peer/pkg/payload/payload.go:15.52,21.2 2 1 -github.com/number571/go-peer/pkg/payload/payload.go:23.48,24.46 1 1 -github.com/number571/go-peer/pkg/payload/payload.go:24.46,26.3 1 0 -github.com/number571/go-peer/pkg/payload/payload.go:27.2,27.31 1 1 -github.com/number571/go-peer/pkg/payload/payload.go:30.42,34.2 3 1 -github.com/number571/go-peer/pkg/payload/payload.go:36.42,38.2 1 1 -github.com/number571/go-peer/pkg/payload/payload.go:40.42,42.2 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:25.61,27.16 2 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:28.133,30.21 2 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:30.21,32.3 1 0 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:33.2,34.20 2 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:34.20,36.3 1 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:37.2,38.21 2 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:38.21,40.3 1 1 +github.com/number571/go-peer/pkg/network/anonymity/logger/logger.go:41.2,41.109 1 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:25.60,27.16 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:27.16,29.3 1 0 -github.com/number571/go-peer/pkg/network/conn/conn.go:30.2,30.34 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:33.52,38.2 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:40.44,42.2 1 0 -github.com/number571/go-peer/pkg/network/conn/conn.go:44.41,46.2 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:48.81,54.47 2 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:54.47,56.3 1 0 +github.com/number571/go-peer/pkg/network/conn/conn.go:30.2,30.35 1 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:33.54,38.2 1 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:40.41,42.2 1 0 +github.com/number571/go-peer/pkg/network/conn/conn.go:44.38,46.2 1 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:48.79,54.45 2 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:54.45,56.3 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:57.2,59.9 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:60.23,61.18 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:61.18,63.4 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:64.3,64.19 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:65.30,66.45 1 0 -github.com/number571/go-peer/pkg/network/conn/conn.go:70.34,72.2 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:74.61,84.6 4 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:70.31,72.2 1 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:74.59,84.6 4 1 github.com/number571/go-peer/pkg/network/conn/conn.go:84.6,86.17 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:86.17,88.4 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:90.3,93.19 3 1 github.com/number571/go-peer/pkg/network/conn/conn.go:93.19,94.9 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:98.2,98.12 1 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:101.51,105.2 3 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:107.60,109.15 2 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:101.48,105.2 3 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:107.62,109.15 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:109.15,111.3 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:114.2,116.16 3 1 github.com/number571/go-peer/pkg/network/conn/conn.go:116.16,118.3 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:119.2,119.36 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:119.36,121.3 1 0 -github.com/number571/go-peer/pkg/network/conn/conn.go:124.2,128.47 4 1 -github.com/number571/go-peer/pkg/network/conn/conn.go:128.47,130.3 1 0 +github.com/number571/go-peer/pkg/network/conn/conn.go:124.2,128.48 4 1 +github.com/number571/go-peer/pkg/network/conn/conn.go:128.48,130.3 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:132.2,133.6 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:133.6,136.17 3 1 github.com/number571/go-peer/pkg/network/conn/conn.go:136.17,138.4 1 0 @@ -1482,7 +1464,7 @@ github.com/number571/go-peer/pkg/network/conn/conn.go:149.19,150.9 1 1 github.com/number571/go-peer/pkg/network/conn/conn.go:155.2,159.16 2 1 github.com/number571/go-peer/pkg/network/conn/conn.go:159.16,161.3 1 0 github.com/number571/go-peer/pkg/network/conn/conn.go:163.2,163.24 1 1 -github.com/number571/go-peer/pkg/network/conn/settings.go:22.45,28.2 1 1 +github.com/number571/go-peer/pkg/network/conn/settings.go:22.46,28.2 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:30.50,31.25 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:31.25,33.3 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:34.2,34.25 1 1 @@ -1493,7 +1475,25 @@ github.com/number571/go-peer/pkg/network/conn/settings.go:40.2,40.10 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:43.44,45.2 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:47.45,49.2 1 1 github.com/number571/go-peer/pkg/network/conn/settings.go:51.49,53.2 1 1 -github.com/number571/go-peer/pkg/storage/crypto.go:32.91,38.20 2 1 +github.com/number571/go-peer/pkg/network/message/message.go:19.62,27.2 1 1 +github.com/number571/go-peer/pkg/network/message/message.go:29.47,31.38 1 1 +github.com/number571/go-peer/pkg/network/message/message.go:31.38,33.3 1 0 +github.com/number571/go-peer/pkg/network/message/message.go:35.2,43.4 3 1 +github.com/number571/go-peer/pkg/network/message/message.go:43.4,45.3 1 0 +github.com/number571/go-peer/pkg/network/message/message.go:48.2,49.16 2 1 +github.com/number571/go-peer/pkg/network/message/message.go:49.16,51.3 1 0 +github.com/number571/go-peer/pkg/network/message/message.go:53.2,56.3 1 1 +github.com/number571/go-peer/pkg/network/message/message.go:59.37,61.2 1 0 +github.com/number571/go-peer/pkg/network/message/message.go:63.50,65.2 1 1 +github.com/number571/go-peer/pkg/network/message/message.go:67.38,75.2 1 1 +github.com/number571/go-peer/pkg/payload/payload.go:15.54,21.2 2 1 +github.com/number571/go-peer/pkg/payload/payload.go:23.49,24.47 1 1 +github.com/number571/go-peer/pkg/payload/payload.go:24.47,26.3 1 0 +github.com/number571/go-peer/pkg/payload/payload.go:27.2,27.32 1 1 +github.com/number571/go-peer/pkg/payload/payload.go:30.36,34.2 3 1 +github.com/number571/go-peer/pkg/payload/payload.go:36.36,38.2 1 1 +github.com/number571/go-peer/pkg/payload/payload.go:40.36,42.2 1 1 +github.com/number571/go-peer/pkg/storage/crypto.go:32.94,38.20 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:38.20,40.17 2 0 github.com/number571/go-peer/pkg/storage/crypto.go:40.17,42.4 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:43.3,43.48 1 0 @@ -1503,88 +1503,88 @@ github.com/number571/go-peer/pkg/storage/crypto.go:51.21,53.3 1 1 github.com/number571/go-peer/pkg/storage/crypto.go:55.2,56.16 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:56.16,58.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:60.2,60.19 1 1 -github.com/number571/go-peer/pkg/storage/crypto.go:63.59,73.20 4 1 -github.com/number571/go-peer/pkg/storage/crypto.go:73.20,75.17 2 1 +github.com/number571/go-peer/pkg/storage/crypto.go:63.57,73.16 4 1 +github.com/number571/go-peer/pkg/storage/crypto.go:73.16,75.17 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:75.17,77.4 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:78.8,80.3 1 1 -github.com/number571/go-peer/pkg/storage/crypto.go:83.2,90.32 6 1 -github.com/number571/go-peer/pkg/storage/crypto.go:93.62,98.21 3 1 -github.com/number571/go-peer/pkg/storage/crypto.go:98.21,100.3 1 0 +github.com/number571/go-peer/pkg/storage/crypto.go:83.2,90.28 6 1 +github.com/number571/go-peer/pkg/storage/crypto.go:93.59,98.17 3 1 +github.com/number571/go-peer/pkg/storage/crypto.go:98.17,100.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:103.2,104.16 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:104.16,106.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:109.2,114.9 5 1 github.com/number571/go-peer/pkg/storage/crypto.go:114.9,116.3 1 1 github.com/number571/go-peer/pkg/storage/crypto.go:118.2,121.20 3 1 -github.com/number571/go-peer/pkg/storage/crypto.go:124.52,129.21 3 1 -github.com/number571/go-peer/pkg/storage/crypto.go:129.21,131.3 1 0 +github.com/number571/go-peer/pkg/storage/crypto.go:124.49,129.17 3 1 +github.com/number571/go-peer/pkg/storage/crypto.go:129.17,131.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:134.2,135.16 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:135.16,137.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:140.2,144.9 4 1 github.com/number571/go-peer/pkg/storage/crypto.go:144.9,146.3 1 0 -github.com/number571/go-peer/pkg/storage/crypto.go:148.2,149.32 2 1 -github.com/number571/go-peer/pkg/storage/crypto.go:152.44,154.2 1 1 -github.com/number571/go-peer/pkg/storage/crypto.go:156.66,159.16 2 1 +github.com/number571/go-peer/pkg/storage/crypto.go:148.2,149.28 2 1 +github.com/number571/go-peer/pkg/storage/crypto.go:152.40,154.2 1 1 +github.com/number571/go-peer/pkg/storage/crypto.go:156.63,159.16 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:159.16,161.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:163.2,169.16 2 1 github.com/number571/go-peer/pkg/storage/crypto.go:169.16,171.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:173.2,173.12 1 1 -github.com/number571/go-peer/pkg/storage/crypto.go:176.61,180.16 3 1 +github.com/number571/go-peer/pkg/storage/crypto.go:176.57,180.16 3 1 github.com/number571/go-peer/pkg/storage/crypto.go:180.16,182.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:184.2,186.16 3 1 github.com/number571/go-peer/pkg/storage/crypto.go:186.16,188.3 1 0 github.com/number571/go-peer/pkg/storage/crypto.go:190.2,190.21 1 1 -github.com/number571/go-peer/pkg/storage/memory.go:21.52,27.2 1 1 -github.com/number571/go-peer/pkg/storage/memory.go:29.59,33.51 3 1 -github.com/number571/go-peer/pkg/storage/memory.go:33.51,36.3 2 1 +github.com/number571/go-peer/pkg/storage/memory.go:21.57,27.2 1 1 +github.com/number571/go-peer/pkg/storage/memory.go:29.57,33.43 3 1 +github.com/number571/go-peer/pkg/storage/memory.go:33.43,36.3 2 1 github.com/number571/go-peer/pkg/storage/memory.go:38.2,42.12 4 1 -github.com/number571/go-peer/pkg/storage/memory.go:45.62,50.9 4 1 +github.com/number571/go-peer/pkg/storage/memory.go:45.59,50.9 4 1 github.com/number571/go-peer/pkg/storage/memory.go:50.9,52.3 1 1 github.com/number571/go-peer/pkg/storage/memory.go:54.2,54.19 1 1 -github.com/number571/go-peer/pkg/storage/memory.go:57.52,62.9 4 1 +github.com/number571/go-peer/pkg/storage/memory.go:57.49,62.9 4 1 github.com/number571/go-peer/pkg/storage/memory.go:62.9,64.3 1 1 github.com/number571/go-peer/pkg/storage/memory.go:66.2,67.12 2 1 -github.com/number571/go-peer/pkg/types/closer.go:4.35,6.23 2 1 -github.com/number571/go-peer/pkg/types/closer.go:6.23,7.35 1 1 +github.com/number571/go-peer/pkg/types/closer.go:4.41,6.29 2 1 +github.com/number571/go-peer/pkg/types/closer.go:6.29,7.35 1 1 github.com/number571/go-peer/pkg/types/closer.go:7.35,9.4 1 1 github.com/number571/go-peer/pkg/types/closer.go:11.2,11.16 1 1 -github.com/number571/go-peer/pkg/types/stopper.go:4.35,6.23 2 1 -github.com/number571/go-peer/pkg/types/stopper.go:6.23,7.34 1 1 +github.com/number571/go-peer/pkg/types/stopper.go:4.42,6.30 2 1 +github.com/number571/go-peer/pkg/types/stopper.go:6.30,7.34 1 1 github.com/number571/go-peer/pkg/types/stopper.go:7.34,9.4 1 1 github.com/number571/go-peer/pkg/types/stopper.go:11.2,11.16 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:35.45,37.16 2 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:35.46,37.16 2 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:37.16,39.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:40.2,41.16 2 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:41.16,43.62 2 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:43.62,45.4 1 0 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:41.16,43.63 2 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:43.63,45.4 1 0 github.com/number571/go-peer/pkg/storage/database/leveldb.go:47.2,52.3 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:55.45,57.2 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:59.57,68.2 3 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:55.44,57.2 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:59.58,68.2 3 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:70.53,75.16 4 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:75.16,77.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:79.2,82.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:85.43,90.2 3 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:92.35,97.2 3 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:100.58,104.31 3 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:104.31,106.3 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:92.34,97.2 3 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:100.58,104.30 3 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:104.30,106.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:108.2,111.3 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:114.43,119.2 3 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:121.47,126.2 3 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:128.49,136.16 4 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:114.40,119.2 3 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:121.44,126.2 3 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:128.46,136.16 4 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:136.16,138.3 1 0 github.com/number571/go-peer/pkg/storage/database/leveldb.go:139.2,139.17 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:142.45,148.2 4 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:150.67,161.2 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:163.76,164.65 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:164.65,166.3 1 0 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:142.42,148.2 4 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:150.69,161.2 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:163.78,164.66 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:164.66,166.3 1 0 github.com/number571/go-peer/pkg/storage/database/leveldb.go:168.2,169.21 2 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:169.21,171.3 1 0 github.com/number571/go-peer/pkg/storage/database/leveldb.go:173.2,179.40 3 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:179.40,181.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:183.2,183.22 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:186.48,187.32 1 1 -github.com/number571/go-peer/pkg/storage/database/leveldb.go:187.32,189.3 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:186.48,187.31 1 1 +github.com/number571/go-peer/pkg/storage/database/leveldb.go:187.31,189.3 1 1 github.com/number571/go-peer/pkg/storage/database/leveldb.go:190.2,197.55 2 1 -github.com/number571/go-peer/pkg/storage/database/settings.go:21.45,28.2 1 1 +github.com/number571/go-peer/pkg/storage/database/settings.go:21.46,28.2 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:30.50,31.19 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:31.19,33.3 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:34.2,34.23 1 1 @@ -1596,28 +1596,28 @@ github.com/number571/go-peer/pkg/storage/database/settings.go:43.38,45.2 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:47.41,49.2 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:51.39,53.2 1 1 github.com/number571/go-peer/pkg/storage/database/settings.go:55.43,57.2 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:23.68,28.2 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:30.63,32.2 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:34.56,36.2 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:38.44,42.23 3 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:42.23,44.3 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:23.70,28.2 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:30.54,32.2 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:34.47,36.2 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:38.35,42.14 3 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:42.14,44.3 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:45.2,50.12 4 1 github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:50.12,51.7 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:51.7,52.11 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:53.35,54.11 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:55.62,56.33 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:53.26,54.11 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:55.53,56.24 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:61.2,61.12 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:64.45,68.24 3 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:68.24,70.3 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:64.36,68.15 3 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:68.15,70.3 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:71.2,74.12 3 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:77.50,79.68 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:79.68,80.55 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:80.55,81.23 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:81.23,82.18 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:85.3,85.39 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:89.61,94.2 3 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:77.41,79.59 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:79.59,80.46 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:80.46,81.23 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:81.23,83.18 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:86.3,86.30 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:90.52,95.2 3 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:14.33,14.47 1 1 -github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:23.45,28.2 1 1 +github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:23.46,28.2 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:30.49,31.22 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:31.22,33.3 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:34.2,34.27 1 1 @@ -1625,58 +1625,58 @@ github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:34.27,36.3 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:37.2,37.10 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:40.47,42.2 1 1 github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:44.49,46.2 1 1 -github.com/number571/go-peer/pkg/network/network.go:31.36,38.2 1 1 -github.com/number571/go-peer/pkg/network/network.go:41.44,43.2 1 1 -github.com/number571/go-peer/pkg/network/network.go:46.65,51.45 4 1 -github.com/number571/go-peer/pkg/network/network.go:51.45,53.15 2 1 +github.com/number571/go-peer/pkg/network/network.go:31.37,38.2 1 1 +github.com/number571/go-peer/pkg/network/network.go:41.41,43.2 1 1 +github.com/number571/go-peer/pkg/network/network.go:46.63,51.42 4 1 +github.com/number571/go-peer/pkg/network/network.go:51.42,53.15 2 1 github.com/number571/go-peer/pkg/network/network.go:53.15,55.4 1 0 github.com/number571/go-peer/pkg/network/network.go:58.2,58.12 1 1 -github.com/number571/go-peer/pkg/network/network.go:64.32,66.16 2 1 +github.com/number571/go-peer/pkg/network/network.go:64.29,66.16 2 1 github.com/number571/go-peer/pkg/network/network.go:66.16,68.3 1 0 -github.com/number571/go-peer/pkg/network/network.go:70.2,70.26 1 1 -github.com/number571/go-peer/pkg/network/network.go:70.26,73.7 3 1 +github.com/number571/go-peer/pkg/network/network.go:70.2,70.34 1 1 +github.com/number571/go-peer/pkg/network/network.go:70.34,73.7 3 1 github.com/number571/go-peer/pkg/network/network.go:73.7,75.18 2 1 github.com/number571/go-peer/pkg/network/network.go:75.18,76.10 1 1 -github.com/number571/go-peer/pkg/network/network.go:79.4,79.29 1 1 -github.com/number571/go-peer/pkg/network/network.go:79.29,81.13 2 0 -github.com/number571/go-peer/pkg/network/network.go:84.4,89.37 5 1 +github.com/number571/go-peer/pkg/network/network.go:79.4,79.26 1 1 +github.com/number571/go-peer/pkg/network/network.go:79.26,81.13 2 0 +github.com/number571/go-peer/pkg/network/network.go:84.4,89.34 5 1 github.com/number571/go-peer/pkg/network/network.go:93.2,93.12 1 1 -github.com/number571/go-peer/pkg/network/network.go:97.33,102.27 4 1 -github.com/number571/go-peer/pkg/network/network.go:102.27,104.3 1 1 -github.com/number571/go-peer/pkg/network/network.go:106.2,106.42 1 1 -github.com/number571/go-peer/pkg/network/network.go:106.42,109.3 2 1 +github.com/number571/go-peer/pkg/network/network.go:97.30,102.24 4 1 +github.com/number571/go-peer/pkg/network/network.go:102.24,104.3 1 1 +github.com/number571/go-peer/pkg/network/network.go:106.2,106.39 1 1 +github.com/number571/go-peer/pkg/network/network.go:106.39,109.3 2 1 github.com/number571/go-peer/pkg/network/network.go:111.2,111.32 1 1 -github.com/number571/go-peer/pkg/network/network.go:115.68,121.2 4 1 -github.com/number571/go-peer/pkg/network/network.go:124.59,129.44 4 1 -github.com/number571/go-peer/pkg/network/network.go:129.44,131.3 1 1 +github.com/number571/go-peer/pkg/network/network.go:115.67,121.2 4 1 +github.com/number571/go-peer/pkg/network/network.go:124.56,129.41 4 1 +github.com/number571/go-peer/pkg/network/network.go:129.41,131.3 1 1 github.com/number571/go-peer/pkg/network/network.go:133.2,133.16 1 1 -github.com/number571/go-peer/pkg/network/network.go:138.53,139.27 1 1 -github.com/number571/go-peer/pkg/network/network.go:139.27,141.3 1 0 +github.com/number571/go-peer/pkg/network/network.go:138.51,139.24 1 1 +github.com/number571/go-peer/pkg/network/network.go:139.24,141.3 1 0 github.com/number571/go-peer/pkg/network/network.go:143.2,145.16 3 1 github.com/number571/go-peer/pkg/network/network.go:145.16,147.3 1 0 github.com/number571/go-peer/pkg/network/network.go:149.2,152.12 3 1 -github.com/number571/go-peer/pkg/network/network.go:156.53,161.9 4 1 +github.com/number571/go-peer/pkg/network/network.go:156.51,161.9 4 1 github.com/number571/go-peer/pkg/network/network.go:161.9,163.3 1 1 github.com/number571/go-peer/pkg/network/network.go:165.2,166.21 2 1 -github.com/number571/go-peer/pkg/network/network.go:170.64,172.6 2 1 +github.com/number571/go-peer/pkg/network/network.go:170.63,172.6 2 1 github.com/number571/go-peer/pkg/network/network.go:172.6,174.10 2 1 github.com/number571/go-peer/pkg/network/network.go:174.10,175.9 1 1 -github.com/number571/go-peer/pkg/network/network.go:183.78,185.16 1 1 -github.com/number571/go-peer/pkg/network/network.go:185.16,187.3 1 1 -github.com/number571/go-peer/pkg/network/network.go:190.2,191.33 2 1 -github.com/number571/go-peer/pkg/network/network.go:191.33,193.3 1 1 +github.com/number571/go-peer/pkg/network/network.go:183.77,185.17 1 1 +github.com/number571/go-peer/pkg/network/network.go:185.17,187.3 1 1 +github.com/number571/go-peer/pkg/network/network.go:190.2,191.30 2 1 +github.com/number571/go-peer/pkg/network/network.go:191.30,193.3 1 1 github.com/number571/go-peer/pkg/network/network.go:196.2,197.21 2 1 github.com/number571/go-peer/pkg/network/network.go:197.21,199.3 1 0 github.com/number571/go-peer/pkg/network/network.go:201.2,202.13 2 1 -github.com/number571/go-peer/pkg/network/network.go:206.42,212.2 4 1 -github.com/number571/go-peer/pkg/network/network.go:216.55,222.16 4 1 +github.com/number571/go-peer/pkg/network/network.go:206.39,212.2 4 1 +github.com/number571/go-peer/pkg/network/network.go:216.53,222.16 4 1 github.com/number571/go-peer/pkg/network/network.go:222.16,224.3 1 1 github.com/number571/go-peer/pkg/network/network.go:227.2,228.14 2 1 -github.com/number571/go-peer/pkg/network/network.go:232.67,237.2 3 1 -github.com/number571/go-peer/pkg/network/network.go:240.63,246.2 4 1 -github.com/number571/go-peer/pkg/network/network.go:249.55,254.2 3 1 -github.com/number571/go-peer/pkg/network/network.go:257.47,262.2 3 1 -github.com/number571/go-peer/pkg/network/settings.go:23.45,30.2 1 1 +github.com/number571/go-peer/pkg/network/network.go:232.66,237.2 3 1 +github.com/number571/go-peer/pkg/network/network.go:240.61,246.2 4 1 +github.com/number571/go-peer/pkg/network/network.go:249.53,254.2 3 1 +github.com/number571/go-peer/pkg/network/network.go:257.44,262.2 3 1 +github.com/number571/go-peer/pkg/network/settings.go:23.46,30.2 1 1 github.com/number571/go-peer/pkg/network/settings.go:32.50,33.22 1 1 github.com/number571/go-peer/pkg/network/settings.go:33.22,35.3 1 1 github.com/number571/go-peer/pkg/network/settings.go:36.2,36.22 1 1 @@ -1857,9 +1857,9 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app/init_conn_keep github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app/init_conn_keeper.go:86.5,86.101 1 0 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app/init_database.go:10.42,19.2 1 1 github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app/init_service.go:13.116,24.2 5 1 -github.com/number571/go-peer/pkg/client/queue/queue.go:31.75,40.2 1 1 +github.com/number571/go-peer/pkg/client/queue/queue.go:31.77,40.2 1 1 github.com/number571/go-peer/pkg/client/queue/queue.go:42.49,44.2 1 1 -github.com/number571/go-peer/pkg/client/queue/queue.go:46.56,52.2 4 1 +github.com/number571/go-peer/pkg/client/queue/queue.go:46.62,52.2 4 1 github.com/number571/go-peer/pkg/client/queue/queue.go:54.52,59.2 3 1 github.com/number571/go-peer/pkg/client/queue/queue.go:61.37,65.14 3 1 github.com/number571/go-peer/pkg/client/queue/queue.go:65.14,67.3 1 0 @@ -1874,7 +1874,7 @@ github.com/number571/go-peer/pkg/client/queue/queue.go:86.2,86.12 1 1 github.com/number571/go-peer/pkg/client/queue/queue.go:89.38,93.15 3 1 github.com/number571/go-peer/pkg/client/queue/queue.go:93.15,95.3 1 0 github.com/number571/go-peer/pkg/client/queue/queue.go:96.2,99.12 3 1 -github.com/number571/go-peer/pkg/client/queue/queue.go:102.68,106.60 3 1 +github.com/number571/go-peer/pkg/client/queue/queue.go:102.69,106.60 3 1 github.com/number571/go-peer/pkg/client/queue/queue.go:106.60,108.3 1 0 github.com/number571/go-peer/pkg/client/queue/queue.go:110.2,111.12 2 1 github.com/number571/go-peer/pkg/client/queue/queue.go:114.66,117.12 2 1 @@ -1890,7 +1890,7 @@ github.com/number571/go-peer/pkg/client/queue/queue.go:142.61,147.16 2 1 github.com/number571/go-peer/pkg/client/queue/queue.go:147.16,148.13 1 0 github.com/number571/go-peer/pkg/client/queue/queue.go:150.2,150.12 1 1 github.com/number571/go-peer/pkg/client/queue/queue.go:153.54,158.2 3 1 -github.com/number571/go-peer/pkg/client/queue/settings.go:24.45,30.2 1 1 +github.com/number571/go-peer/pkg/client/queue/settings.go:24.46,30.2 1 1 github.com/number571/go-peer/pkg/client/queue/settings.go:32.50,33.22 1 1 github.com/number571/go-peer/pkg/client/queue/settings.go:33.22,35.3 1 0 github.com/number571/go-peer/pkg/client/queue/settings.go:36.2,36.26 1 1 @@ -1902,49 +1902,49 @@ github.com/number571/go-peer/pkg/client/queue/settings.go:45.42,47.2 1 1 github.com/number571/go-peer/pkg/client/queue/settings.go:49.46,51.2 1 1 github.com/number571/go-peer/pkg/client/queue/settings.go:53.49,55.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:47.9,58.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:60.32,63.46 2 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:63.46,65.3 1 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:60.29,63.43 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:63.43,65.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:67.2,72.12 2 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:75.33,80.2 2 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:82.47,84.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:86.44,88.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:90.46,92.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:94.51,96.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:98.58,100.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:103.61,105.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:107.68,110.2 2 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:113.90,114.54 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:114.54,116.3 1 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:75.30,80.2 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:82.44,84.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:86.41,88.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:90.43,92.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:94.48,96.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:98.55,100.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:103.58,105.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:107.67,110.2 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:113.89,114.51 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:114.51,116.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:118.2,119.16 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:119.16,121.3 1 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:123.2,123.23 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:128.96,142.60 7 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:142.60,144.3 1 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:145.2,145.29 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:148.53,149.69 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:149.69,150.68 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:150.68,152.12 2 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:123.2,123.20 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:128.95,142.58 7 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:142.58,144.3 1 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:145.2,145.26 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:148.51,149.66 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:149.66,150.66 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:150.66,152.12 2 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:154.3,154.13 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:156.2,156.46 1 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:159.59,161.9 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:159.57,161.9 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:161.9,163.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:164.2,164.9 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:165.34,166.14 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:166.14,168.4 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:169.3,169.21 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:170.54,171.41 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:175.63,176.53 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:176.53,178.3 1 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:170.51,171.41 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:175.61,176.50 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:176.50,178.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:180.2,180.12 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:180.12,181.7 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:181.7,183.11 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:183.11,184.10 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:187.4,193.61 2 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:193.61,195.13 2 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:198.4,198.100 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:187.4,193.59 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:193.59,195.13 2 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:198.4,198.98 1 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:202.2,202.12 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:205.80,206.65 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:206.65,214.17 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:205.78,206.67 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:206.67,214.17 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:214.17,217.4 2 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:219.3,226.22 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:226.22,229.4 2 0 @@ -1953,40 +1953,40 @@ github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:236.62,239.4 2 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:242.3,243.67 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:243.67,246.4 2 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:249.3,249.19 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:249.19,251.61 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:251.61,254.5 2 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:249.19,251.59 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:251.59,254.5 2 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:258.3,259.17 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:259.17,262.4 2 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:265.3,265.47 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:265.47,268.4 2 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:265.3,265.44 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:265.44,268.4 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:271.3,276.9 4 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:276.9,280.4 3 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:283.3,284.22 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:284.22,287.4 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:290.3,291.18 2 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:291.18,294.4 2 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:297.3,297.96 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:297.96,300.4 2 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:302.3,302.106 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:306.93,317.16 4 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:297.3,297.93 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:297.93,300.4 2 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:302.3,302.105 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:306.92,317.16 4 1 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:317.16,320.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:322.2,322.12 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:325.60,330.2 3 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:332.60,338.2 4 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:340.68,346.2 4 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:348.48,353.2 3 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:355.48,360.2 3 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:362.66,366.2 3 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:368.36,369.24 1 1 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:369.24,370.30 1 0 -github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:372.2,372.18 1 1 -github.com/number571/go-peer/pkg/network/anonymity/head.go:12.31,14.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/head.go:16.43,18.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:325.59,330.2 3 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:332.58,338.2 4 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:340.66,346.2 4 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:348.46,353.2 3 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:355.46,360.2 3 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:362.68,366.2 3 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:368.41,369.29 1 1 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:369.29,370.30 1 0 +github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:372.2,372.23 1 1 +github.com/number571/go-peer/pkg/network/anonymity/head.go:12.32,14.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/head.go:16.45,18.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/head.go:20.34,22.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/head.go:24.35,26.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/head.go:28.32,30.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/payload.go:5.60,7.2 1 1 -github.com/number571/go-peer/pkg/network/anonymity/settings.go:25.45,32.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/payload.go:5.62,7.2 1 1 +github.com/number571/go-peer/pkg/network/anonymity/settings.go:25.46,32.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/settings.go:34.49,35.26 1 1 github.com/number571/go-peer/pkg/network/anonymity/settings.go:35.26,37.3 1 1 github.com/number571/go-peer/pkg/network/anonymity/settings.go:38.2,38.25 1 1 @@ -2002,7 +2002,7 @@ github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:19.32,21.2 1 1 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:23.49,25.9 2 1 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:25.9,27.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:28.2,28.11 1 1 -github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:31.62,37.2 4 1 +github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:31.63,37.2 4 1 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:39.36,44.9 4 1 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:44.9,46.3 1 0 github.com/number571/go-peer/pkg/network/anonymity/wrapper.go:47.2,47.19 1 1 diff --git a/test/result/result.out b/test/result/result.out index c8e64d4e..afc86eea 100644 --- a/test/result/result.out +++ b/test/result/result.out @@ -1,60 +1,60 @@ -ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common 0.025s coverage: [no statements] -ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv 0.038s coverage: 3.7% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send 0.030s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service 0.046s coverage: 4.3% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm 0.024s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app 0.059s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state 0.048s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue 0.051s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config 0.044s coverage: 67.5% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database 0.041s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler 0.040s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/settings 0.052s coverage: [no statements] -ok github.com/number571/go-peer/cmd/hidden_lake/messenger/web 0.042s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls 0.051s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common 0.037s coverage: [no statements] +ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv 0.056s coverage: 3.7% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send 0.035s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service 0.056s coverage: 4.3% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm 0.026s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app 0.081s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/app/state 0.076s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue 0.070s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config 0.074s coverage: 67.5% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database 0.105s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler 0.082s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/settings 0.105s coverage: [no statements] +ok github.com/number571/go-peer/cmd/hidden_lake/messenger/web 0.066s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls 0.071s coverage: 0.0% of statements ? github.com/number571/go-peer/pkg/wrapper [no test files] -ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/app 6.157s coverage: 75.4% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/config 0.034s coverage: 55.6% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler 6.891s coverage: 65.1% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client 0.032s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request 0.031s coverage: 100.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings 0.034s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt 0.036s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app 6.119s coverage: 56.7% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config 0.031s coverage: 75.7% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database 0.606s coverage: 68.7% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler 1.270s coverage: 62.8% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client 0.032s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/settings 0.031s coverage: [no statements] -ok github.com/number571/go-peer/cmd/union_blockchain 0.034s coverage: 0.0% of statements -ok github.com/number571/go-peer/cmd/union_blockchain/kernel 0.032s coverage: [no statements] -ok github.com/number571/go-peer/cmd/union_blockchain/kernel/block 0.288s coverage: 71.4% of statements -ok github.com/number571/go-peer/cmd/union_blockchain/kernel/chain 6.948s coverage: 79.7% of statements -ok github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool 0.315s coverage: 73.9% of statements -ok github.com/number571/go-peer/cmd/union_blockchain/kernel/transaction 0.045s coverage: 68.6% of statements -ok github.com/number571/go-peer/internal/api 0.037s coverage: 0.0% of statements -ok github.com/number571/go-peer/internal/logger 0.035s coverage: 88.9% of statements -ok github.com/number571/go-peer/internal/pprof 0.040s coverage: 0.0% of statements -ok github.com/number571/go-peer/pkg/client 0.651s coverage: 73.6% of statements -ok github.com/number571/go-peer/pkg/client/message 0.045s coverage: 78.8% of statements -ok github.com/number571/go-peer/pkg/client/queue 6.661s coverage: 90.0% of statements -ok github.com/number571/go-peer/pkg/crypto 0.030s coverage: [no statements] -ok github.com/number571/go-peer/pkg/crypto/asymmetric 0.416s coverage: 84.8% of statements -ok github.com/number571/go-peer/pkg/crypto/entropy 0.024s coverage: 100.0% of statements -ok github.com/number571/go-peer/pkg/crypto/hashing 0.028s coverage: 85.7% of statements -ok github.com/number571/go-peer/pkg/crypto/puzzle 0.026s coverage: 94.7% of statements -ok github.com/number571/go-peer/pkg/crypto/random 0.027s coverage: 81.8% of statements -ok github.com/number571/go-peer/pkg/crypto/symmetric 0.025s coverage: 72.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/app 6.211s coverage: 75.4% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/config 0.045s coverage: 55.6% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler 6.589s coverage: 65.1% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client 0.036s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request 0.043s coverage: 100.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings 0.038s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt 0.038s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/app 6.116s coverage: 56.7% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config 0.065s coverage: 75.7% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database 0.617s coverage: 68.7% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler 1.376s coverage: 62.8% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client 0.055s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/settings 0.067s coverage: [no statements] +ok github.com/number571/go-peer/cmd/union_blockchain 0.063s coverage: 0.0% of statements +ok github.com/number571/go-peer/cmd/union_blockchain/kernel 0.030s coverage: [no statements] +ok github.com/number571/go-peer/cmd/union_blockchain/kernel/block 0.287s coverage: 71.4% of statements +ok github.com/number571/go-peer/cmd/union_blockchain/kernel/chain 7.730s coverage: 79.7% of statements +ok github.com/number571/go-peer/cmd/union_blockchain/kernel/mempool 0.375s coverage: 73.9% of statements +ok github.com/number571/go-peer/cmd/union_blockchain/kernel/transaction 0.066s coverage: 68.6% of statements +ok github.com/number571/go-peer/internal/api 0.056s coverage: 0.0% of statements +ok github.com/number571/go-peer/internal/logger 0.061s coverage: 88.9% of statements +ok github.com/number571/go-peer/internal/pprof 0.028s coverage: 0.0% of statements +ok github.com/number571/go-peer/pkg/client 0.783s coverage: 73.6% of statements +ok github.com/number571/go-peer/pkg/client/message 0.052s coverage: 78.8% of statements +ok github.com/number571/go-peer/pkg/client/queue 6.768s coverage: 90.0% of statements +ok github.com/number571/go-peer/pkg/crypto 0.040s coverage: [no statements] +ok github.com/number571/go-peer/pkg/crypto/asymmetric 0.319s coverage: 84.9% of statements +ok github.com/number571/go-peer/pkg/crypto/entropy 0.044s coverage: 100.0% of statements +ok github.com/number571/go-peer/pkg/crypto/hashing 0.025s coverage: 85.7% of statements +ok github.com/number571/go-peer/pkg/crypto/puzzle 0.039s coverage: 94.7% of statements +ok github.com/number571/go-peer/pkg/crypto/random 0.030s coverage: 81.8% of statements +ok github.com/number571/go-peer/pkg/crypto/symmetric 0.027s coverage: 72.0% of statements ok github.com/number571/go-peer/pkg/encoding 0.027s coverage: 83.3% of statements -ok github.com/number571/go-peer/pkg/filesystem 0.028s coverage: 100.0% of statements -ok github.com/number571/go-peer/pkg/logger 0.024s coverage: 84.6% of statements -ok github.com/number571/go-peer/pkg/network 5.833s coverage: 91.5% of statements -ok github.com/number571/go-peer/pkg/network/anonymity 11.830s coverage: 80.5% of statements -ok github.com/number571/go-peer/pkg/network/anonymity/logger 0.031s coverage: 92.3% of statements -ok github.com/number571/go-peer/pkg/network/conn 0.047s coverage: 84.5% of statements -ok github.com/number571/go-peer/pkg/network/conn_keeper 1.051s coverage: 100.0% of statements -ok github.com/number571/go-peer/pkg/network/message 0.037s coverage: 71.4% of statements -ok github.com/number571/go-peer/pkg/payload 0.038s coverage: 90.0% of statements -ok github.com/number571/go-peer/pkg/storage 0.072s coverage: 84.8% of statements -ok github.com/number571/go-peer/pkg/storage/database 0.254s coverage: 94.5% of statements -ok github.com/number571/go-peer/pkg/types 0.037s coverage: 100.0% of statements +ok github.com/number571/go-peer/pkg/filesystem 0.065s coverage: 100.0% of statements +ok github.com/number571/go-peer/pkg/logger 0.031s coverage: 84.6% of statements +ok github.com/number571/go-peer/pkg/network 6.805s coverage: 91.5% of statements +ok github.com/number571/go-peer/pkg/network/anonymity 12.855s coverage: 80.5% of statements +ok github.com/number571/go-peer/pkg/network/anonymity/logger 0.053s coverage: 92.3% of statements +ok github.com/number571/go-peer/pkg/network/conn 0.067s coverage: 84.5% of statements +ok github.com/number571/go-peer/pkg/network/conn_keeper 1.072s coverage: 100.0% of statements +ok github.com/number571/go-peer/pkg/network/message 0.060s coverage: 71.4% of statements +ok github.com/number571/go-peer/pkg/payload 0.039s coverage: 90.0% of statements +ok github.com/number571/go-peer/pkg/storage 0.134s coverage: 84.8% of statements +ok github.com/number571/go-peer/pkg/storage/database 0.249s coverage: 94.5% of statements +ok github.com/number571/go-peer/pkg/types 0.050s coverage: 100.0% of statements