arnaucube
arnaucube/blockchainIDsystemPublic Self-hosted repository
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}