package main import ( "crypto/sha256" "encoding/base64" "encoding/json" "math/rand" "net" "strings" ) func getIPPortFromConn(conn net.Conn) string { ip := getIPFromConn(conn) port := getPortFromConn(conn) return ip + ":" + port } func getIPFromConn(conn net.Conn) string { s := conn.RemoteAddr().String() s = strings.Split(s, ":")[0] s = strings.Trim(s, ":") return s } func getPortFromConn(conn net.Conn) string { s := conn.RemoteAddr().String() s = strings.Split(s, ":")[1] s = strings.Trim(s, ":") return s } func randInt(min int, max int) int { r := rand.Intn(max-min) + min return r } func hashPeer(p Peer) string { peerString := p.IP + ":" + p.Port h := sha256.New() h.Write([]byte(peerString)) return base64.URLEncoding.EncodeToString(h.Sum(nil)) } func hashBlock(b Block) string { blockJson, err := json.Marshal(b) check(err) blockString := string(blockJson) h := sha256.New() h.Write([]byte(blockString)) return base64.URLEncoding.EncodeToString(h.Sum(nil)) }