A Golang library for the Stratum V2 Protocol
- Go 100%
| binary.go | ||
| binary_test.go | ||
| constants.go | ||
| core.go | ||
| core_test.go | ||
| go.mod | ||
| go.sum | ||
| interfaces.go | ||
| jobdeclaration.go | ||
| jobdeclaration_test.go | ||
| LICENSE | ||
| mining.go | ||
| mining_test.go | ||
| noise.go | ||
| noise_test.go | ||
| README.MD | ||
| templatedistribution.go | ||
| templatedistribution_test.go | ||
| testutils_test.go | ||
| types.go | ||
A Golang library for the Bitcoin Stratum V2 Protocol
implemented
- core messages
- mining protocol
usage
bytes := hexDec("00801b1f00002d000000060000001f1e2f01a18a144c53f5256a00e00a200600000000000a")
frame := stratumv2.Frame{}
msg := stratumv2.SubmitSharesExtended{}
if err := frame.Decode(bytes); err != nil {
println(err.Error())
return
}
if frame.MessageType != stratumv2.MethodSubmitSharesExtended {
panic("not SubmitSharesExtended message")
}
if err := msg.Decode(frame.Payload); err != nil {
println(err.Error())
return
}
fmt.Sprintf("%+v", msg) /// {SubmitSharesStandard:{ChannelID:45 Sequence:6 JobID:19865119 Nonce:1276414625 Time:1780872531 Version:537583616} Extranonce:[0 0 0 0 0 10]}
/// most everything implements the [Codable] interface
enc, err := msg.Encode()
if err != nil {
println(err.Error())
return
}
TODO
- implement all protocols
- jobs
- template
- implement noise
- doc comments