Идея заключается в том, чтобы сделать пул сервера-менее не контролируется одним человеком (или группой), как традиционные бассейны. Все делается горнорудных самих узлов.
1. Концепция
Мы объединяем некоторые идеи из бассейна слякоти и от раннего пула puddinpop в:
- Каждый мины реального Bitcoin блоков.
- Транзакции поколения имеют несколько выходов, по одному для каждого участника в бассейне.
- Шахтеры не только сообщают блоки, которые избили "реальный" трудности, но и бить только нижние трудности.
В отличие от централизованных бассейнов, однако, шахтеры подключены только к Афоризм. Это делается через вторичную p2p сети (отключен от реальной сети Bitcoin). С помощью этой сети, они показывают их низкая сложность блоки к Афоризму.
Каждый узел поддерживает таблицу с тем, как награда от его блоков должна быть распределена другими членами пула. Когда шахтер X видит (низкая сложность) блок по рудничной Y, который содержит адрес X в качестве выходных данных транзакции поколения, X обновляет свою таблицу, чтобы увеличить свою долю на Y. Цель состоит в том, что это достигает равновесия, пропорциональные скорость хеширования всех игроков.
Так как один должно решить, что выходы транзакций поколения являются перед фактическим началом шахты, с низким уровнем сложности блоком является unfakeable доказательства того, что один сделал намерен распределить прибыль в соответствии с способом, закодированным в сделке. Если Y остановятся, включая X, как выход, X заметит и может принять ответные меры путем удаления Y от его собственных выходов.
2. Вопросы,
Есть некоторые возможные проблемы, связанные с этим:
- Каждый должен видеть все низкий сложности блоки каждого. Это быстро приводит к довольно высокой пропускной способности канала. Одно из решений, чтобы шахтеры решить свой собственный (низкий) целевую трудность и кодирование, что в их блоках, а также (он может храниться в coinbase генерирующей сделки, например). Блок с целевой сложности D (и хэш, который соответствует этой трудности, конечно), то считается D diffculty-1 блоков для оценки скорости.
- Атаки: как и все бассейны, эта система является уязвимой к вандализму атаке: шахтер может просто не сообщить блок, он обнаружил, что бьет реальные трудности, уменьшая совместный доход всего бассейна. Если бы люди были свободны присоединиться и оставить P2P бассейн, как описано здесь, это было бы очень трудно обнаружить. Вторая возможная атака ждет благоприятное время (где вы заработали больше, чем вы заслуживаете, которая всегда будет происходить через статистические вариации), оставить бассейн и вернуться под другим именем.
- Бутстрапирование: кто-то новый, который соединяет бассейн должен быть в состоянии начальной загрузки - получить исходную таблицу распределения для своих блоков, прежде, чем кто-либо в сети, в том числе его в своих блоках. Одной из возможностей является использование измеренных частот блоков (в целом, а не только часть его упоминать) других узлов для этого.
3. Осуществление
Одним из возможных путей реализации этого, как патч для bitcoind, с RPC вызовов:
- updatedist (), который устанавливает новую таблицу распределения и трудности, которые будут использоваться в сделках поколения, используемых getwork ()
- getwork (), изменен, чтобы включить таблицу распределения, установленный updatedist ()
- getshares (), возвращающая информацию о последних блоках найденных шахтеров (в том числе с низким уровнем сложности из них)
Остальная часть реализации затем делаются в отдельном клиенте пула, который подключается к bitcoind и использует эти вызовы, а также подключение к другим клиентам бассейна и экспедиторские низкая сложность блоков.
В качестве альтернативы можно включить все в bitcoind, и, возможно, даже использовать Bitcoin сети P2P себя общаться с другими узлами бассейна. Первоначально, однако, это, вероятно, лучше, чтобы связь между узлами пула произойдет через простое мультиплексирование сервера, который передает блоки между различными узлами, добавив некоторые проверки подлинности, а также.
Есть дополнительные детали, которые уже работали как хорошо. Напишу те позже, если есть интерес.
PS: благодаря молекулярной для запуска этого текста.