Bitcoin Forum
December 10, 2016, 08:54:33 PM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: What a miner does?  (Read 1001 times)
blap
Jr. Member
*
Offline Offline

Activity: 53


=)


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
=)
1481403273
Hero Member
*
Offline Offline

Posts: 1481403273

View Profile Personal Message (Offline)

Ignore
1481403273
Reply with quote  #2

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

Posts: 1481403273

View Profile Personal Message (Offline)

Ignore
1481403273
Reply with quote  #2

1481403273
Report to moderator
Pieter Wuille
Legendary
*
Offline Offline

Activity: 1036


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: 485


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: 53


=)


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: 485


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: 1638



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: 485


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: 1036


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!