-
Notifications
You must be signed in to change notification settings - Fork 2
contabilizacao de shares via IPVM, hashmap duplo, e JSON-RPC #2
Comments
TLDR: podemos usar a crate o O assim, cada minerador poderia rodar seu próprio para cada share encontrada por um minerador, ele é responsável por atualizar o contanto que a dificuldade de mineração esteja calibrada para um valor onde a taxa de submissão de shares seja restrita abaixo de um limiar ótimo pra rede, a tendência da condições necessárias para execução bem sucedida dessa atualização:
mineradores desonestos rodando versões customizadas de contudo, essa arquitetura seria vulnerável a ataques eclipse, onde todas conexões de p2p dos nós referencias em IPVM Apresentacoes
Specs |
criei uma lista de stars pra crates que considero boas candidatas a dependencias: https://github.com/stars/plebhash/lists/plebpool-design |
acho que viajei um pouco nesse aqui |
viajei nada isso eh genial |
para o problema de contabilizao de shares, proponho um hashmap duplo com interface de leitura via RPC
ShareLedger
o modulo
plebpool::share_ledger
usaria a cratedouble-map
para uso doDHashMap<K1, K2, V
fn
add_share
em pseudorust:
referencia sobre
fn DHashMap.get_keys_value()
: https://docs.rs/double-map/0.14.0/double_map/struct.DHashMap.html#method.get_keys_value)fn
share_janitor
async, checa as
block_height
, e se a job for antiga (e.g.: 6 blocos passados) ela é descartada de memoriaem pseudorust:
JSON-RPC
o modulo
plebhash::json_rpc
consome as APIs fornecidas porplebpool::share_ledger
e disponibiliza os seguintes endpoints:get_hashrate
um minerador enviando 1kH/s faria assim para conferir seu hashrate:
get_global_hashrate
se o minerador quiser saber o hashrate global (e.g.: 10GH/s):
get_relative_hashrate
se o minerador quiser saber como o hashrate dele se compara ao global:
onde o resultado é igual a
get_hashrate / get_global_hashrate
:get_shares
se o minerador quiser saber quantas shares ele ja acumulou no job atual (e.g.: 50MH):
The text was updated successfully, but these errors were encountered: