mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-04 12:09:31 +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"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
nostr "github.com/nbd-wtf/go-nostr"
|
||||
)
|
||||
@ -65,30 +64,6 @@ func Check(id string, minDifficulty int) error {
|
||||
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
|
||||
// nonce (as a nostr.Tag) that yields the required work.
|
||||
// Returns an error if the context expires before that.
|
||||
|
Loading…
x
Reference in New Issue
Block a user