Cada decisão que o ONYX toma vai para um registo que só cresce. A cada hora assina-se uma nota que diz quanto media e qual era a sua impressão. Se algo fosse reescrito depois, essas notas deixariam de bater certo.
Cada nota está assinada com a chave publicada acima — e verifica-se aqui, na tua máquina.
Cada nota aponta para a anterior. Uma nota em falta deixa um buraco.
A altura nunca desce. Para apagar algo do passado seria preciso deixar o registo mais curto do que uma nota já assinada.
A última nota é recente. Se tivesse parado, via-se.
Cada co-assinatura também é verificada aqui, contra os mesmos bytes. Uma testemunha não pode co-assinar sem ter visto a mesma história que tu estás a ver.
Para quando alguém disser «sancionaram-me sem razão». O recibo dele leva um número, esse número tem de estar dentro deste registo, e este registo não pode ter mudado desde então. Sem isto, a única resposta possível seria «confia em nós».
Gente independente que descarrega cada nota, verifica que cresce a partir da que viu antes, e co-assina com a sua própria chave. Uma testemunha que viu uma história não co-assina outra — por isso uma história falsa fica sem co-assinaturas, e isso vê-se.
node tools/witness.js https://argos.is-a.dev
Um comando. Cria uma chave, olha a cada hora, e para se algo deixar de bater certo.
Esta página lê exatamente isto, e mais nada. Tu também podes. /api/attest
{
"v": 2,
"algo": "ed25519",
"key": "MCowBQYDK2VwAyEA25zqsz+yCAxGMPwfT+c/DfOJRhlzI7A8Wn6bT2nMPXI=",
"signed": {
"1": "JSON.stringify({v,seq,at,height,head,prev})",
"2": "JSON.stringify({v,seq,at,height,head,size,root,prev})",
"3": "JSON.stringify({v,seq,at,height,head,size,root,code,prev})",
"4": "JSON.stringify({v,seq,at,height,head,size,root,code,prev})"
},
"count": 1063
}