379
edits
Changes
→Changelog
==Где скачать==
==Changelog==
''3.0.3''
*исправлен баг с падением движка на некоторых трансляциях
*снижена нагрузка на процессор при отдаче на высоких скоростях
*оптимизированы алгоритмы поиска новых пиров
*оптимизировано взаимодействие клиентов со стартовыми серверами
''3.0.2''
*добавлена возможность фильтровать трафик на спец. узлах (см. [[#Фильтрация трафика|Фильтрация трафика]])
''3.0.1''
*проведена масштабная оптимизация работы всех модулей
''3.0.0-a18''
*исправлен баг, из-за которого узлы поддержки могли потерять связь с источником
***entertaining - Развлекательный
***educational - Познавательный
***movies - Кино и Сериалыкино
***documentaries - Документалистика
***sport - Спортивный
***amateur - Любительский
***webcam - вебкамера
***kids - детский
***series - сериалы
''3.0.0-a12''
===Новые параметры для запуска источника===
*--metatracker (string) - добавить адрес метатрекера в транспортный файл
*--startup-node (string) - добавить адрес стартового узла в транспортный файл
===Эти параметры уже не используются===
--port 8631 \
--download-from "192.168.1.2:7764"</nowiki>
===Оптимизизация распределения трафика===
Начиная с версии 3.0.5 узлы поддержки умеют автоматически находить пиров с хорошей скоростью отдачи и подсоединять их к себе. Данный алгоритм позволяет оптимизировать распределение трафика. Во время подключения таких пиров общее кол-во подсоединенных пиров может превысить значение <tt>--max-peers</tt>. Максимальное кол-во пиров сверх значения <tt>--max-peers</tt> задается опцией <tt>--core-sandbox-max-peers</tt> (по умолчанию 5). Если задать <tt>--core-sandbox-max-peers</tt> равным нулю, то алгоритм оптимизации распределения трафика будет отключен, поэтому делать это крайне не рекомендуется.
===Приватные узлы===
--upload-to "192.168.1.3:8631"</nowiki>
===Стартовые узлы===
Стартовый узел предназначен для обеспечения максимально быстрого старта трансляции у пользователей.
--port 8632 \
--download-from "192.168.1.2:7764"</nowiki>
Для того, чтобы стартовый сервер нормально работал, все узлы-клиенты должны знать его адрес и порт.Для этого адрес и порт стартового сервера необходимо либо внести в транспортный файл (опция --startup-node при создании трансляции), либо использовать метатрекер для оповещения клиентов об адресах стартовых серверов. Пример запуска источника с указанием адреса стартового узла: <nowiki>acestreamengine \ --stream-source-node \ --port 7764 \ --source "http://brodilo.tv/channel.php" \ --startup-node "192.168.1.3:8632" --name "test" \ --title "test" \ --quality SD \ --category entertaining --bitrate 350000 \ --publish-dir /var/www/transport \ --cache-dir /var/cache/acestream \ --private-node 1 \ --upload-to "192.168.1.3:8632"</nowiki>
===Метатрекеры===
Метатрекер - это сервер, который сообщает узлам о доступных трекерах<!-- и стартовых узлах-->.
URL метатрекера задается на источнике при создании трансляции и записывается в транспортный файл.
Метатрекеры позволяют динамически добавлять трекеры <!--и/или стартовые узлы -->для трансляции без необходимости перезапуска трансляции и пересоздания транспортного файла.
Пример запуска источника с метатрекером:
<nowiki>{
"trackers": ["tracker_url_1", "tracker_url_2", ...],
"startup_nodes": ["node1_address", "node2_address", ...],
"interval": UPDATE_INTERVAL_IN_SECONDS
}</nowiki>
где
*tracker_url_1, tracker_url_2 - URL трекеров
*UPDATE_INTERVAL_IN_SECONDS - интервал обновления в секундах (как часто каждый клиент должен повторно обращаться на метатрекер)
<nowiki>{
"trackers":["udp:\/\/tracker.example.org:2710\/announce"],
"startup_nodes":["192.168.1.3:8632"],
"interval":3600
}</nowiki>
Пример серверного кода метатрекера на PHP:
<nowiki><?php
$infohash = isset($_GET['infohash']) ? $_GET['infohash'] : '';
$startup_nodes = array(
'192.168.1.23:8632',
);
header('Content-Type: application/json');
echo json_encode($data);</nowiki>
===Веб-интерфейс узла===
<nowiki>http://192.168.1.3:8640/app/update?max_peers=100&max_upload_slots=30</nowiki>
(держать соединения с 100 узлами одновременно и открыть 30 слотов на раздачу)
===Фильтрация трафика===
Начиная с версии 3.0.2 добавлена возможность фильтровать трафик на спец. узлах (источнике, узле поддержки и стартовом узле). Фильтровать можно по ip-адресам либо по геотаргетингу. Правила для фильтрации должны быть вынесены в отдельный конфигурационный файл, путь к которому передается спец. узлу в параметре --ip-filter-config.
Конфигурационный файл представляется собой текстовый файл в формате JSON с такой структурой:
<tt>{
"groups": {
"<group_1>": {
"addresses": ["<ip_address_1>", "<ip_address_2>", ...],
"countries": ["<country_code_1>", "<country_code_2>", ...]
},
"<group_2>": {
"addresses": ["<ip_address_1>", "<ip_address_2>", ...],
"countries": ["<country_code_1>", "<country_code_2>", ...]
},
},
"blacklist": {
"addresses": ["<ip_address_1>", "<ip_address_2>", ...],
"countries": ["<country_code_1>", "<country_code_2>", ...],
"groups": ["<group_1>", "<group_2>", ...]
},
"whitelist": {
"addresses": ["<ip_address_1>", "<ip_address_2>", ...],
"countries": ["<country_code_1>", "<country_code_2>", ...],
"groups": ["<group_1>", "<group_2>", ...]
},
"limit_groups": {
"<group_1>": "30%",
"<group_2>": "10%"
}
}</tt>
Раздел <tt>groups</tt> используется для создания именованных групп, на которые можно ссылать в других разделах файла.
Каждая группа может состоять из массива ip-адресов (<tt>addresses</tt>) либо кодов стран (<tt>countries</tt>).
Массив <tt>addresses</tt> может содержать как адреса отдельных хостов, так и адреса подсетей в формате xx.xx.xx.xx/yy. На данный момент разрешено использовать только подсети /24, /16 и /8.
Массив <tt>countries</tt> должен содержать коды стран в верхнем регистре (согласно базе [https://www.maxmind.com MaxMind])
Раздел <tt>whitelist</tt> задает белый список. Узел отбивает соединения со всех адресов, которые не входят в белый список.
Раздел <tt>blacklist</tt> задает черный список. Узел отбивает соединения со всех адресов, которые входят в черный список.
Раздел <tt>limit_groups</tt> задает ограничения по максимальному количеству соединений для каждой группы (в процентах от общего максимального количества соединений).