mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-12 09:51:51 +02:00
nip13: move Generate() to deprecated.go
This commit is contained in:
parent
2fc34e0de8
commit
75e6befdd0
32
nip13/deprecated.go
Normal file
32
nip13/deprecated.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package nip13
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/nbd-wtf/go-nostr"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Deprecated: use DoWork()
|
||||||
|
func Generate(event *nostr.Event, targetDifficulty int, timeout time.Duration) (*nostr.Event, error) {
|
||||||
|
if event.PubKey == "" {
|
||||||
|
return nil, ErrMissingPubKey
|
||||||
|
}
|
||||||
|
|
||||||
|
tag := nostr.Tag{"nonce", "", strconv.Itoa(targetDifficulty)}
|
||||||
|
event.Tags = append(event.Tags, tag)
|
||||||
|
var nonce uint64
|
||||||
|
start := time.Now()
|
||||||
|
for {
|
||||||
|
nonce++
|
||||||
|
tag[1] = strconv.FormatUint(nonce, 10)
|
||||||
|
if Difficulty(event.GetID()) >= targetDifficulty {
|
||||||
|
return event, nil
|
||||||
|
}
|
||||||
|
// benchmarks show one iteration is approx 3000ns on i7-8565U @ 1.8GHz.
|
||||||
|
// so, check every 30ms; arbitrary
|
||||||
|
if nonce%10000 == 0 && time.Since(start) > timeout {
|
||||||
|
return nil, ErrGenerateTimeout
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -7,7 +7,6 @@ import (
|
|||||||
"math/bits"
|
"math/bits"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
|
||||||
|
|
||||||
nostr "github.com/nbd-wtf/go-nostr"
|
nostr "github.com/nbd-wtf/go-nostr"
|
||||||
)
|
)
|
||||||
@ -65,30 +64,6 @@ func Check(id string, minDifficulty int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: use DoWork()
|
|
||||||
func Generate(event *nostr.Event, targetDifficulty int, timeout time.Duration) (*nostr.Event, error) {
|
|
||||||
if event.PubKey == "" {
|
|
||||||
return nil, ErrMissingPubKey
|
|
||||||
}
|
|
||||||
|
|
||||||
tag := nostr.Tag{"nonce", "", strconv.Itoa(targetDifficulty)}
|
|
||||||
event.Tags = append(event.Tags, tag)
|
|
||||||
var nonce uint64
|
|
||||||
start := time.Now()
|
|
||||||
for {
|
|
||||||
nonce++
|
|
||||||
tag[1] = strconv.FormatUint(nonce, 10)
|
|
||||||
if Difficulty(event.GetID()) >= targetDifficulty {
|
|
||||||
return event, nil
|
|
||||||
}
|
|
||||||
// benchmarks show one iteration is approx 3000ns on i7-8565U @ 1.8GHz.
|
|
||||||
// so, check every 30ms; arbitrary
|
|
||||||
if nonce%10000 == 0 && time.Since(start) > timeout {
|
|
||||||
return nil, ErrGenerateTimeout
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoWork() performs work in multiple threads (given by runtime.NumCPU()) and returns the first
|
// DoWork() performs work in multiple threads (given by runtime.NumCPU()) and returns the first
|
||||||
// nonce (as a nostr.Tag) that yields the required work.
|
// nonce (as a nostr.Tag) that yields the required work.
|
||||||
// Returns an error if the context expires before that.
|
// Returns an error if the context expires before that.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user