Как стать автором
Обновить

Комментарии 74

Это, конечно, не «простейшая игра на JS», но проглядывается какая-то тенденция. В песочнице весна, снег тает, обнажая скрытые под ним жемчужины?
1) Как обналичить DRUB или DUSD?
2) Какая ваша личная выгода от этого проекта? Неужели писали 3 года на голом энтузиазме?
Чтобы получить $ за DUSD нужно отправить запрос майнеру, который хочет купить DUSD. В меню — «Майнинг» -> «Исходящие».

Про мою выгоду. Это 5% системная комиссия, которая взимается в тот момент, когда майнер кладет намайненные DC в кошелек (В меню — «Майнинг» -> «Обещанные суммы» -> «Положить в кошелек»). Т.е. например, у Вас обещанная сумма 1000 DUSD, через месяц у Вас набежало 10 DUSD, Вы их переводите на свой кошелек, а получаете 9.5 DUSD.
При внутренних переводах с кошелька на кошелек и обналичивании DC системной комиссии нет.
А не много 5%? Лично меня это сразу покоробило. Такие «системные» комиссии разве что в хайпах и ЭПС с ними связанных.
Не знаю, может и много, и нужно будет уменьшить. Я по аналогии с kickstarter сделал 5%.
Топик в минусах. Подскажите, пожалуйста, что я сделал не так? Честно, не могу понять.
Не расстраивайтесь, просто тут есть ряд людей которые сразу агрятся на буквы PHP.

Но от себя бы добавил — многим сходу может быть не очень понятно как установить и попробовать, лучше написать более подробную инструкцию.
Хоть пользоваться и не буду, но поставил плюсы везде, из-за уважения за проделанную, сложную, работу.
Спасибо!
Минус не ставил, но сильно смущает требование снять видео и сделать фото.
Поставил плюс, а сам подумал -следующая криптовалюта начнётся со слов "… и я решил посчитать хэш от ДНК сетчатки глаза..." < / irony mode >
Отличная история коммитов. Прям сразу все стало понятно.
Виноват, исправлюсь.
1. ParseData
2. ???
3. profit()
Видео нужно только потому, что подделать его практически невозможно, в отличие от фото

Идея проекта отличная! Это очень интересно, но вы уверены, что видео все же «подделать практически невозможно»? Голливуд часто убеждает нас в обратном…
Спасибо за теплые слова, очень приятно.

Голливуд подделать сможет, но в единичных экземплярах и очень за дорого.
В основе Dcoin лежит утверждение о невозможности создания 3d видео рендеринга человека и мира вокруг него с соблюдением всех 5-и условий:
1. Затраты на создание должны окупиться прибылью от майнинга
2. Строгое соблюдение условий сюжета. Например, может потребоваться снять видео, где Вы находитесь на улице
3. Абсолютная реалистичность
4. Уникальность
5. Масштабируемость, т.е. размножить предыдущие 4 пункта до промышленных масштабов
Кто будет проверять «сюжет»? Беру 1000 фильмов, нахожу сцены, вырезаю случайную, нахожу лица, выбираю случайное, нахожу его в другой сцене, делаю «фото», из предыдущей сцены делаю «видео». Получаю 1000 аккаунтов. Совпадение между фото и видео Ваш алгоритм найдёт, но кто будет вручную смотреть все тонны видео, чтобы определить, из фильма это, или реально кто-то снял на телефон с 0.3Мп камерой?
На 1-м шаге апгрейда аккаунта до майнерского указаны следующие требования к фото:

— Фото должно быть обрезано по краям, как на примерах
— Голова должна помещаться полностью, как на примерах
— Нельзя улыбаться или как-то еще менять выражение лица
— Волосы должны быть убраны, очки сняты
— Размер от 350x500px
— Качество — четкое, как на примерах

Примеры: 173.44.34.106/dcoin/img/face.jpg и 173.44.34.106/dcoin/img/profile.jpg

И требования к видео:

— Продолжительность ролика должна быть от 10 до 15 секунд
— Пропорции лица на фото должны быть идентичны пропорциям лица на видео
— Голова должна помещаться полностью, как на примерах выше
— Нельзя улыбаться или как-то еще менять выражение лица
— Волосы должны быть убраны, очки сняты
— Качество — четкое, как на примерах выше

На видео должно быть (сюжет):
— Вид лица спереди
— Поворот головы в сторону левой руки
— Поворот головы в сторону правой руки

Из какого фильма Вы такое сможете вырезать?
По-моему именно такие фото и видео встречаются в каждом фильме, где кого-нибудь сажают в тюрьму и делают фото для дела. Опять таки, free-lance рынок очень велик, если люди готовы «колотить бабло» и получать по 0.0005$-0.001$ за одну разгаданную капчу, то почему бы им не начать записывать видео на заказ? 15 секунд видео + пара фото, одна минута на обработку одного человека, в некоторых странах найдётся очень много людей, готовых меньше, чем за минуту своего времени получить 1$. В общем мне не кажется, что обход такого метода аунтификации слишком затратен.
Попробуйте сделать вырезку из фильма с соблюдением описанных выше требований. Вы сможете в лучшем случае сделать 1-2 клона из всех фильмов, что найдете.

Про покупку видео у других людей я очень много думал и прикидывал разные варианты.
1. Если проект станет популярным, то фрилансеры за 1$ не захотят терять возможность стать майнерами и получать гораздо больше от обещания обменять 1000 USD на 1000 DUSD.
2. Если кто-то решит поехать в страну 3-го мира и снять там 1000 видео дав туземцу по 1$. Тогда вводим требование к сюжету — снять видео своей комнаты + вид из окна.
В этом случае на большинстве роликов будет одна и та же комната и один и тот же вид из окна.
Ладно, допустим с фильмами вариант не прокатил. Но говоря о фрилансерах, я говорил о той их части, кто готов получать 0.0005$-0.001$ за 10 секунд времени (а это почти 3$ за 8 часов непрерывной работы без ошибок), я очень сомневаюсь, что они будут вникать в принципы вашей системы и пытаться получить в ней прибыль, ибо это довольно таки не очевидно. Зато они с радостью зарегистрируются на сайте, который будет обещать им 1$ всего лишь за то, что они сделают видео и фото, причём 1$ за каждое такое задание. И вот представьте себе, человек получал за день всего 3 бакса и сидел без остановки пялился в монитор, а новая «колотилка бабла» позволяет ему заработать те же деньги за 3 минуты, начав со своей семьи (а если у них 10 человек? сферическая страна в вакууме), потом он может пойти к друзьям, которые могут быть ещё менее грамотны, чем он, и им не покажется странным его занятие. И он будет не один, их будет миллион.

Но вернёмся к «нашей раше», где толпы школоты пытаются заработать на тысячах «bux» сайтов, регистрируются в различных «платных» социальных сетях, вступают в миллион различных пирамид, до сих пор продолжают рассылать спам вида «вот 10 кошельков, положи по 10руб на каждый, поменяй первый на свой и разошли всем кому только сможешь», и всё ради того, чтобы заработать каких-нибудь 10$ за месяц работы. Они ни разу не слышали про вашу валюту, но нашли биржу, которую я описал выше, и она позволяет получить 1$ прямо сейчас, и без минимальной выплаты, почему нет? Конечно да. О, а ведь родители наверняка тоже не знают ничего ни о каком майнинге… а друзья? майнинг? да, вчера в лоле майнил… И он найдёт, как объяснить им, для чего ему нужно заснять их на видео и сделать пару фото, ведь за это он получит целый 1$.

И 1$ это просто в качестве примера, может один аккаунт будет стоить больше, или меньше, время покажет.
Всё это решается путем изменения требований к сюжету.
Например, нужно будет сказать: «Я регистрируюсь в Dcoin, чтобы стать майнером и майнить по 100$/месяц»
Далее, при добавлении обещанной суммы, нужно снять новое видео, где нужно сказать «Я обещаю отдать 1000$ за 1000 DUSD»
Если у человека есть интернет и он смог попасть на описанную Вами биржу, то он будет в состоянии вбить в гугл Dcoin и почитать про него.
Про школьников. Я думаю, не стоит им заниматься майнингом вообще. Можно просто попросить майнеров, чтобы не одобряли лиц, которым на вид меньше 18 лет.
У вас по тексту статьи и в комментариях часто проскакивают фразы вроде:
Можно просто попросить майнеров, чтобы ...
… этот коэффициент определяют сами майнеры данной валюты путём голосования.
Майнеры могут проголосовать за то, чтобы монеты простых пользователей росли на их кошельках.
Возможно майнеры DNOK введут правило ...

Вы слишком доверяете голосованию, демократическим инструментам и ответственности майнеров. Вы уверены, что накрутки невозможны?
Во вторых, насколько Я понял из статьи, в вашей системе есть три роли: администратор, майнер и обычный пользователь. Сравните это с Bitcoin, где все участники равноправны. То есть ваша сеть распределённая но у неё есть центры, от которых зависит работа сети. То есть, если достаточное количество майнеров сговорятся и будут минусовать всех подряд, то никто не сможет зарегистрироваться. Как вы будете защищаться от этого?
Не очень понятно из описания, как планируется обменивать вашу криптовалюту на наличные деньги. Должна состоятся передача денег, которая потом фиксируется в транзакции? Как происходит связь между наличными деньгами и вашими денежными единицами? (напоминает обмен Мавро <=> Наличные в МММ)
Также обязательное требование выслать фото и видео немного смущает деанонимизацией. Вряд ли много людей захотят демонстрировать своё лицо, чтобы зарегистрироваться в системе.
Если майнеры договорятся, то много минусов они не смогут поставить, т.к.есть дневной лимит на кол-во голосов, отправленных одним майнером.

Про обмен на наличные. cash_request_out() — отправка запроса с хэшем кода, cash_request_in() — ответ на запрос, в котором указан код. В меню — «Майнинг» — > «Исходящие» и «Входящие».
Личная встреча и передача наличных в обмен на код — самый надежный способ. Те, кто не боятся, могут договориться об удаленной передаче денег/кода, но я бы не рекомендовал.
В cash_request_out() указываются зашифрованные контактные данные.

Про анонимность. Вы можете завести юзерский аккаунт и быть полностью анонимным и пользоваться Dcoin.
Если бы я смотрел на биткоин и делал как все, то получился бы очередной форк.
У них есть и интернет, и гугл, но они продолжают вбивать капчу, вместо того, чтобы самостоятельно регистрировать аккаунты и продавать их, или рассылать с них спам. И есть подозрение, что они это делают не от большого ума. И тут вы со своей dcoin, что они нагуглять, что это криптовалюта и её нужно майнить? А если эти два слова добавят им ассоциативную связь dcoin == bitcion? Посмотрят они на чём сейчас майнят, на свой комп, и им проще будет заснять видео. Да и я вот прочитал вашу статью, и не понял, а где деньги то?

Или вот такой пример. Некоторые покер-румы при регистрации дают стартовый бонусный капитал, допустим 40$, который нельзя вывести. Но можно сделать ставку, и если выиграл, то можно их вывести. Ну чем не халявные деньги, если написать бота, который регнет 100500 аккаов и где-нибудь алгоритм да обыграет людей, особенно если в комнате будет сидеть 4 своих бота и 1 человек. Для защиты от подобного ввели подтверждение бонуса — нужно сделать фото себя с разворотом паспорта. И есть люди, которые продают подобные фотографии по цене значительно ниже той, которую можно получить, регистрируясь и играя самостоятельно.

Ограничение по возрасту… а кто будет проверять возраст? Я вот по внешнему виду человека могу определить возраст с точностью лет эдак до 10. Если смотреть одно только лицо, то погрешность ещё выше будет. Тогда на фото ещё нужно будет с разворотом паспорта стоять? Столько подходящих для описанного выше варианта фотографий в паблике — вам скажут огромное спасибо :)
Вы сейчас пытаетесь спрогнозировать будущую цену майнерского аккаунта? Вы же понимаете, что это невозможно?

Разумеется у всего есть своя цена и скорее всего по какой-то адекватной цене можно будет купить готовый майнерский аккаунт или обманным путем заставить неосведомленных пользователей снять видео, где они скажут «Я хочу быть майнером dcoin и обещаю отдать 1000$ за 1000 DUSD».

В любом случае будет соблюдаться условие — 1 майнер = 1 человек. Спрогнозировать, сколько людей, имея возможность вбить в гугл dcoin, всё равно продадут свои видео/фото невозможно. О bitcoin говорят по телевизору, если о dcoin будут говорить по ТВ, то неосведомленных будет с каждым нем всё меньше и меньше.

Но если вдруг огромное число пользователей станут утверждать, что они аккаунт себе не заводили, а видео у них заполучили обманным путем, то можно будет сделать процедуру перехода статуса «майнер» на другой аккаунт. Т.е. подозрительный майнер получает уведомление с просьбой снять повторное видео своего лица, если в течение месяца он этого не делает, то лишается статуса «майнер». Как-то так.

Про возраст. Тут только на глаз, больше никак. Как минимум, малолетних детей распознать можно будет.
НЛО прилетело и опубликовало эту надпись здесь
Да, код ужасный, согласен. Про тесты не понял, поясните, пожалуйста.
Сейчас деньги доверять и не нужно, пока только бета-тестирование. Стабильной версии еще нет. Хотя баги вычистил все, какие нашел.
В коде по ссылке идет запуск авто-тестов, которые должны лежать в cron/_tx/, чуть позже закину их в отдельный репозиторий.
deamons.php
Разве не daemons.php должно быть?)
Да, верно, daemons. Опечатка.
В дополнение к своему предыдущему комментарию — github.com/c-darwin/dcoin_tests
НЛО прилетело и опубликовало эту надпись здесь
Юнит-тест только 1 нашел у себя — для calc_profit, чуть позже выложу.
То, что юнит-тесты нужны, полностью согласен.
Про composer погуглил, штука полезная, возможно внедрю.
Про фреймворки для фронтенда не понял, можно поподробнее, куда, какой и для чего?
Про логические сущности пока тоже не могу сообразить, куда и для чего.
Фреймворки используют чтобы свои велосипеды заменить более безопасными и быстрыми велосипедами, которые поддерживается третьими командами. Например Yii.

Логические сущности позволят разделить, упростить класс, сделать больше реиспользуемого кода. Вместо класса «автомобиль» с описыванием всех его функций (глубоких в том числе, вроде зарядки аккумулятора рекуперативным способом) сделать несколько классов, разделить его на двигатель, система электропитания, салон, и тд. (Может пример неудачный.) Где каждый объект будет отвечать за свой функционал, инкапсулировать функции, предоставляя единые интерфейсы и тд. Это ООП стиль мышления.
Про фреймворки я не понял именно в своем случае — что на что заменять и какие от этого будут плюсы.
Про то, чтобы разделить ParseData на несколько классов я думал, но постоянно откладывал на потом и в итоге всё получилось в одном классе. Подумаю, как можно поделить.
У вас повсюду в коде присутствуют куски SQL скриптов. Фреймворки используют ORM для абстрагирования от базы данных. Если вам придётся переименовать какую-нибудь таблицу в коде, то придётся искать все SQL запросы, где эта таблица упоминается. Так же ORM помогает бороться с SQL инъекциями.
Ещё в коде очень часто встречается конструкция:
$error = ...;
if ($error) return $error;

Почему вы не используете исключения для обработки ошибок?
Очень много строк вида:
case 'alert_error_time' :
case 'error_time' :
case 'promised_amount_points' :
case 'promised_amount_votes_0' :
case 'promised_amount_votes_1' :
case 'promised_amount_votes_period' :
case 'holidays_max' :
case 'limit_abuses' :
case 'limit_abuses_period' :
case 'limit_promised_amount' :
case 'limit_promised_amount_period' :
case 'limit_cash_requests_out' :
case 'limit_cash_requests_out_period' :
...

Почему бы не вынести их в константные переменные в отдельном классе?
Вы не думайте, что Я придираюсь. Просто ваш стиль написания кода далёк от идеального. Сейчас класс ParseData очень сложно анализировать, чтобы понять, как он работает. Может быть стоит выделить отдельно класс для административных функций (admin_ban_miners_*), отдельно классы для обработки голосований (votes_node_*), классы для запросов наличных (function cash_request_*) и т.д…
Названия таблиц в запросах можно заменить переменными или константами — проблема решается без ORM. ORM это просто удобный вспомогательный инструмент, острой необходимости в нем никогда нет. Исключения в php работают медленно, и по моей информации их нужно применять с осторожностью.
Сама суть исключений в возможности создания наследников Exception, и таким образом из глубины можно вылавливать определенные ошибки, и какие должны вести к фатальному результату, а какие-то можно молча обработать. return $error это одноуровневый код, плоский, как и класс автора. Кроме этого в исключении можно задать «код ошибки» и получить удобоваривый trace, чтобы понять почему именно возникла ошибка.
Суть исключений — не в возможности создания наследников Exception
Если именно заменить название таблицы, то тут проблем нет. Поиск и замена в PhpStorm очень удобные и формат у меня везде один и тот же — `".DB_PREFIX.«table_name`.

Насчет исключенй, так получилось, что с самого начала стал делать с return $error;

case 'alert_error_time' и пр только в методе admin_variables_front(), и там в будущем будут добавлены данные между case.

Я пишу код в PhpStorm, там слева очень удобно показываются все методы класса ParseData. Но разделить на части его безусловно надо, займусь этим.
Веселый кусок кода поднял настроение, посмеялся :)
За что минус? Там же ясно массив вариантов поиска и цикл напрашивается. Автор же не с Индии, чтобы такое пропустить?
Уже убрал корявый кусок.
майнеры должны проявить сознательность и уменьшить общую массу DUSD

Как это должно произойти? Причем обе части от И спорные — сознательность слабоконтактирующего сообщества?
И как может уменьшится масса единиц? Их могут продать-купить, но меньше их стать ведь не может никак.
В меню: Майнинг -> Голосование -> Урезание всей денежной массы.
Скрин

Например, >50% майнеров проголосуют за уменьшение на 10% и в БД вместо 100 млн. DUSD у всех станет 90 млн. DUSD
Вы на скрине засветили адрес до рабочей копии. Я случайно всё заново установил, извините :) на странице настройки БД светится пароль.
НЛО прилетело и опубликовало эту надпись здесь
Я думал, что картинки — это не главное.
НЛО прилетело и опубликовало эту надпись здесь
класс на 11 607 строк, Вы издеваетесь?
Хотел разделить, но так и не решил, где делить и оставил всё в одном.
А по каким критериям происходит детект лица?
Что если я навояю какой-то плагин для 3д-максоподобного зверька, мой рендер будет удовлетворять ваш детектор мордочек. На основе такой технологии видео можно 100500штук сгенерировать. Как-то не то =(
Уж если это как-то выстрелит и станет популярным, такую схему провернут аж бегом…
Как я писал свою криптовалюту с нуля на PHP

Улыбнуло :)
Каждый, кто хочет стать майнером, должен заснять на видео своё лицо и сделать фото.


А я то думал, что одна из главных «фич» криптовалют — стремление к анонимности :)
Если Вы хотите анонимно отправить средства, то Вы сможете это сделать в Dcoin. Нужно просто не апгрейдить аккаунт до майнерского.
Тем не менее лица, а значит и другие персональные данные (у фейсбука например неплохое разпознавание лиц, а подобные штуки ессно не только у него одного) могут быть скомпрометированы. Повесить метку на таких майнеров и отслеживать уходящие средства. Когда ждый может намайнить анонимно и слить деньги — это одно. А когда коины начинают уходить с зарание известных точек, то отследить подобное на порядок легче.

Поправте если ошибаюсь.
Если Вы вывели свои btc на биржу, то анонимность пропадает.
И какой смысл майнеру анонимно майнить btc?
Анонимность нужна для того, чтобы никто не знал, какой товар или услугу Вы оплатили.
Например, Вы хотите сыграть в онлайн-казино, но кредиткой оплатить не получается, т.к. казино запрещено в Вашей стране. Вы покупаете на бирже btc и спокойно играете. Через биржу Вас можно вычислить, но оно никому не надо.
Аналогично покупаете DC и с анонимного юзерского аккаунта оплачиваете счет в казино.
Зачем анонимно майнить?
Ну как минимум потому что btc хотят (или уже?) приравнять к недвижимосте, соответственно нужно платить налог:
"Пользователям придется отслеживать свои операции и определять сумму своего налогооблагаемого дохода каждый раз", — сообщил эксперт во время электронной переписки с Filegiver .

И да на бирже Вы говорите — мол хочу продать бтс, я Пупкин. Но вот от кого пришли деньги на кошелек Пупкина — прийдется отслеживать, что конечно возможно — но требует ресурсов.
Другое дело знать список ВСЕХ майнеров изначально — тогда отследить будет на порядок легче.

Контраргументы приветствуются.
Это только в США. И если там возьмутся за это дело серьезно, то все биржи будут обязаны отчитываться, кто сколько ввел, кто сколько вывел. И большинству майнеров btc в США придется платить налог, т.к. иначе можно получить реальный срок.
Вопрос в том, какие законы примут. А если исходить из того, что есть сейчас, то платить налоги с майнинга Dcoin не нужно.
Эксперимент интересный, но хорошие гримеры и визажисты клонов настрогать могут довольно много. И тут даже не столько технический момент, сколько психологический. Люди не будут чувствовать надежность финансовой системы, которая опирается на фото и 10-и секундное видео. Нет пользователей — система мертва.

Вот если предложили по ДНК идентифицировать, это больше бы доверия вызвало, но и пошли бы очередные разговоры в стиле теории заговоров о том, что всех хотят клеймить, разделить и управлять.
На видео не только лицо может потребоваться, но и окружающая обстановка, вид из окна. Требования к сюжету могут меняться.
Да хоть сплясать заданный танец на фоне подоженной квартиры, обнимаясь с коленвалом, на который надет валенок.
Я говорил больше про особенности человеческого восприятия.
Вы хотите сказать, что биткоину люди доверяют?
coinspot.ru/news/britanskie-polzovateli-ne-ponimayut-i-ne-doveryayut-bitkojnu-issledovanie/
43% пользователей указывают в качестве причины нежелания использовать биткойн недоверие к виртуальной валюте.
И это в апреле 2014 года.

Спрогнозировать, сколько % будут доверять Dcoin невозможно. Кому-то будет проще понять, что за каждым нодом стоит живой человек, на фото которого можно в любой момент посмотреть, кто-то станет доверять, когда узнает, что есть админ, который следит за тем, чтобы на сеть не совершались атаки клонов.

Если нормально описать работу Dcoin, то может получиться, что его понять гораздо проще, чем bitcoin. К сожалению, нормально описать у меня пока не получилось и у большинства возникает множество вопросов.
Мдя, чего только не пишут на PHP. Взять бы это все да в мирное русло…
Никак не пойму, почему женщина без маски в ночнушке. Какую идею призвано выражать это фото?
Она — майнер (: где-то ещё видео с ней должно быть.
Просто картинка для привлечения внимания.
Сохранение координат на шаге 4 не производится
если перейти на шаг 5 и нажать Отправить получаю ошибку error Статус: Запрос не отправлялся
Странно, у меня всё нормально сохраняется. Надо снифером посмотреть. Отписал в личку.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий