Fonctionnement d'une pool, théorie/algorithme
-
La probabilité de trouver un block est tellement faible que ce serait une stratégie douteuse. Mais pourquoi pas. Après il faudrait que le mec se code un proxy stratum pour intercepter ‘LE’ share et le proposer sur le réseau.
C’est une attaque connue sous le nom de withholding attaque.
https://bitcointalk.org/index.php?topic=653617.0 -
Visiblement il n’y a pas de solution simple. A part envoyer de temps en temps un travail vraiment facile pour voir si le mineur réponds (ou pas). Ou lui envoyer un travail que tu sais forcement gagnant (déjà miné), ce qui est bien plus dur à détecter…
Après le protocole BTC n’implémente visiblement pas de solution directe. -
Donc petit rappel mémo technique, tu va me dire si c’est sa:
share = Block compute avec un nonce qui respecte une difficulté minimum donner par la pool
La pool règle le miner pour qu’il mine avec des shares à difficulté acceptable par rapport à sa puissance?
Le share permet juste de s’assuré que le gars mine?
La pool pour validé un block entier vérifie chaque share pour voir si il réspect la difficulté minimum(recevoir fee) et si le share est égale à la difficulté demander par le réseaux BTC? -
c’est exactement ça.
-
@raoullevert Donc ont peu jamais savoir sur le réseaux qui va faire sortir ce fameux block alors ont peu dire que c’est chaotic :d
-
et la difficulté donnée par le pool doit être un compromis entre débit et temps. Si un mec mets une heure à valider un share, au final il partagera rien : le bloc change toutes les 20 minutes. Avec un diff trop basse, ca consomme trop de débit.
-
@raoullevert ouep la difficulté minimum c’est surtout pour ne pas ralentir le miner(quand il envoi), et pour ne pas flood la pool(quand ta 750miners c’est chaud)
-
Tout a fait.
Après le mineur tu vas pas le ralentir vraiment, a part si il a un réseau vraiment pourris. Le miner il cherche en interne, et rejette une grande partie des solutions (diff trop basse).
D’ailleurs si tu tentes de filer des shares avec une diff trop basse, ils ne sont pas comptabilisés.
Du coup la bande passante nécessaire pour miner est très faible. c’est quelques ko/s -
Ce qui pourrais être pas mal coder un petit server pool en nodejs avec express/koa + memcached, une pool vraiment en open avec le moins de code possible qu’elle reste simple mais fonctionnel à grande échelle, avec la possibilité à n’importe qu’elle gars qui créer sa propre cryptomonnaie basé sur le principe de PoW de modifier 1/2 fonctions et que tout le code reste fonctionnel.
-
En tout qu’a ont à relever le sujet surtout que peu voir/pas de personne en parle des pools du fonctionnement interne, pour comprendre quasiment obligé de retro le code d’une pool.
-
Node.js ou un vrai langage d’ailleurs Sur github tu as pas mal de choses déjà. Pour le memcached, je préfère rédis (ok je suis chiant, mais j’aime bien les trucs propres, séparés et scalables).
Apres le plus chiant c’est l’interface et la sécurisation : il faut s’assurer qu’on te pique pas tes coins ou que quelqu’un n’envoie pas des faux shares (tu en parlais tout a l’heure).Et faire un truc propre, sexy. -
@raoullevert Memcached sa n’a pas le même fonctionnement que Redis, d’ailleurs utilisé par Twitter.
Genre si ta 500 000 utilisateurs connectés, qu’elle que octet d’informations temporaire par utilisateurs/miners sa deviens chaud niveau mémoire vive du server et c’est la ou tu utilise Memcached qui est scalable/loadbalanced/Multithread/Swap: Memcached + (Redis ou couchdb) =
Niveau interface etc… j’ai le gout du propre pareil pour le code Full POO, je respecte les normes les plus strictes max 30lignes par fonctions etc…Après je pense faire une interface simple et propre en UIKit, Bootstrap v4.0 beta, sa permettra à chacun de mettre facilement son propre UIKit(Bootstrap plus facile à comprendre donc plus facile à remplacer)
Ont verra sa dans un prochain poste, (d’ailleurs la pool permettra d’introduire ma nouvelle cryptomonnaie qui n’est ni une altcoin ni une ICO’s, parti de 0) -
Oui pardon pour memcached… je suis de mauvaise fois totale !
Idem POO. Après je suis pythoniste, donc forcement ça me parle aussi. PEP forever !Un pti Nginx et c’est partis.
-
@raoullevert La POO en python jolie à voir (Le python est considéré le langage aillant la syntax la plus jolie)
-
Je ne comprends rien, mais c’est bien de se confronter à un peu d’abstraction…
-
@nakhom : sur les pools ou le python ?
-
@raoullevert - Roooh, bah les 2, hein…