Проект "Свободные голосования"
http://gplvote.andyhost.ru/forum/

Тайные опросы - выдача результата
http://gplvote.andyhost.ru/forum/viewtopic.php?f=21&t=125
Страница 4 из 6

Автор:  Сергей [ 07 сен 2011, 21:49 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

Зачем они будут вечно висеть? Вечно висеть могут только голосовалки по вечным вопросам.))) А по другим особенно политическим голосование все же должно быть конечным, кто то ушел из политики кто то умер, сменилась политическая ситуация, наконец режим. Опрос становиться уже историей какой то, документом. А открытый будет меняться исходя из текущей ситуации. Например отношение к Путину в 2003 году не идентично с отношением в 2011г.

Автор:  Андрей [ 07 сен 2011, 21:58 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

yurial писал(а):
Думаю идея ясна - далее детали.

Это очень тяжело сделать надежно. К тому-же, разница в количестве голосов и количестве голосовавших может однозначно указывать на взлом. Делать ее преднамеренно - существенно снижать надежность.

Автор:  yurial [ 08 сен 2011, 09:57 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

Андрей писал(а):
yurial писал(а):
Думаю идея ясна - далее детали.

Это очень тяжело сделать надежно. К тому-же, разница в количестве голосов и количестве голосовавших может однозначно указывать на взлом. Делать ее преднамеренно - существенно снижать надежность.

Мне почему то казалось, что в вашей схеме занесение в таблицу голосовавших и занесение голоса и так планировалось производить асинхронно.

Автор:  Андрей [ 08 сен 2011, 11:39 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

yurial писал(а):
Мне почему то казалось, что в вашей схеме занесение в таблицу голосовавших и занесение голоса и так планировалось производить асинхронно.

Разными путями, но не асинхронно. Сначала добавляется подпись, затем голос.

Автор:  yurial [ 08 сен 2011, 19:33 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

Запрос от клиента к серверу один единственный?

Автор:  Андрей [ 08 сен 2011, 19:38 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

yurial писал(а):
Запрос от клиента к серверу один единственный?

Запроса два. Но выполняются они последовательно через ajax запросы по одному нажатию пользователем на кнопку.

Автор:  Андрей Геннеберг [ 13 сен 2011, 13:28 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

Андрей писал(а):
yurial писал(а):
Запрос от клиента к серверу один единственный?

Запроса два. Но выполняются они последовательно через ajax запросы по одному нажатию пользователем на кнопку.

Не самый лучший вариант:
  1. связь может оборваться, IP смениться и так далее - сеть не всегда надёжна при передаче информации;
  2. может упасть браузер, вырубиться питание и прочее - Москва обесточивается на раз из-ха рассыпающегося оборудования;
  3. пользователь может передумать голосовать (мало ли), в конце концов, его могут отвлечь, а потом он и забудет уже, а вспомнит только назавтра.

Всё это приводит к тому, что может-таки возникнуть расхождение между количеством голосовавших и количеством голосов. Всё должно делаться именно в пределах одного запроса, в пределах одной транзакции. 2 запроса возможны только в том случае, если результат первого где-то хранится, а непосредственно транзакция занесения производится по второму запросу. Но обращение к БД должно быть одно, а вот кликов на вебморде можно делать сколько душе угодно.

Автор:  Андрей [ 13 сен 2011, 13:36 ]
Заголовок сообщения:  Re: Тайные опросы - выдача результата

Андрей Геннеберг писал(а):
Не самый лучший вариант:
  1. связь может оборваться, IP смениться и так далее - сеть не всегда надёжна при передаче информации;
  2. может упасть браузер, вырубиться питание и прочее - Москва обесточивается на раз из-ха рассыпающегося оборудования;

Эти два запроса идут один за другим с достаточно небольшим интервалом - доли секунды. Вероятность что все, описанное вами, произойдет именно между передачами, конечно, есть, но она достаточно мала. И она оправдана тем что повышается анонимность.

Вот тут еще почитайте - http://wiki.cdemocracy.ru/index.php/Безопасность

Андрей Геннеберг писал(а):
  • пользователь может передумать голосовать (мало ли), в конце концов, его могут отвлечь, а потом он и забудет уже, а вспомнит только назавтра.

  • Если он уже нажал на кнопку "Проголосовать" как он может передумать? А если не нажал - пусть передумывает сколько захочет.

    Андрей Геннеберг писал(а):
    Всё это приводит к тому, что может-таки возникнуть расхождение между количеством голосовавших и количеством голосов. Всё должно делаться именно в пределах одного запроса, в пределах одной транзакции. 2 запроса возможны только в том случае, если результат первого где-то хранится, а непосредственно транзакция занесения производится по второму запросу. Но обращение к БД должно быть одно, а вот кликов на вебморде можно делать сколько душе угодно.

    Нет - этот способ самый очевидный и самый неправильный. Если мы беремся соблюдать тайность голосования, его и надо соблюдать. Если уж решать указанные проблемы, то не за счет анонимности. Лучшим решением этой проблемы будет отказ от тайных голосований. Но пока это нереально.

    Автор:  Андрей Геннеберг [ 13 сен 2011, 16:17 ]
    Заголовок сообщения:  Re: Тайные опросы - выдача результата

    И всё-таки, что делать, если такой обрыв случился? С точки зрения системы либо появляется голосующий, который не сделал выбора, либо появляется "ничейный" голос. В первом случае можно, конечно, решить, что ну и фиг с ним. А во втором получается проблемка: явление идентично вбросу и, по идее, это гробит всё голосование. Но на самом деле первый вариант тоже не "ну и фиг с ним", потому что голосуют не только одиночки, но и делегаты. Если механизм голосования работает по принципу "вот мой голос и ещё мешок таких же" (пока не разобрался - ещё с базой воюю), то все эти голоса как-то обламываются. Если всё работает по принципу "follow me" и пользовательское ПО просто голосует вслед за выбранным пользователем лидером, то тоже облом, потому что лидер не выбрал (с точки зрения системы).

    Единственный вариант - хранить выбор в локальной базе пользовательского ПО и "доголосовать" позже, после восстановления связи и/или работоспособности ПО. Но это будет позже и на какой-то период времени система голосование станет невалидным, в течении которого может быть зафиксирован вброс или другое нарушение нормальной работы. И есть ли вообще такая возможность - доголосовать?

    В общем, вопросы такие:
    • в какой последовательности отправляются запросы?
    • каково будет состояние системы в случае, если проходит только один запрос из двух?
    • есть ли возможность "доголосовать" и тем самым восстановить равновесие и валидность системы?
    • есть ли возможность автоматического восстановления валидного состояния системы (удаление непарных записей)?
    • как разруливается ситуация, если автоматически это не делается?

    Автор:  yurial [ 13 сен 2011, 17:21 ]
    Заголовок сообщения:  Re: Тайные опросы - выдача результата

    Изучите следующий вариант работы системы тайного голосования: http://облачная-демократия.рф/forum/viewtopic.php?p=1704#p1704
    мне было бы интересно ваше мнение.

    Страница 4 из 6 Часовой пояс: UTC + 3 часа [ Летнее время ]
    Powered by phpBB® Forum Software © phpBB Group
    http://www.phpbb.com/