blockchainIDsystem/peer/utils.go
peer/utils.goRaw
1package main
2
3import (
4 "crypto/sha256"
5 "encoding/base64"
6 "encoding/json"
7 "math/rand"
8 "net"
9 "strings"
10)
11
12func getIPPortFromConn(conn net.Conn) string {
13 ip := getIPFromConn(conn)
14 port := getPortFromConn(conn)
15 return ip + ":" + port
16}
17func getIPFromConn(conn net.Conn) string {
18 s := conn.RemoteAddr().String()
19 s = strings.Split(s, ":")[0]
20 s = strings.Trim(s, ":")
21 return s
22}
23func getPortFromConn(conn net.Conn) string {
24 s := conn.RemoteAddr().String()
25 s = strings.Split(s, ":")[1]
26 s = strings.Trim(s, ":")
27 return s
28}
29func randInt(min int, max int) int {
30 r := rand.Intn(max-min) + min
31 return r
32}
33func hashPeer(p Peer) string {
34 /*peerJson, err := json.Marshal(p)
35 check(err)
36 peerString := string(peerJson)*/
37 peerString := p.IP + ":" + p.Port
38
39 h := sha256.New()
40 h.Write([]byte(peerString))
41 return base64.URLEncoding.EncodeToString(h.Sum(nil))
42}
43func hashBlock(b Block) string {
44 blockJson, err := json.Marshal(b)
45 check(err)
46 blockString := string(blockJson)
47
48 h := sha256.New()
49 h.Write([]byte(blockString))
50 return base64.URLEncoding.EncodeToString(h.Sum(nil))
51}