É a quantidade de zero a esquerda.
Para entender, aproveite que voce usa o cliente jumble e clique nos três pontinhos e depois em ver evento em formato raw.
Verá varios campos e seus valores.
Para ser exato 7 campos.
A maioria são de um único valor e o campo tag é uma lista de valores.
[[Os valores Abaixo foram tirados da minha cabeça não correspondem a realidade. São só ilustrativos]]
Existe um negócio chamado 'função hash' que o que ele faz é pegar um texto e transforma em um número aleatório ( ou pega um número e transforma em outro número aleatório).
Como é uma função complicada, você não tem como saber qual o número que será gerado e portanto não tem como escolher qual número será gerado.
Só como exemplo:
'novo' gerar 7
'nuvio' gerar 65535
'satoshi' gerar 21000
'121' gerar 123
Vamos supor que o número que a função hash gere seja números entre 0 e 1 bilhão.
000.000.000 - 999.999.999
Caso o relay peça um pow de 5, significa que só aceitará evento que tenha 5 zeros a esquerda, então como nossa fução hash só gera número naquele intervalo
então só aceitará hash de 000.009.999 para baixo.
O hash do evento vai ser colocada no campo id que você viu no modo raw.
Vamos supor que eu queira publicar um evento cujo conteúdo é 'Boa noite galerinha'.
mas o hash deu 697.804.322.
Como o id é o hash do evento todo, exceto o campo sig, tem uma tag que vai variando para gerar um hash com determinada quantidade de zeros.
Então o evento ficaria:
O 5 é a quantidade de zeros exigidos no meu exemplo
id: 697.804.322
conteúdo: 'Boa noite galerinha'
tag: nonce, 1, 5
ignore a palavra nonce 👍
como no id não tem 5 zeros a esquerda, não será aceito pelo relay.
então temos que calcular um outro hash, variando o primeiro número do pow.
id: 143.998.021
conteúdo: 'Boa noite galerinha'
tag: nonce, 2, 5
De novo
id: 001.575.387
conteúdo: 'Boa noite galerinha'
tag: nonce, 3, 5
novamente, na vigésima tentativa:
id: 000.000.435
conteúdo: 'Boa noite galerinha'
tag: nonce, 20, 5
Agora tem 6 zeros a esquerda, será aceito pelo relay.
De forma bem porca, é isso.
'Aiiin mas o id que eu olhei não tinha 10 zeros.' É porque os zeros é na base binária e o id do evento é na base 16. e tem várias outras coisas que deixei de fora. como, por exemplo, o create_at ser atualizado. mas acho que deu para entender no geral.
Login to reply
Replies (2)
Eu não entendi nada mas vou te mandar 1000 sats pela explicação.
Sério? 🤔 tentei ser o mais claro possível.