-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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: