Fast proof-of-work nonce generator for Nostr events written for Node.
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.
Identical function computeSync(event, nonce)
exists that will block the main thread and
directly return the resulting event.
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.