Проект "Свободные голосования" http://gplvote.andyhost.ru/forum/ |
|
Метод репликации и подсчета голосов от Юрия :D http://gplvote.andyhost.ru/forum/viewtopic.php?f=5&t=343 |
Страница 2 из 6 |
Автор: | yurial [ 18 янв 2012, 15:34 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Dim писал(а): Синхронизируем результат. Вы имеете ввиду синхронизация самих голосов? - ок Dim писал(а): Проверяем их. Голоса? - ок Dim писал(а): Подписываем результат. т.е. сначала считаем, а потом подписываем? - ок Dim писал(а): В аналогично начинаем обмениваться результатами подсчётов. Достаточно обменяться подписями результата. Dim писал(а): В суммарных результатах присланные результаты от группы отбрасываются при равенстве все кроме одного. При неравенстве вычисляем "редиску" по большинству и распространяем всем в группе сообщение о попытке фальсификации. Все кто может и не считал начинают пересчёт. До этого места у нас одинаково, кроме того, что у меня жестко указывается кто должен считать и сколько. Dim писал(а): По окончании синхронизируем промежуточный результат. Считаем. Подписываем уже этот результат. Обмениваемся. И т.д. пока не будет подсчитан окончательный результат. А вот это я уже не понял. Где у нас обмен между группами подсчета? |
Автор: | Dim [ 18 янв 2012, 16:16 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
yurial писал(а): Достаточно обменяться подписями результата. Не достаточно. Результаты подсчёта знают только в группе, а тут обмен внутри группы в которую входит эта группа.140 000 000 140 х 1 000 000 1 000 000 1000 х 1000 yurial писал(а): А вот это я уже не понял. Где у нас обмен между группами подсчета? Там где как Вы считаете достаточно обменяться подписями результата.
|
Автор: | yurial [ 18 янв 2012, 18:12 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Ок, тогда все еще хуже. Вот в группе подсчитались данные. Как группы между собой обмениваются данными? У вас по 1024 ноды в каждой группе, ип и паблик ключи вы знаете. |
Автор: | Андрей [ 18 янв 2012, 18:24 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
В идеале, если не разбиваться на группы, все участики субъекта должны подписать результаты голосования. По логике вещей, дальше эти посубъектные результаты должны рассылаться всем и у каждого должен формироваться и подписываться общий результат. |
Автор: | yurial [ 18 янв 2012, 18:33 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Андрей писал(а): В идеале, если не разбиваться на группы, все участики субъекта должны подписать результаты голосования. Не реально. Андрей писал(а): По логике вещей, дальше эти посубъектные результаты должны рассылаться всем и у каждого должен формироваться и подписываться общий результат. Тем не менее быстро посчитать все нельзя. |
Автор: | Dim [ 18 янв 2012, 19:17 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
yurial писал(а): Как группы между собой обмениваются данными? Ровно также как и в группе. Только в пакете данные не по одному голосу, а по группе.yurial писал(а): Не реально. В больших субъектах нереально.yurial писал(а): Тем не менее быстро посчитать все нельзя. Этот вариант быстрее просто потому что подсчёты в группах идут параллельно над небольшим объёмом данных. А затем суммируются уже результаты.И мы в результате не тянем за собой необходимость подписывать результат всеми. Достаточно ограниченного количества подписей. Причём мне кажется даже одной. |
Автор: | yurial [ 18 янв 2012, 22:59 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Dim писал(а): yurial писал(а): Как группы между собой обмениваются данными? Ровно также как и в группе. Только в пакете данные не по одному голосу, а по группе.У вас есть 1024 ноды в одной шруппе и 1024 ноды в другой, все начинают стучаться к друг-другу генерируя много траффика. Для подсчета результата более высокого уровня будет обмен между группами по 2048 нод, и так далее. В моем же алгоритме, количество нод которые "должны" считать - неизменно. Они же и подписывают результат. Поэтому считаю свой вариант алгоритма более продуманным, хотя и далеким от совершенства. Dim писал(а): И мы в результате не тянем за собой необходимость подписывать результат всеми. Достаточно ограниченного количества подписей. Причём мне кажется даже одной. Одной мало, я б такому результату не поверил, а вот подписей в половину группы подсчета (т.е. 50% посчитали одинаково) думаю достаточно и не сильно накладно. Есть аргументы против предложенного мной алгоритма? |
Автор: | Dim [ 20 янв 2012, 01:00 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Объясняю на кисках. Открытое голосование. (При закрытом тоже самое, но для простоты открытое.) Два варианта. Андрей 1 yurial 2 Сергей 2 Dim 1 IgorK 1 Андрей на мега-копе и мгновенном канале посчитал быстрее всех. За 1 вариант 3 голоса, за 2 - 2 голоса. Подписал результат и начал рассылку результата. Сергей посчитал вторым и получил тот же результат, но ему уже пришёл подсчёт Андрея. Он запомнив для себя что согласен с результатом подсчётов далее рассылает результат подписанный Андреем. У Dim ситуация та же посчитал - согласен. Но у нас два товарисча которые не считали вообще: yurial и IgorK. Им пришёл результат подписанный Андреем. Но мы помним что они голосовали за разные варианты. IgorK результаты устраивают и он не возражает. yurial оказавшийся в меньшинстве имеет на выбор два варианта. Первый. Увидев что возражений нет согласиться с результатом подписанным Андреем, но запомнив что не проверял его. Второй. Взять голоса и пересчитать. Получив тот же результат что и Андрей.Тем самым оказавшись в ситуации Сергея: результат не устраивает но посчитано правильно. Остаётся ему только согласиться. Как мне кажется оказывается достаточно одной подписи. |
Автор: | Dim [ 20 янв 2012, 01:13 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
yurial писал(а): Есть аргументы против предложенного мной алгоритма? Только количество хранимых данных. Мы уже храним первичные данные с подписями. И к ним добавляются подписи результатов.Причём, то что нужно хранить подписи только половины проголосовавших погоды не делает. В моём варианте количество сохраняемых подписей уменьшается на 3 порядка. Можно проверить оба и посмотреть во что обходятся они на практике. |
Автор: | yurial [ 20 янв 2012, 09:40 ] |
Заголовок сообщения: | Re: Метод репликации и подсчета голосов от Юрия :D |
Если группа 1024 ноды, то хранить надо по 512 подписей на "уровень". 8 млрд = 23 уровня. Подпись 512б (вообще, конечно же зависит от ключа, для для примера пусть будет эта константа) Итого: 23 * 512 *512 = 6мб. 6мб для голосования с 8 млрд. нод. Для маленьких голосований и количество нод в группе будет меньше (если не требуется сверх надежность) и количество уровней. |
Страница 2 из 6 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |