git.gammaspectra.live/P2Pool/consensus@v0.0.0-20240403173234-a039820b20c9/p2pool/p2p/challenge_test.go (about) 1 package p2p 2 3 import ( 4 "crypto/rand" 5 "encoding/hex" 6 "git.gammaspectra.live/P2Pool/consensus/p2pool/sidechain" 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", hex.EncodeToString(handshakeChallenge[:])) 25 } else { 26 t.Logf("Solution for %s is %d (hash %s)", hex.EncodeToString(handshakeChallenge[:]), solution, hash.String()) 27 } 28 }