You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

48 lines
1002 B

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))
}