git.gammaspectra.live/P2Pool/consensus/v3@v3.8.0/p2pool/p2p/challenge_test.go (about) 1 package p2p 2 3 import ( 4 "crypto/rand" 5 "git.gammaspectra.live/P2Pool/consensus/v3/p2pool/sidechain" 6 fasthex "github.com/tmthrgd/go-hex" 7 "sync/atomic" 8 "testing" 9 ) 10 11 func TestFindChallengeSolution(t *testing.T) { 12 var handshakeChallenge HandshakeChallenge 13 if _, err := rand.Read(handshakeChallenge[:]); err != nil { 14 t.Fatal(err) 15 } 16 17 var buf [1 + HandshakeChallengeSize]byte 18 buf[0] = byte(MessageHandshakeChallenge) 19 copy(buf[1:], handshakeChallenge[:]) 20 21 var stop atomic.Bool 22 23 if solution, hash, ok := FindChallengeSolution(handshakeChallenge, sidechain.ConsensusDefault.Id, &stop); !ok { 24 t.Fatalf("No solution for %s", fasthex.EncodeToString(handshakeChallenge[:])) 25 } else { 26 t.Logf("Solution for %s is %d (hash %s)", fasthex.EncodeToString(handshakeChallenge[:]), solution, hash.String()) 27 } 28 }