Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Mike Hearn
Jeff, I think the message you're replying to got clipped.

Satoshi's only comment AFAIK on the topic of GPU mining was to wish for a
gentlemen's agreement to postpone it as long as possible, to help make sure
the distribution of coins was as even as possible. Indeed this predated
pooled mining.
--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Mike Hearn
Oops, sorry, I see the subject line changed. This is what I get for working
down the thread list top to bottom :)

I think the best path forward now is to finish off getblocktemplate support
in the various tools so it's possible to pool for payout purposes without
giving up control of block creation modulo the coinbase. Combined with the
recent sipa performance enhancing goodness, it would hopefully persuade
some non-trivial chunk of hashpower to go back to running their own node
and start the process of turning pools merely into payout trackers rather
than block selectors.


On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:

 Jeff, I think the message you're replying to got clipped.

 Satoshi's only comment AFAIK on the topic of GPU mining was to wish for a
 gentlemen's agreement to postpone it as long as possible, to help make sure
 the distribution of coins was as even as possible. Indeed this predated
 pooled mining.


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Jeff Garzik
Before they got traction, yes.  But he projected a bit, as anyone
could, to see the trend.

On Thu, Jul 17, 2014 at 1:22 PM, slush sl...@centrum.cz wrote:

 On Thu, Jul 17, 2014 at 6:14 PM, Jeff Garzik jgar...@bitpay.com wrote:

 Historical note:  On one hand, Satoshi seemed to dislike the early
 emergence of GPU mining pools quite a bit.


 To my knowledge, Satoshi left the project before mining pools got a
 traction.

 slush



-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Jeff Garzik
Yes.  That, and several other things.  If you can figure out how to
propagate a block without re-propagating all the transactions everyone
already has, you address the large-blocks-slower-to-relay problem, and
additionally create an incentive for miners to mine blocks consisting
of publicly broadcast transactions (versus a bunch of secret ones
mined with secret agreements).

Democratizing transaction selection takes a bit of power away from the
miners and gives it back to the network at large.  GBT is another
piece of that puzzle.


On Fri, Jul 18, 2014 at 6:43 AM, Mike Hearn m...@plan99.net wrote:
 Oops, sorry, I see the subject line changed. This is what I get for working
 down the thread list top to bottom :)

 I think the best path forward now is to finish off getblocktemplate support
 in the various tools so it's possible to pool for payout purposes without
 giving up control of block creation modulo the coinbase. Combined with the
 recent sipa performance enhancing goodness, it would hopefully persuade some
 non-trivial chunk of hashpower to go back to running their own node and
 start the process of turning pools merely into payout trackers rather than
 block selectors.


 On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:

 Jeff, I think the message you're replying to got clipped.

 Satoshi's only comment AFAIK on the topic of GPU mining was to wish for a
 gentlemen's agreement to postpone it as long as possible, to help make sure
 the distribution of coins was as even as possible. Indeed this predated
 pooled mining.





-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Emin Gün Sirer
I thought I'd chime in and point out some research results that might help.
Even if they don't, there is a cool underlying technique that some of you
might find interesting.

The problem being tackled here is very similar to set reconciliation,
where
peer A thinks that the set of transactions that should be in the block is
S_A,
and peer B has actually included set S_B, and S_A and S_B are expected
to not differ much. Ideally, one would like the communication complexity
between A and B to be O(delta), not O(S_B) as it is right now. And ideally,
one would like B to send a single message to A, and for A to figure out the
difference between the two sets, without any lengthy back and forth
communication. In essence, I would like to give you some magical packet
that is pretty small and communicates just the delta between what you and
I know.

This paper from Cornell describes a scheme for achieving this:
   Yaron Minsky, Ari Trachtenberg, Richard Zippel: Set reconciliation with
nearly optimal communication complexity. IEEE Transactions on Information
Theory 49(9): 2213-2218 (2003)
   http://ipsit.bu.edu/documents/ieee-it3-web.pdf

Those of you looking for a TL;DR should read the intro and then skip to
page 8 for the example. The underlying trick is very cool, comes from the
peer-to-peer/gossip literature, and it is underused. It'd be really cool if
it
could be applied to this problem to reduce the size of the packets.

This approach has three benefits over the Bloom filter approach (if I
understand the Bloom filter idea correctly):

(1) Bloom filters require packets that are still O(S_A),

(2) Bloom filters are probabilistic, so require extra complications
when there is a hash collision. In the worst case, A might get confused
about which transaction B actually included, which would lead to a
fork. (I am not sure if I followed the Bloom filter idea fully -- this may
not happen with the proposal, but it's a possibility with a naive Bloom
filter implementation)

(3) Bloom filters are interactive, so when A detects that B has included
some transactions that A does not know about, it has to send a message
to figure out what those transactions are.

Set reconciliation is O(delta), non-probabilistic, and non-interactive. The
naive version requires that one have some idea of the size of the delta,
but I think the paper has some discussion of how to handle the delta
estimate.

I have not gone through the full exercise of actually applying this trick to
the Bitcoin p2p protocol yet, but wanted to draw your attention to it.
If someone is interested in applying this stuff to Bitcoin, I'd be happy
to communicate further off list.

- egs



On Fri, Jul 18, 2014 at 6:44 AM, Jeff Garzik jgar...@bitpay.com wrote:

 Yes.  That, and several other things.  If you can figure out how to
 propagate a block without re-propagating all the transactions everyone
 already has, you address the large-blocks-slower-to-relay problem, and
 additionally create an incentive for miners to mine blocks consisting
 of publicly broadcast transactions (versus a bunch of secret ones
 mined with secret agreements).

 Democratizing transaction selection takes a bit of power away from the
 miners and gives it back to the network at large.  GBT is another
 piece of that puzzle.


 On Fri, Jul 18, 2014 at 6:43 AM, Mike Hearn m...@plan99.net wrote:
  Oops, sorry, I see the subject line changed. This is what I get for
 working
  down the thread list top to bottom :)
 
  I think the best path forward now is to finish off getblocktemplate
 support
  in the various tools so it's possible to pool for payout purposes without
  giving up control of block creation modulo the coinbase. Combined with
 the
  recent sipa performance enhancing goodness, it would hopefully persuade
 some
  non-trivial chunk of hashpower to go back to running their own node and
  start the process of turning pools merely into payout trackers rather
 than
  block selectors.
 
 
  On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:
 
  Jeff, I think the message you're replying to got clipped.
 
  Satoshi's only comment AFAIK on the topic of GPU mining was to wish for
 a
  gentlemen's agreement to postpone it as long as possible, to help make
 sure
  the distribution of coins was as even as possible. Indeed this predated
  pooled mining.
 
 



 --
 Jeff Garzik
 Bitcoin core developer and open source evangelist
 BitPay, Inc.  https://bitpay.com/


 --
 Want fast and easy access to all the code in your enterprise? Index and
 search up to 200,000 lines of code with a free copy of Black Duck
 Code Sight - the same software that powers the world's largest code
 search on Ohloh, the Black Duck Open Hub! Try it now.
 http://p.sf.net/sfu/bds
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 

Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Emin Gün Sirer
My apologies for posting to the wrong thread.



On Fri, Jul 18, 2014 at 5:51 PM, Emin Gün Sirer el33th4...@gmail.com
wrote:

 I thought I'd chime in and point out some research results that might help.
 Even if they don't, there is a cool underlying technique that some of you
 might find interesting.

 The problem being tackled here is very similar to set reconciliation,
 where
 peer A thinks that the set of transactions that should be in the block is
 S_A,
 and peer B has actually included set S_B, and S_A and S_B are expected
 to not differ much. Ideally, one would like the communication complexity
 between A and B to be O(delta), not O(S_B) as it is right now. And ideally,
 one would like B to send a single message to A, and for A to figure out the
 difference between the two sets, without any lengthy back and forth
 communication. In essence, I would like to give you some magical packet
 that is pretty small and communicates just the delta between what you and
 I know.

 This paper from Cornell describes a scheme for achieving this:
Yaron Minsky, Ari Trachtenberg, Richard Zippel: Set reconciliation with
 nearly optimal communication complexity. IEEE Transactions on Information
 Theory 49(9): 2213-2218 (2003)
http://ipsit.bu.edu/documents/ieee-it3-web.pdf

 Those of you looking for a TL;DR should read the intro and then skip to
 page 8 for the example. The underlying trick is very cool, comes from the
 peer-to-peer/gossip literature, and it is underused. It'd be really cool
 if it
 could be applied to this problem to reduce the size of the packets.

 This approach has three benefits over the Bloom filter approach (if I
 understand the Bloom filter idea correctly):

 (1) Bloom filters require packets that are still O(S_A),

 (2) Bloom filters are probabilistic, so require extra complications
 when there is a hash collision. In the worst case, A might get confused
 about which transaction B actually included, which would lead to a
 fork. (I am not sure if I followed the Bloom filter idea fully -- this may
 not happen with the proposal, but it's a possibility with a naive Bloom
 filter implementation)

  (3) Bloom filters are interactive, so when A detects that B has included
 some transactions that A does not know about, it has to send a message
 to figure out what those transactions are.

 Set reconciliation is O(delta), non-probabilistic, and non-interactive. The
 naive version requires that one have some idea of the size of the delta,
 but I think the paper has some discussion of how to handle the delta
 estimate.

 I have not gone through the full exercise of actually applying this trick
 to
 the Bitcoin p2p protocol yet, but wanted to draw your attention to it.
 If someone is interested in applying this stuff to Bitcoin, I'd be happy
 to communicate further off list.

 - egs



 On Fri, Jul 18, 2014 at 6:44 AM, Jeff Garzik jgar...@bitpay.com wrote:

 Yes.  That, and several other things.  If you can figure out how to
 propagate a block without re-propagating all the transactions everyone
 already has, you address the large-blocks-slower-to-relay problem, and
 additionally create an incentive for miners to mine blocks consisting
 of publicly broadcast transactions (versus a bunch of secret ones
 mined with secret agreements).

 Democratizing transaction selection takes a bit of power away from the
 miners and gives it back to the network at large.  GBT is another
 piece of that puzzle.


 On Fri, Jul 18, 2014 at 6:43 AM, Mike Hearn m...@plan99.net wrote:
  Oops, sorry, I see the subject line changed. This is what I get for
 working
  down the thread list top to bottom :)
 
  I think the best path forward now is to finish off getblocktemplate
 support
  in the various tools so it's possible to pool for payout purposes
 without
  giving up control of block creation modulo the coinbase. Combined with
 the
  recent sipa performance enhancing goodness, it would hopefully persuade
 some
  non-trivial chunk of hashpower to go back to running their own node and
  start the process of turning pools merely into payout trackers rather
 than
  block selectors.
 
 
  On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:
 
  Jeff, I think the message you're replying to got clipped.
 
  Satoshi's only comment AFAIK on the topic of GPU mining was to wish
 for a
  gentlemen's agreement to postpone it as long as possible, to help make
 sure
  the distribution of coins was as even as possible. Indeed this predated
  pooled mining.
 
 



 --
 Jeff Garzik
 Bitcoin core developer and open source evangelist
 BitPay, Inc.  https://bitpay.com/


 --
 Want fast and easy access to all the code in your enterprise? Index and
 search up to 200,000 lines of code with a free copy of Black Duck
 Code Sight - the same software that powers the world's largest code
 search on Ohloh, the Black Duck Open Hub! Try it now.
 

[Bitcoin-development] Decentralizing ming

2014-07-17 Thread Jeff Garzik
Define acceptable.  The 40% thing is marketing and a temporary
solution.  And people come down on both sides of whether or not
marketing 40% is a good idea.

I think it is a baby step that is moving in the right direction.  You
want the numbers and sentiment moving in that direction (down, versus
own the market! /IPO).

The more critical piece is fleshing out the various proposals and
technical solutions for decentralized transaction selection and other
aspects of SPOF-proofing mining.

Historical note:  On one hand, Satoshi seemed to dislike the early
emergence of GPU mining pools quite a bit.  On the other hand, Satoshi
noted that the network would probably devolve down to a few big
players if we ever reached VISA/MC transaction levels.  Satoshi
clearly never figured this part out :)

Today, there is consensus on the need for a keep bitcoin free and
open technical solution, but it remains to be seen how much we
engineers can really do to make life fair.  Making transaction
selection a bit more independent from hashpower seems one step.  There
are several other proposals floating about.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-17 Thread slush
On Thu, Jul 17, 2014 at 6:14 PM, Jeff Garzik jgar...@bitpay.com wrote:

 Historical note:  On one hand, Satoshi seemed to dislike the early
 emergence of GPU mining pools quite a bit.


To my knowledge, Satoshi left the project before mining pools got a
traction.

slush
--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development