Если так пойдёт дальше, доберутся и до адреса. Потом, адрес вообще штука эфемерная: завтра хостера поменяли по независимым причинам, послезавтра IPv6 понадобился, и потом я не уверен что на адрес делают https сертификаты. И дикость это — в hosts что-то руками прописывать. .onion же будет жить пока живёт tor, не будет разделегирован, не зависит от смены хостера и не требует ручных телодвижений.
> Я еще раз повторюсь — на руках пользователей сотни миллионов торрентов с вполне определенными прописанными в них трекерами. Из сменить нет никакой возможности. Более того, в новых торрентах с теми же раздачами должны быть прописаны те же трекеры, в противном случае облако пиров будет дробится между двумя (или более) трекерами.
Подождите. Трекер один, просто появляются дополнительные способы до него достучаться. Сейчас — только http, должно быть, по-хорошему, ещё https и http (или https, в данном случае наверное не важно) по .onion адресу. Трекер один, облако пиров одно. Все старые торренты продолжают замечательно работать по plain http потому что ничего больше не знают, но и трекер по http по-прежнему доступен. А в новых, по-хорошему, http должен быть заменён на https (чтобы пользователи без tor получили безопасное соединение), и добавлен .onion адрес (чтобы пользователи с tor получили обход блокировок без дополнительных настроек).
Кроме того, насчёт дробления облака: разве клиенты используют не все доступные трекеры сразу, и, соответственно, видят всех пиров? Потом, разве отменили peer exchange, так что даже если не все клиенты используют все доступные трекеры, полный список всё равно распользётся через пиров?
> 2) Это как палить из пушки по воробьям — вам всего то надо настроить обход элементарной блокировки одного домена по доменному имени.
Ну, во-первых, если настроен tor, для .onion адреса не нужно больше настраивать ничего — он заработает из коробки. Для домена же нужно совершать дополнительные телодвижения (плюс зависимость от exit нод, необходимость исключать российские и ослабленная безопасность из-за возможности MITM, гарантированной пока нет https и теоретической даже с ним (уязвимости в SSL, старый софт)). И не для одного, на самом деле — заблокированных сайтов всё больше и больше, и пора бы им уже открывать .onion зеркала массово, а трекер тут мог бы подать неплохой пример.
Во-вторых, .onion это в некотором смысле гарантия работоспособности на будущее. Условно говоря, тут не разделегировать домен и не найти физический сервер, если до этого дойдёт.
> 3) Я слабо представляю как будет работать битторрент-клиент из под тора. Даже в том случае если он будет находить обычные ipv4 пиры — скорость будет значительно меньше нормальной.
Нет, клиент пока замечательно будет работать через clearnet, на то он и p2p. А вот трекер — уязвимое место, к нему нужны альтернативные, защищённые и надёжные пути доступа.
У rutracker нет https, значит вместо того что вы хотите скачать на exit node вам вполне могут завернуть зловреда; российские exit node нужно исключать руками, да и вообще черех exit'ы работать медленнее потому что их мало. Трекер действительно должен иметь .onion зеркало.
> заменяются на 100 – гигабитные. И здесь вопрос эффективности использования резко возросшего потенциала пропускной способности канала сталкивается с ограничениями существующей технологии передачи данных TCP
Вопрос эффективности использования канала на практике определяется количеством соединений, коих обычно десятки тысяч.
Каждое web-приложение это глубокая печаль. Вот, казалось бы, самое оно где-нибудь в дороге поисследовать эту игру, но нет — никакого тебе оффлайна, с постоянно отваливащимся мобильным интернетом играть — только нервы портить, сохранений нет, батарейку браузер жрёт и при этом тормозит, игровое окно ограничено так что по горизонтали занимает только половину экрана, а по вертикали не влезает. А ведь это не очередной match3, а всё-таки творение Рэндела с юмором и смыслом.
Поэтому я собираюсь написать для него нормальное десктопное приложение, благо арт доступен под CCbyNC. Proof of concept тут: https://github.com/AMDmi3/hoverboard-sdl, пока можно просто листать карту.
switch совершенно не обязан работать за O(N) (https://en.wikipedia.org/wiki/Switch_statement#Compilation). Скорее всего он скомпилируется в таблицу и оверхед составит всего лишь пару инструкций на каждую смену состояния. Но да, с goto в данном случае будет быстрее и лучше читается.
Никак не могу ожидать от человека считающегося авторитетным ни участия в споре о goto, ни попытки его разрешить. Спора ведь нет. То что выглядит как спор — это процесс самообучения новых разработчиков, которые выросли из «goto нельзя» начальной школы, начали думать своей головой, задавать вопросы и анализировать информацию. А установка «goto нельзя» очень нужна, потому что в неумелых руках он опасен. В остальном — обычный инструмент. Теперь по содержанию:
> оптимизация производится на уровне машинных кодов
В общем случае неверно, оптимизация производится на разных уровнях, начать можно непосредственно с AST. Для примера, даже простой транслятор может перевести for в инструкцию loop вместо dec/inc + cmp + jxx. Для оптимизации произвольных переходов уже нужна сложная логика.
> Отдельную функцию можно оформить в виде inline-функции… Но тогда программа будет занимать больше памяти
Не будет, с чего бы ей занимать больше памяти?
> Конечные автоматы (пример кода) // Достойных реализаций без GOTO не обнаружено
Плохо искали. Посмотрите, например, ragel — он умеет несколько способов представления сгенерированных автоматов, в том числе с goto. И с ним, к слову, не всё однозначно: «In general, the goto FSM produces faster code but results in a larger binary and a more expensive host language compile.»
> в которых без него порой никак (C, C++
Мне правда интересно было бы увидеть пример где без goto действительно «никак» в C++. В C, например, на нём реализуются деструкторы, и лучшего решения действительно нет, но в C++ для этого есть встроенные средства.
Подождите. Трекер один, просто появляются дополнительные способы до него достучаться. Сейчас — только http, должно быть, по-хорошему, ещё https и http (или https, в данном случае наверное не важно) по .onion адресу. Трекер один, облако пиров одно. Все старые торренты продолжают замечательно работать по plain http потому что ничего больше не знают, но и трекер по http по-прежнему доступен. А в новых, по-хорошему, http должен быть заменён на https (чтобы пользователи без tor получили безопасное соединение), и добавлен .onion адрес (чтобы пользователи с tor получили обход блокировок без дополнительных настроек).
Кроме того, насчёт дробления облака: разве клиенты используют не все доступные трекеры сразу, и, соответственно, видят всех пиров? Потом, разве отменили peer exchange, так что даже если не все клиенты используют все доступные трекеры, полный список всё равно распользётся через пиров?
Ну, во-первых, если настроен tor, для .onion адреса не нужно больше настраивать ничего — он заработает из коробки. Для домена же нужно совершать дополнительные телодвижения (плюс зависимость от exit нод, необходимость исключать российские и ослабленная безопасность из-за возможности MITM, гарантированной пока нет https и теоретической даже с ним (уязвимости в SSL, старый софт)). И не для одного, на самом деле — заблокированных сайтов всё больше и больше, и пора бы им уже открывать .onion зеркала массово, а трекер тут мог бы подать неплохой пример.
Во-вторых, .onion это в некотором смысле гарантия работоспособности на будущее. Условно говоря, тут не разделегировать домен и не найти физический сервер, если до этого дойдёт.
> 3) Я слабо представляю как будет работать битторрент-клиент из под тора. Даже в том случае если он будет находить обычные ipv4 пиры — скорость будет значительно меньше нормальной.
Нет, клиент пока замечательно будет работать через clearnet, на то он и p2p. А вот трекер — уязвимое место, к нему нужны альтернативные, защищённые и надёжные пути доступа.
Вопрос эффективности использования канала на практике определяется количеством соединений, коих обычно десятки тысяч.
Поэтому я собираюсь написать для него нормальное десктопное приложение, благо арт доступен под CCbyNC. Proof of concept тут: https://github.com/AMDmi3/hoverboard-sdl, пока можно просто листать карту.
Я предполагаю что это не пыль от сильного удара, а как раз таки работа тормозных двигателей мягкой посадки.
> оптимизация производится на уровне машинных кодов
В общем случае неверно, оптимизация производится на разных уровнях, начать можно непосредственно с AST. Для примера, даже простой транслятор может перевести for в инструкцию loop вместо dec/inc + cmp + jxx. Для оптимизации произвольных переходов уже нужна сложная логика.
> Отдельную функцию можно оформить в виде inline-функции… Но тогда программа будет занимать больше памяти
Не будет, с чего бы ей занимать больше памяти?
> Конечные автоматы (пример кода) // Достойных реализаций без GOTO не обнаружено
Плохо искали. Посмотрите, например, ragel — он умеет несколько способов представления сгенерированных автоматов, в том числе с goto. И с ним, к слову, не всё однозначно: «In general, the goto FSM produces faster code but results in a larger binary and a more expensive host language compile.»
> в которых без него порой никак (C, C++
Мне правда интересно было бы увидеть пример где без goto действительно «никак» в C++. В C, например, на нём реализуются деструкторы, и лучшего решения действительно нет, но в C++ для этого есть встроенные средства.