Bitcoin Forum
June 18, 2018, 09:56:10 PM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: What a miner does?  (Read 1111 times)
blap
Jr. Member
*
Offline Offline

Activity: 52
Merit: 0


=)


View Profile
June 03, 2011, 04:07:57 PM
 #1

Just to understand the process, what a miner does? Hash the block header (https://en.bitcoin.it/wiki/Block_hashing_algorithm)? Someone has a pseudo-code for that? I have looked inside m0mchil-poclbm and jsMiner.js... It was confusing for me...
 Cry

I could be killing, I could be stealing. But I'm begging here:
http://payb.tc/blap or
1LLqF5bdbhQoH37ztTsZ5tmyE5Lq7jYmns
=)
1529358970
Hero Member
*
Offline Offline

Posts: 1529358970

View Profile Personal Message (Offline)

Ignore
1529358970
Reply with quote  #2

1529358970
Report to moderator
The World's Betting Exchange

Bet with play money. Win real Bitcoin. 5BTC Prize Fund for World Cup 2018.

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1529358970
Hero Member
*
Offline Offline

Posts: 1529358970

View Profile Personal Message (Offline)

Ignore
1529358970
Reply with quote  #2

1529358970
Report to moderator
Pieter Wuille
Legendary
*
Offline Offline

Activity: 1050
Merit: 1005


View Profile WWW
June 03, 2011, 04:43:05 PM
 #2


loop:
  var blockheader = DoGetWorkRPCCall()
  var target = ExtractTarget(blockheader)
  for nonce in 0..4294967295:
    var attempt = ModifyNonce(blockheader, nonce)
    var hash = SHA256(SHA256(attempt))
    if (hash < target)
      ReportSolution(attempt)


aka sipa, core dev team

Tips and donations: 1KwDYMJMS4xq3ZEWYfdBRwYG2fHwhZsipa
compro01
Hero Member
*****
Offline Offline

Activity: 603
Merit: 500



View Profile
June 03, 2011, 05:17:15 PM
 #3


loop:
  var blockheader = DoGetWorkRPCCall()
  var target = ExtractTarget(blockheader)
  for nonce in 0..4294967295:
    var attempt = ModifyNonce(blockheader, nonce)
    var hash = SHA256(SHA256(attempt))
    if (hash < target)
      ReportSolution(attempt)



i believe should be (hash <= target)

otherwise, looks right to me.
blap
Jr. Member
*
Offline Offline

Activity: 52
Merit: 0


=)


View Profile
June 03, 2011, 06:24:11 PM
 #4

What is "ModifyNonce(blockheader, nonce)"?

I could be killing, I could be stealing. But I'm begging here:
http://payb.tc/blap or
1LLqF5bdbhQoH37ztTsZ5tmyE5Lq7jYmns
=)
compro01
Hero Member
*****
Offline Offline

Activity: 603
Merit: 500



View Profile
June 03, 2011, 06:36:32 PM
 #5

What is "ModifyNonce(blockheader, nonce)"?

sticks the incremented nonce into the block header, replacing the previously tried one.
dserrano5
Legendary
*
Offline Offline

Activity: 1848
Merit: 1000



View Profile
June 03, 2011, 08:25:13 PM
 #6

What is "ModifyNonce(blockheader, nonce)"?

sticks the incremented nonce into the block header, replacing the previously tried one.

I'm a total noob at this but, if I didn't misunderstand this, the current timestamp is also took into account. Else, a given block could be unsolvable if it happens that none of the 2**32 nonces result in a hash less than the target.

compro01
Hero Member
*****
Offline Offline

Activity: 603
Merit: 500



View Profile
June 03, 2011, 10:54:58 PM
 #7

What is "ModifyNonce(blockheader, nonce)"?

sticks the incremented nonce into the block header, replacing the previously tried one.

I'm a total noob at this but, if I didn't misunderstand this, the current timestamp is also took into account. Else, a given block could be unsolvable if it happens that none of the 2**32 nonces result in a hash less than the target.

Yes, there would need to be a ModifyTimestamp(blockheaders, timestamp) step, but whenever the nonce overflows, the ExtraNonce part of the generation transaction gets incremented.
Pieter Wuille
Legendary
*
Offline Offline

Activity: 1050
Merit: 1005


View Profile WWW
June 04, 2011, 12:39:03 AM
 #8

Miners typically do not modify the timestamp - they just use the timestamp in the block, as received by the getwork call.

aka sipa, core dev team

Tips and donations: 1KwDYMJMS4xq3ZEWYfdBRwYG2fHwhZsipa
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!