Bitcoin Forum
May 05, 2024, 12:29:07 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 »  All
  Print  
Author Topic: Think I just solved the pool problem.  (Read 19106 times)
goatpig
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

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.

1714912147
Hero Member
*
Offline Offline

Posts: 1714912147

View Profile Personal Message (Offline)

Ignore
1714912147
Reply with quote  #2

1714912147
Report to moderator
1714912147
Hero Member
*
Offline Offline

Posts: 1714912147

View Profile Personal Message (Offline)

Ignore
1714912147
Reply with quote  #2

1714912147
Report to moderator
1714912147
Hero Member
*
Offline Offline

Posts: 1714912147

View Profile Personal Message (Offline)

Ignore
1714912147
Reply with quote  #2

1714912147
Report to moderator
"In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714912147
Hero Member
*
Offline Offline

Posts: 1714912147

View Profile Personal Message (Offline)

Ignore
1714912147
Reply with quote  #2

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

Activity: 294
Merit: 250



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: 3668
Merit: 1345

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.

cuddlefish (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250


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: 3668
Merit: 1345

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.

cuddlefish (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250


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
Merit: 1024



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.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1024



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.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
goatpig
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

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.

lizthegrey
Newbie
*
Offline Offline

Activity: 56
Merit: 0


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
Newbie
*
Offline Offline

Activity: 42
Merit: 0


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?
gene
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


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: 3668
Merit: 1345

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.

lizthegrey
Newbie
*
Offline Offline

Activity: 56
Merit: 0


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
Merit: 250


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
Legendary
*
Offline Offline

Activity: 2058
Merit: 1431



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.

Adblock for annoying signature ads | Enhanced Merit UI
Ixipixi
Newbie
*
Offline Offline

Activity: 5
Merit: 0


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.
BitterTea
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250



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
Newbie
*
Offline Offline

Activity: 56
Merit: 0


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: 2618
Merit: 1006


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://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
Pages: « 1 2 3 4 [5] 6 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!