Bitcoin Forum
December 06, 2016, 02:24:22 PM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 [5] 6 »  All
  Print  
Author Topic: Think I just solved the pool problem.  (Read 17828 times)
goatpig
Legendary
*
Offline Offline

Activity: 1316

Armory Developer


View Profile
May 23, 2011, 02:56:08 PM
 #81

You still need a way to get work at a specific difficulty and for a specific public key

You'd be feeding that work to yourself. The public key and difficulty are broadcasted by the pool.

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

Posts: 1481034262

View Profile Personal Message (Offline)

Ignore
1481034262
Reply with quote  #2

1481034262
Report to moderator
1481034262
Hero Member
*
Offline Offline

Posts: 1481034262

View Profile Personal Message (Offline)

Ignore
1481034262
Reply with quote  #2

1481034262
Report to moderator
BitterTea
Sr. Member
****
Offline Offline

Activity: 294



View Profile
May 23, 2011, 03:05:40 PM
 #82

But currently there is no way to tell bitcoind to give you work of a specific difficulty and for a specific public key.
goatpig
Legendary
*
Offline Offline

Activity: 1316

Armory Developer


View Profile
May 23, 2011, 03:27:04 PM
 #83

But currently there is no way to tell bitcoind to give you work of a specific difficulty and for a specific public key.

This is why it would be better to come up with a class independent of bitcoind, that will create the block header and provide the work on its own. This prevents modifications to the core elements while it allows to:

1) Skip bitcoind entirely for pool miners as it is done right now. Keeping things simple is always a plus. It also ensures miners aren't nodes in the network, as it is now.
2) Simply have the miners getwork() from that class, let's say as a COM object. Then as said before, the class can determine pool version and outright bypass its main functions if it is dealing with a classic pool, or provide the work as a modded pool would need it to. This allows miner developers to easily implement the change, while keeping it independent from further improvement related to pure number crunching.

btcarmory.com
cuddlefish
Full Member
***
Offline Offline

Activity: 126



View Profile
May 23, 2011, 03:29:03 PM
 #84

But currently there is no way to tell bitcoind to give you work of a specific difficulty and for a specific public key.

This is why it would be better to come up with a class independent of bitcoind, that will create the block header and provide the work on its own. This prevents modifications to the core elements while it allows to:

1) Skip bitcoind entirely for pool miners as it is done right now. Keeping things simple is always a plus. It also ensures miners aren't nodes in the network, as it is now.
2) Simply have the miners getwork() from that class, let's say as a COM object. Then as said before, the class can determine pool version and outright bypass its main functions if it is dealing with a classic pool, or provide the work as a modded pool would need it to. This allows miner developers to easily implement the change, while keeping it independent from further improvement related to pure number crunching.

then who collects the transactions?

goatpig
Legendary
*
Offline Offline

Activity: 1316

Armory Developer


View Profile
May 23, 2011, 03:30:32 PM
 #85

But currently there is no way to tell bitcoind to give you work of a specific difficulty and for a specific public key.

This is why it would be better to come up with a class independent of bitcoind, that will create the block header and provide the work on its own. This prevents modifications to the core elements while it allows to:

1) Skip bitcoind entirely for pool miners as it is done right now. Keeping things simple is always a plus. It also ensures miners aren't nodes in the network, as it is now.
2) Simply have the miners getwork() from that class, let's say as a COM object. Then as said before, the class can determine pool version and outright bypass its main functions if it is dealing with a classic pool, or provide the work as a modded pool would need it to. This allows miner developers to easily implement the change, while keeping it independent from further improvement related to pure number crunching.

then who collects the transactions?

The pool, who else? The header is created with the pool's address.

btcarmory.com
cuddlefish
Full Member
***
Offline Offline

Activity: 126



View Profile
May 23, 2011, 03:35:01 PM
 #86

But currently there is no way to tell bitcoind to give you work of a specific difficulty and for a specific public key.

This is why it would be better to come up with a class independent of bitcoind, that will create the block header and provide the work on its own. This prevents modifications to the core elements while it allows to:

1) Skip bitcoind entirely for pool miners as it is done right now. Keeping things simple is always a plus. It also ensures miners aren't nodes in the network, as it is now.
2) Simply have the miners getwork() from that class, let's say as a COM object. Then as said before, the class can determine pool version and outright bypass its main functions if it is dealing with a classic pool, or provide the work as a modded pool would need it to. This allows miner developers to easily implement the change, while keeping it independent from further improvement related to pure number crunching.

then who collects the transactions?

The pool, who else? The header is created with the pool's address.
/sigh/
the whole point of this is to allow TX selection (and headers to an extent) by individual miners.

kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
May 23, 2011, 03:38:47 PM
 #87

Here are the things that need to be done to get this idea working in the real world:

1) The standard client must be modified to accept an address for the generation transaction.
2) Mining clients (and/or the flex proxy) must be modified to send another copy of each found block (share) to a second server.
3) New pool software (or a mod of an existing pool) to accept these block copies.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
May 23, 2011, 03:45:42 PM
 #88

1) The pool posts an address to be used for generation.  This could be on the website, or through RPC.
2) A node takes that address, and forms a block using it as the generation address.
3) The miner gets that work from the local node and starts working.
4) The miner gets a candidate, and sends it to the local node, plus another copy to the pool server.
5) The pool verifies that the generation address is the one published, and assigns credit to the miner.
6) When the block is found, it goes out through the local node as usual, and the pool notices it, and pays the miners.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
goatpig
Legendary
*
Offline Offline

Activity: 1316

Armory Developer


View Profile
May 23, 2011, 03:49:29 PM
 #89

the whole point of this is to allow TX selection (and headers to an extent) by individual miners.

I thought you were referring to the 50BTC reward.

The independent class makes the transaction list upload to the pool simpler since you have dedicated code to maintain and access this information. Naturally the pool needs to know which transactions the users have included in their block in order to verify the hash. The TX ID communication thing will work fine for this. The pool needs extra memory to maintain this transaction list, but it can be reduced to a certain extent:

1) only maintaining TX per ID, and per non included TX.
2) the class can send a "worker" group ID to the pool to put all the workers running from the same COM object (same machine or even same IP if you link your miners to one IP within your own LAN) under the same list in order to maintain a single TX list per machine and/or IP.

Lastly using IDs ensures the TX have been broadcasted to the network before hand. No shady business that way.

btcarmory.com
lizthegrey
Jr. Member
*
Offline Offline

Activity: 56


View Profile
May 24, 2011, 01:47:57 AM
 #90

It sadly is going to be necessary to modify the bitcoin client to return enough of the block under construction - right now, there is no way for a pool to verify that the pool's payment address is being specified unless the necessary information from the block is provided rather than just midpoint hash, etc.

Proposal: https://docs.google.com/document/d/1ciKH3M8WYS49ywz08beXtvpCm2wVGdzU7waKwcn_uaU/edit?hl=en_US&authkey=CJTqyOMF#
PRCman
Jr. Member
*
Offline Offline

Activity: 42


View Profile
June 01, 2011, 08:29:13 AM
 #91

2. no more pools being able to decide what transactions to include or not (see eligius and its policy of charging fees for all tx), or to try to create blockchain forks for double spending if they get too powerful (this hasn't happened yet, but it /could/, theoretically.)

Why they can't now?

16TaG8kMPMdsF1ABj2p2dbQX3WK4yG2bG3
gene
Sr. Member
****
Offline Offline

Activity: 252


View Profile
June 03, 2011, 11:50:37 AM
 #92

Any progress on this? Seems to be one of the most important outstanding issues.

*processing payment* *error 404 : funds not found*
Do you want to complain on the forum just to fall for another scam a few days later?
| YES       |        YES |
goatpig
Legendary
*
Offline Offline

Activity: 1316

Armory Developer


View Profile
June 03, 2011, 12:06:07 PM
 #93

Any progress on this? Seems to be one of the most important outstanding issues.

I've got other stuff on the works right now, but if by the time I've got some time no one has implemented it, I'll give it a try.

btcarmory.com
lizthegrey
Jr. Member
*
Offline Offline

Activity: 56


View Profile
June 03, 2011, 12:42:27 PM
 #94

Any progress on this? Seems to be one of the most important outstanding issues.
I am waiting for permission from my employer before I proceed. Nearly have it, but bureaucracy bureaucracy.
gene
Sr. Member
****
Offline Offline

Activity: 252


View Profile
June 05, 2011, 02:02:18 PM
 #95

I wish I had the skills to do this, myself.

Any progress on this? Seems to be one of the most important outstanding issues.
I am waiting for permission from my employer before I proceed. Nearly have it, but bureaucracy bureaucracy.

Just curious, but do you mind sharing who your employer is?

*processing payment* *error 404 : funds not found*
Do you want to complain on the forum just to fall for another scam a few days later?
| YES       |        YES |
grue
Global Moderator
Legendary
*
Offline Offline

Activity: 1932



View Profile
June 06, 2011, 12:19:32 AM
 #96

Any progress on this? Seems to be one of the most important outstanding issues.
I am waiting for permission from my employer before I proceed. Nearly have it, but bureaucracy bureaucracy.
you need your employer to work on a private project? wtf?

It is pitch black. You are likely to be eaten by a grue.

Tired of annoying signature ads? Ad block for signatures
Ixipixi
Newbie
*
Offline Offline

Activity: 5


View Profile
June 06, 2011, 09:36:22 AM
 #97

First comment and a new user to bitcoins.. I'm very intrigued by this pool solution, hope it gets solved eventually.

1MZVFA1VZmYTPXxvXi58E1qKTyvasKsMA4
BitterTea
Sr. Member
****
Offline Offline

Activity: 294



View Profile
June 06, 2011, 02:50:40 PM
 #98

Any progress on this? Seems to be one of the most important outstanding issues.
I am waiting for permission from my employer before I proceed. Nearly have it, but bureaucracy bureaucracy.
you need your employer to work on a private project? wtf?

I think she works for Google, and is planning on working on this project during her 20% time.
lizthegrey
Jr. Member
*
Offline Offline

Activity: 56


View Profile
June 06, 2011, 03:23:16 PM
 #99

Any progress on this? Seems to be one of the most important outstanding issues.
I am waiting for permission from my employer before I proceed. Nearly have it, but bureaucracy bureaucracy.
you need your employer to work on a private project? wtf?

I think she works for Google, and is planning on working on this project during her 20% time.
Correct. I actually was planning to do it outside work originally, but if Google is trying to get copyright on it anyways, I may as well use 20% time rather than my non-work time Smiley

http://www.leginfo.ca.gov/cgi-bin/displaycode?section=lab&group=02001-03000&file=2870-2872
Quote
   (1) Relate at the time of conception or reduction to practice of
the invention to the employer's business, or actual or demonstrably
anticipated research or development of the employer; or
Sukrim
Legendary
*
Offline Offline

Activity: 1848


View Profile
June 06, 2011, 03:52:31 PM
 #100

Some things to consider:

Transaction fees would also go to the pool, right?

How about the "I find a solution but don't post it" attack, aka. "withholding winning shares"? As miners might have to be adapted for this pooling scheme anyways, please also implement "oblivious shares"!

Can the pool require it's miners to always include some special transactions (for free), like payouts?

https://bitfinex.com <-- leveraged trading of BTCUSD, LTCUSD and LTCBTC (long and short) - 10% discount on fees for the first 30 days with this refcode: x5K9YtL3Zb
Mail me at Bitmessage: BM-BbiHiVv5qh858ULsyRDtpRrG9WjXN3xf
Pages: « 1 2 3 4 [5] 6 »  All
  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!