Тег #Вместе
Глава 1
Артём
Холодок по спине никуда не делся. Я с нарастающей тревогой ждал, что скажет Антон…
– Не могло ли оказаться чего этакого в самом компьютере?.. Есть одна мысль, – Антон открыл тетрадку на закладке. – При подключении клиент сообщает версию один-ноль, как у всех. Но в строке идентификации к версии приписаны две латинские буквы и цифра. Похоже, кто-то пересобрал клиент и оставил собственную метку. Само по себе это ничего не доказывает. Но я посмотрел историю блоков. С первого февраля этот узел находит их заметно чаще, чем можно ожидать от обычного клиента с нашим встроенным майнером. Либо за адресом несколько машин, либо…
– Либо то, о чём я сейчас подумал?
– Видимо, да. Либо владелец изменил программу майнинга.
– Ты бы на что поставил?
– На второе. Хотя уверенности нет. Несколько машин за одним роутером могут выглядеть для сети как один узел, – он глотнул чай. – Наш майнер написан так, чтобы работал, а не чтобы выжимать из процессора всё возможное. Один поток, лишние паузы между попытками. Если человек разбирается в коде, часть этих потерь можно убрать за вечер или два.
– И этого хватит, чтобы обойти наши машины?
– Если у него обычный процессор, а наш майнер работает неэффективно, разница может быть заметной. Но насколько большой – надо проверять. И не забывай: блоки находятся не по расписанию. Даже хороший майнер может несколько дней ничего не найти, а потом получить два блока за короткое время. Поэтому я смотрю не на один удачный день, а на результат с первого февраля.
– Да, Антон, это понятно.
Он постучал пальцем по тетрадке. Я увидел столбик дат и крестики напротив каждой. Иногда по два за день.
Я почувствовал, как улыбка сама полезла на лицо, и тут же захотелось её стереть.
– И при нашем количестве участников…
– При нашем количестве участников один человек с нормальным процессором и хорошо написанным майнером может получать заметную долю наград. Даже неприлично заметную. Пока конкуренция маленькая, преимущество особенно чувствуется. Когда участников станет больше, доля каждого будет зависеть от его вычислительной мощности относительно всей сети.
Свой майнер я нарочно не трогал. Железо под столом у меня и так гораздо сильнее, чем у большинства, и давать основателю ещё и преимущество за счёт более быстрого майнера было бы перебором. Я хотел, чтобы Dorcoin жил не за счёт того, что я заранее знаю, где у него слабые места, а за счёт правил, одинаковых для всех.
Но одно дело – говорить себе это, когда твоя доля уменьшается понемногу, и совсем другое – когда кто-то начинает откусывать от неё ломтями.
– В общем, Артём, ситуация неоднозначная и я уверен только в том, что этот узел находит блоки чаще, чем можно ожидать от обычного клиента с нашей программой. Заглянуть к нему в компьютер я не могу. Не знаю ни количества машин, ни того, что именно владелец изменил. Но метка в версии наводит на мысль, что он сам собирал программу.
Я снова посмотрел на тетрадку. С первого февраля крестики шли каждый день, иногда по два.
Зараза.
Независимым узлам я радовался ещё в январе, когда Ярик показывал график, и радовался честно. Я себя тогда проверял. Несколько узлов отщипывали от моего синего куска понемногу, и ради этой картины всё затевалось. Сеть переставала зависеть от моей машины, от моего электричества, от моего желания держать компьютер включённым. Теперь появился кто-то, кто прочитал код, потратил часы с пользой и электричество и, похоже, добился большего, чем мы сами.
Вот только тридцать монет с каждого блока, который он находил вместо меня, не попадали на отдельный адрес, где к февралю лежало около четырёхсот тысяч DOR. До миллиона, который я собирался навсегда вывести из обращения, было ещё майнить и майнить.
Пальцы сами застучали по столу. Я уже прикидывал, насколько этот узел отодвинет мой срок. Сколько дней. Сколько блоков. Сколько монет, которые могли бы оказаться на моём адресе.
Стоп!
Я остановил пальцы.
Срок я никому не объявлял. Никто не обещал мне определённой доли награды. Чужие блоки не были моими убытками. Я ведь сам хотел, чтобы люди приходили в сеть, читали код и находили способы работать эффективнее. Получил именно то, к чему стремился, а теперь сидел и считал, сколько это у меня якобы отняло.
Ну-ну.
– Ещё момент, – сказал Антон. – Ещё один тюменский адрес, домашний, у другого провайдера. Этот тоже иногда находит блоки, но гораздо реже. Обычный клиент, встроенный майнер. Пока ничего необычного.
– Тюмень, город айтишников, – сказал я. – Два независимых узла на полмиллиона населения.
– Город айтишников, – согласился Антон и допил чай.
– Так. – Я взял его тетрадку, ещё раз посмотрел на крестики и вернул. – Первый узел мне интересен. Блоки пусть отъедает, это его право. Мне интересно, кто там сидит. Если человек полез в код и сумел улучшить майнер, значит, он не просто скачал программу и оставил её работать. Он разбирался. Хочу посмотреть на человека, который разобрался.
– По адресу не найдём, и искать не надо, – сказал Антон. – Это уже не наше дело, где он живёт.
– Не наше, естественно. Но если он где-нибудь сам о себе расскажет, я хочу знать.
Антон кивнул, забрал кружку и ушёл к своим рабочим делам.
А я… Я остался сидеть перед открытым окном терминала. На экране всё было как обычно: узлы на связи, блоки приходят, сеть работает. Никакой катастрофы. Никто не взломал протокол, не нашёл способ создавать монеты из воздуха, не получил доступа к чужим кошелькам. Просто кто-то оказался сообразительнее нас в одной конкретной вещи.
И почему-то именно это не давало покоя.
Утром перед выходом я посмотрел в журнал собственной машины: работает. В обед захотелось съездить домой и проверить ещё раз. Убедиться, что процесс не остановился, что компьютер не завис, что всё идёт как надо. Я даже представил, как открою дверь, услышу знакомый шум вентилятора и успокоюсь.
Какое-то спонтанное импульсивное желание. От стресса, видимо. Но я не поехал.
До вечера было далеко, а я уже дважды ловил себя на том, что мысленно возвращаюсь к журналу. Не к четырём сотням тысяч монет, чтобы трястись над ними со словами “моя прелесть”, а собственной машине под столом, которая работала прямо сейчас, пока я сидел здесь и ничего не мог с ней сделать.
Отказаться от поездки оказалось труднее, чем принять появление обоих тюменских узлов.
***
Человек рассказал о себе сам, через несколько дней, и нашёл его Миша.
Миша Сомов зашёл с распечаткой, положил её передо мной и ткнул ручкой в середину листа.
– Форум, – сказал он. – Наша ветка. Вот.
Форум был тот, где мы в октябре вешали анонс. Осенью в ветке проекта сидело человек двадцать, к февралю набралось под сотню, и Миша читал её за всех.
На распечатке было сообщение от пользователя с длинным дурацким ником, из тех, что придумывают в тринадцать, а потом стесняются. Человек писал без запятых, но по делу. Они с другом настроили майнер, он «нормально молотит», а ещё друг написал маленькую утилиту, которая следит за соединением с сетью, считает полученные блоки и фиксирует ошибки синхронизации. Утилита записывала всё в журнал. К сообщению прилагался фрагмент лога: время событий, строки о потере и восстановлении соединения, расхождения в высоте локальной цепочки и сети. Дальше шло: «Кабель дёргали специально, после переподключения всё догнало, время есть в логе. Если кому надо, могу скинуть».
Я прочитал два раза.
Майнер переписать, Антон правильно говорил, можно за вечер, если руки на месте. Зацепил меня кабель: ребята дёргали его нарочно. То есть сели, подумали, что может сломаться, сломали это сами и записали, что получилось. Проверили, восстановится ли соединение и догонит ли клиент сеть после обрыва. Это, собственно, и есть тестирование. Этому я полгода учил взрослых парней с солидным образованием, и один из них как-то небрежно выдернул флешку без безопасного извлечения.
– Это наш тюменский узел? – спросил я.
– Форум адресов не показывает. Но «мы с другом», «настроили», «молотит», время совпадает. – Миша сунул колпачок ручки в зубы и сказал уже с ним: – Думаю, они.
– Что про них известно?
– Ничего. Зарегистрировался в конце прошлого года и тогда же спрашивал в ветке, как поменять порт. Ему ответил я.
– Ясненько… – ответил я, вздохнув.
Я нашёл сообщение у себя на экране и нажал «Личное сообщение». Написал дважды. Первый вариант начинался с «Уважаемый пользователь» и звучал как повестка из военкомата, второй же вышел коротким: я Артём Дорохов, создатель Dorcoin, это моя сеть, утилиту вашу хочу посмотреть вживую. В субботу, в одиннадцать, у меня в офисе, адрес такой-то, приходите с другом, журнал захватите.
Ответ пришёл через двадцать минут, пока я ещё отвечал Бондаренко на письмо про смету по камерам.
«Ого. Придём с радостью! Нас двое, нам по 16, это норм?»
Я прочитал это и некоторое время сидел и смотрел в экран…
Спасибо за чтение
Вернуться к книге
