mirror of
https://github.com/PeernetOfficial/core.git
synced 2026-07-17 10:57:49 +01:00
28 lines
753 B
Go
28 lines
753 B
Go
/*
|
|
File Name: Hash.go
|
|
Copyright: 2021 Peernet s.r.o.
|
|
Author: Peter Kleissner
|
|
*/
|
|
|
|
package protocol
|
|
|
|
import (
|
|
"github.com/PeernetOfficial/core/btcec"
|
|
"lukechampine.com/blake3"
|
|
)
|
|
|
|
// HashData abstracts the hash function.
|
|
func HashData(data []byte) (hash []byte) {
|
|
hash32 := blake3.Sum256(data)
|
|
return hash32[:]
|
|
}
|
|
|
|
// HashSize is blake3 hash digest size = 256 bits
|
|
const HashSize = 32
|
|
|
|
// PublicKey2NodeID translates the Public Key into the node ID used in the Kademlia network.
|
|
// It is also referenced in various other places including blockchain data at runtime. The node ID identifies the owner.
|
|
func PublicKey2NodeID(publicKey *btcec.PublicKey) (nodeID []byte) {
|
|
return HashData(publicKey.SerializeCompressed())
|
|
}
|