nostr-pow
Fast proof-of-work nonce generator for Nostr events written for Node.
Usage
const { computeAsync } = require('nostr-pow');
const event = {
pubkey: '489ac583fc30cfbee0095dd736ec46468faa8b187e311fda6269c4e18284ed0c',
kind: 1,
created_at: 1680947398,
content: 'Hello, world!',
tags: []
};
computeAsync(event, 25).then(event => {
console.log(event);
});
Prints out:
{
pubkey: '489ac583fc30cfbee0095dd736ec46468faa8b187e311fda6269c4e18284ed0c',
kind: 1,
created_at: 1680947398,
content: 'Hello, world!',
tags: [ [ 'nonce', '2963377', '25' ] ],
id: '0000003af010369da0aaacb0180401fd6d88f5dd0510ebbdfe0da754ecc08e31'
}
Once completed you can sign the event and publish it.
Usage (synchronous)
Identical function computeSync(event, nonce)
exists that will block the main thread and
directly return the resulting event.
Performance
nostr-pow
computes the hashes on the CPU using the maximum amount of hardware threads
available. See compute_nonce.c
for the main computation function.
On a Mac mini (2018) 3.2 GHz 6-Core Intel Core i7 nostr-pow
computes roughly 10 million
hashes per second.