IIRC, один из факторов, ограничивающих бассейны были, как медленно Bitcoin является отвечать на запросы getwork. Оказывается, что это достаточно легко - с помощью нескольких настроек для клиента Bitcoin - переместить большую часть работы поколения из bitcoind и на сервер пула с сервером пула, используя один модифицированный элемент работы с Bitcoin, чтобы ответить по существу, так как многие getwork запросы, как он любит. Так вот что я сделал:
https://github.com/makomk/bitcoin/tree/poolserv-work-gen https://github.com/makomk/pushpool/tree/local-work-gen
Изменения относительно просты: есть новый getworkex RPC вызов, который предоставляет копию coinbase сделки и Merkle филиал которой он находится, и при представлении решений сервер пула может отправить в модифицированном coinbase ОГО, который используется вместо оригинала. pushpoold в своей очереди, теперь знает, как использовать getworkex, вставить свой собственный дополнительный одноразовый номер в coinbase, увеличивают, что временное значение для создания рабочих элементов, а также конвертировать представленные акции обратно в форму, которая будет принимать bitcoind. Очень быстрый и грязный тест предполагает, что это должно быть в состоянии достигнуть на стадионах около 3000 getworks / с, что намного лучше, чем я видел раньше. (Я планирую реализовать способ для Bitcoin, чтобы подтолкнуть новую работу на сервер пула в какой-то момент тоже.)
Эти изменения также невероятно экспериментальные; Я в основном только протестировали их с poclbm и cgminer на testnet в коробке установить до сих пор. Я слышал, что Лука-младший работает над чем-то отдаленно похожего тоже, и shadders развивается другой подход к poolserver поколения работы в PoolServerJ, а также.
Редактировать: Упражнение для любознательного: патч Bitcoin в теории должно быть достаточно, чтобы реализовать родительскую blockchain стороны объединенной добычи, может быть, даже более эффективно, чем существующий подход. Вы можете использовать getworkex, чтобы добавить все, что вы хотите, чтобы сделки coinbase, и это дает вам Merkle отделение, необходимое для отправки работы на вспомогательных blockchains.