Bitcoin Forum
July 21, 2024, 06:59:09 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Petits calculs en Python.  (Read 2390 times)
Pioupiou (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
October 07, 2013, 10:06:50 AM
Last edit: October 07, 2013, 06:24:39 PM by Pioupiou
 #1

Bonjour,

Juste pour le fun et le plaisir de comprendre, je cherche à coder un petit tool en Python qui me permettrait de faire des calculs.

L'objectif est simple mais je ne trouve rien de probant sur le net, ce qui me surprend quand même un peu. Je pense que je ne dois pas utiliser les bons mots clés dans Google.

Je cherche à coder la chose suivante :

A partir d'une difficulté donnée et d'une puissance de calcul, dire combien de Bitcoin je gagne par heure, jour, semaine ect.

Sur le salon #bitcoin-fr (Freenode), on m'a indiqué un lien : http://bitcoin.stackexchange.com/questions/118/how-much-bitcoin-will-i-mine-right-now-with-hardware-x

Mais les formules semblent erronées. Si quelqu'un avait la gentillesse de m'indiquer un chemin vers ou chercher, ce serait sympa Smiley

En vous remerciant d'avance.
mah87
Donator
Hero Member
*
Offline Offline

Activity: 756
Merit: 500

-Bitcoin & Ripple-


View Profile
October 07, 2013, 10:07:39 AM
 #2

http://www.alloscomp.com/bitcoin/calculator
Pioupiou (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
October 07, 2013, 10:15:23 AM
 #3

@Mah87, je te remercie pour ta réponse rapide.

J'ai trouvé ce lien hier et j'ai jeté un oeil à la source qui est donnée. Le code est une véritable plaie, je n'y comprends rien. La sémantique de l'auteur est étrange pour moi. Finalement, j'ai fini par écarter cette source en espérant trouver quelque chose de plus clair, de plus pythonique.
kcud_dab
Legendary
*
Offline Offline

Activity: 1652
Merit: 1000


Bitcoin enthusiast!


View Profile WWW
October 07, 2013, 12:44:03 PM
Last edit: October 07, 2013, 02:45:57 PM by kcud_dab
 #4

A priori la formule est celle ci :

Code:
h*t*B/(D*2^32)
h = hashrate, t = time, B = block reward, D = difficulty

Ce qui donnerait par ex pour un erupteur USB en ce moment :
355*10^6*30*24*3600*25/(189*10^6*2^32) = 0.02833881548 BTC / mois

Edit : unité en BTC/mois et non BTC/jour

mah87
Donator
Hero Member
*
Offline Offline

Activity: 756
Merit: 500

-Bitcoin & Ripple-


View Profile
October 07, 2013, 01:51:14 PM
 #5

A priori la formule est celle ci :

Code:
h*t*B/(D*2^32)
h = hashrate, t = time, B = block reward, D = difficulty

Ce qui donnerait par ex pour un erupteur USB en ce moment :
355*10^6*30*24*3600*25/(189*10^6*2^32) = 0.02833881548 BTC / jour


Je sais pas comment est fait ton calcul mais je pense qu'il manque un zéro quelque part. Pke à 60Gh ==> 0,15btc/jour
Donc normalement pour un block erupter de 3,5Gh on devrait trouver un résultat plus proche de 0,0085btc/jour.
kcud_dab
Legendary
*
Offline Offline

Activity: 1652
Merit: 1000


Bitcoin enthusiast!


View Profile WWW
October 07, 2013, 02:45:25 PM
 #6

hmm, ce n'est pas par jour mais par mois  (30*24*3600)

Donc pour 60 GHz :
60000*10^6*30*24*3600*25/(189*10^6*2^32)
= 4.78965895517 / mois
= 0.1596552985 / jour


Pour 3,5 GHz, ça donne ça :
3500*10^6*30*24*3600*25/(189*10^6*2^32)
= 0.2793967723 / mois
= 0.00931322574 / jour

mah87
Donator
Hero Member
*
Offline Offline

Activity: 756
Merit: 500

-Bitcoin & Ripple-


View Profile
October 07, 2013, 02:47:13 PM
 #7

hmm, ce n'est pas par jour mais par mois  (30*24*3600)

Donc pour 60 GHz :
60000*10^6*30*24*3600*25/(189*10^6*2^32)
= 4.78965895517 / mois
= 0.1596552985 / jour


Pour 3,5 GHz, ça donne ça :
3500*10^6*30*24*3600*25/(189*10^6*2^32)
= 0.2793967723 / mois
= 0.00931322574 / jour

yep.
Pioupiou (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
October 07, 2013, 06:22:24 PM
 #8

Merci pour vos explications. J'ai pu réussir. Smiley

Je mets le snippet Python en dessous, défois que cela servirait à d'autres.

Code:
        data_tmp['second'] = data['powerinhs']*a.get_blockreward()/(data['diff']*2**32)
        data_tmp['minute'] = data['powerinhs']*60*a.get_blockreward()/(data['diff']*2**32)
        data_tmp['hour'] = data['powerinhs']*3600*a.get_blockreward()/(data['diff']*2**32)
        data_tmp['day'] = data['powerinhs']*3600*24*a.get_blockreward()/(data['diff']*2**32)
        data_tmp['week'] = data['powerinhs']*3600*24*7*a.get_blockreward()/(data['diff']*2**32)
        data_tmp['month'] = data['powerinhs']*3600*24*30*a.get_blockreward()/(data['diff']*2**32)

J'en profite aussi pour donner l'explication de la méthode get_blockreward()

Code:
    # To get the current block reward
    # The number of blocks times the coin value of a block is the
    #  number of coins in existence. The coin value of a block is
    #  50 BTC for each of the first 210,000 blocks, 25 BTC for the
    #  next 210,000 blocks, then 12.5 BTC, 6.25 BTC and so on.
    def get_blockreward(self):
        return 50.0/2**(self.get_latestblock()/210000)

C'est tout bête, mais cela aura eu le mérite de m'occuper l'après midi intelligemment ! :p
TotalPanda
Legendary
*
Offline Offline

Activity: 1946
Merit: 1012

vertex output parameter not completely initialized


View Profile
January 18, 2014, 11:06:17 PM
 #9

Salut, sympa vos calculs, vous devriez intervenir plus souvent,
pour nous éclairer des vos lanternes.
Et carrément, expliquer à la masse ingrate pourquoi le language python
est le plus adapté.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!