Я думаю, что это было бы хорошей идеей, чтобы добавить "цель" как "getwork" имеет, так что сервер может контролировать трудности для своих клиентов. Кроме того, возможно, эта процедура должна иметь другое название, так как это не то же самое, "getmemorypool" из bitcoind?
Что это решить, по сравнению с обычной getwork?
- Проверьте, какой адрес (а) монеты собираются, поэтому бассейн оп не может украсть, не зная об этом шахтеров
- Посмотрите на присоединяемых добычи данных в coinbase, поэтому бассейн оп не может тайно слиты шахту
- Искать "водяные знаки" (Имя пула), чтобы увидеть, где ваши хэши на самом деле происходит. Если добыча на бассейн "" и имя пула "В" находится в coinbase, вы будете знать, что происходит. Да, бассейн "" может претендовать на бассейн "В" если бы они хотели. Но они не могут удалить пул "В"s имя при использовании работы с бассейном "В",
- Возможно предотвратить используется в 51% атак? Bitcoin блоки будут в ближайшее время потребуется включить высоту блока в coinbase, и у вас уже есть хэш для родительского блока в заголовке блока. Сравнивая высоту и родительский блок с доверенным источником, вы можете увидеть, если вы строите на высоту ниже, чем следует, или неизвестный родительский блок. Только дело в том, блоках занять некоторое время, чтобы стать известным всем, а также есть (не враждебная) вилка. Пока высота выглядит хорошо, вам придется сократить некоторую слабину для неизвестных родительских блоков.
- Дисплей части этой информации пользователя, как рост, генерировать платежный адрес (адрес), наличие присоединяемых добычи и пул имен или других печатных строк.
- Если сервер позволяет: исключить операции по любому критерию шахтер хочет
- Если сервер позволяет: Добавить больше транзакций сервер не знает
- Если сервер позволяет: Разрешить шахтер создать свою собственную работу, тем самым значительно снижая нагрузку на сервер (сервер должен модифицировать coinbase, по крайней мере, добавив дополнительный одноразовый номер к нему).
- Если сервер позволяет изменять coinbase: позволяет шахтер поставить свою собственную марку в coinbase (или это плохо?)
Возможно, данные с сервера должны также предоставить информацию, на которой будут приняты модификации данных.
Очевидно, что это направление Элигии уже идут. Я думаю, что это было бы большое преимущество, если мы сможем договориться о стандарте и получить как можно больше пула серверов, прокси и шахтеров, поддерживающих его как можно. Как предложил Люк-мл. уже, если у вас есть прокси-сервер, поддерживающий это, то вы на самом деле не нужны шахтеры, чтобы поддержать его непосредственно. Но, как минимум, вам нужно пула серверов и прокси-сервер, поддерживающий его.
Даунсайд:
- Великоватое доказательство работы от шахтеров как сервер должен теперь принимать целые блоки Bitcoin - не только заголовки, но длинный список сделок, а также.
- Серверы: Возможно, тяжелее обработка доказательств работы от шахтеров, в зависимости от того, все равно проверить, что все операции в порядке и позволяют ли изменения coinbase.
- Мошенники: Более сложные жульничества людей
Возможное исправление первых двух пунктов: все операции могут быть заменены только coinbase и его Merkle отрасли, когда данные не могут создать блок и шахтер просто нужно доказать, что это делает работу. Более эффективным, но это означает поддержку 2 способа доставки работы. И это нужно дополнительно "цель" значение (из-за объединенную добычу), чтобы определить самую низкую цель, для которых сервер может создать блок.
Одна из проблем, я могу думать, если шахтер получает транзакцию из локального bitcoind, который находится на другой вилкой, чем bitcoind сервера. В этом случае вы можете получить сделку в блоке, когда он уже существует в родительском блоке. Но я думаю, что повторяющиеся операции просто игнорируются и не делать никакого вреда, не так ли?
PS: Может быть, на этот раз есть 2 отдельные имена процедур RPC? Не "getwork" как для получения работы и за достижение результатов работы. Никогда не имел смысла для меня.