Bitcoin Forum
October 18, 2019, 07:47:37 PM *
News: 10th anniversary art contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: What a miner does?  (Read 1152 times)
blap
Newbie
*
Offline Offline

Activity: 51
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
1571428057
Hero Member
*
Offline Offline

Posts: 1571428057

View Profile Personal Message (Offline)

Ignore
1571428057
Reply with quote  #2

1571428057
Report to moderator
Remember that Bitcoin is still beta software. Don't put all of your money into BTC!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1571428057
Hero Member
*
Offline Offline

Posts: 1571428057

View Profile Personal Message (Offline)

Ignore
1571428057
Reply with quote  #2

1571428057
Report to moderator
1571428057
Hero Member
*
Offline Offline

Posts: 1571428057

View Profile Personal Message (Offline)

Ignore
1571428057
Reply with quote  #2

1571428057
Report to moderator
1571428057
Hero Member
*
Offline Offline

Posts: 1571428057

View Profile Personal Message (Offline)

Ignore
1571428057
Reply with quote  #2

1571428057
Report to moderator
Pieter Wuille
Legendary
*
Offline Offline

Activity: 1064
Merit: 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)


I do Bitcoin stuff.
compro01
Hero Member
*****
Offline Offline

Activity: 590
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
Newbie
*
Offline Offline

Activity: 51
Merit: 0


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

What is "ModifyNonce(blockheader, nonce)"?
compro01
Hero Member
*****
Offline Offline

Activity: 590
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: 1904
Merit: 1010



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: 590
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: 1064
Merit: 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.

I do Bitcoin stuff.
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!