Changes

Jump to: navigation, search

AceStream 3.0/en

4,466 bytes added, 13:48, 21 October 2014
no edit summary
==Where to download==
===Linux===You can download the latest alpha-server versions of the engine here:* Ubuntu 12 i386: http://dl.acestream.org/ubuntu/12/acestream_3.0.2_ubuntu_12.04_i686.tar.gz* Ubuntu 12 amd64: http://dl.acestream.org/ubuntu/12/acestream_3.0.2_ubuntu_12.04_x86_64.tar.gz* Ubuntu 13 i386: http://dl.acestream.org/ubuntu/13/acestream_3.0.2_ubuntu_13.10_i686.tar.gz* Ubuntu 13 amd64: http://dl.acestream.org/ubuntu/13/acestream_3.0-a5_ubuntu_12_amd64.2_ubuntu_13.10_x86_64.tar.gz* Ubuntu 14 i386: http://dl.acestream.org/ubuntu/14/acestream_3.0.2_ubuntu_14.04_i686.tar.gz* Ubuntu 14 amd64: http://dl.acestream.org/ubuntu/14/acestream_3.0.2_ubuntu_14.04_x86_64.tar.gz* CentOS 6 amd64: http://dl.acestream.org/centos/6/acestream_3.0.2_centos_6_amd64.tar.gz* CentOS 7 amd64: http://dl.acestream.org/centos/7/acestream_3.0.2_centos_7_amd64.tar.gz* Debian 6 i386: http://dl.acestream.org/debian/6/acestream_3.0.2_debian_6.0.10_i686.tar.gz* Debian 6 amd64: http://dl.acestream.org/debian/6/acestream_3.0.2_debian_6.0.10_x86_64.tar.gz* Debian 7 i386: http://dl.acestream.org/debian/7/acestream_3.0.2_debian_7.6_i686.tar.gz* Debian 7 amd64: http://dl.acestream.org/debian/7/acestream_3.0-a5_centos_6_amd64.2_debian_7.4_x86_64.tar.gz ===Windows===* full package (engine + plug-in + player): http://dl.acestream.org/products/acestream-full/win/latest* only the engine: http://dl.acestream.org/win32/engine/AceStreamEngine_3.0.2.zip ===Android===* engine + player: http://dl.acestream.org/products/acestream-full/android/latest* only the engine: http://dl.acestream.org/products/acestream-engine/android/latest
==Changelog==
''3.0.2''
*ability to filter traffic at special nodes is added (look at [[#Traffic filtration|Traffic filtration]])
 
''3.0.1''
*a large-scale optimization of all modules was held
 
''3.0.0-a18''
*bug, because of which some support nodes could lose connection with the source, was fixed
*parameter <tt>--title</tt> became required (this parameter transfers "readable" name of broadcast which is displayed at users' players during playback)
*two required parameters for the source are added:
**<tt>--quality</tt> - channel's quality; possible values:
***SD
***HD
**<tt>--category</tt> - channel's category; possible values:
***informational
***entertaining
***educational
***movies
***documentaries
***sport
***fashion
***music
***regional
***ethnic
***religion
***teleshop
***erotic_18_plus
***other_18_plus
***cyber_games
***amateur
***webcam
 
''3.0.0-a12''
*CPU usage was significantly optimized
*memory leaks were eliminated
 
''3.0.0-a5''
*start nodes are added
''3.0.0-a1''
*the first alpha-version
 
==How to install over the old version==
* download package for your OS
* unzip to a temporary folder (for example, to /tmp/acestream)
* copy appropriate files from temporary folder to root folders /usr/bin/ and /usr/share/acestream (all old files and folders can be deleted)
 
IMPORTANT: For the work of a new engine package <tt>python-setuptools</tt> must be installed.
==How to launch without deleting an old version==
Also this script automatically passes the path to libraries to the engine through the parameter --lib-path, so there is no need to specify it additionally.
==Изменения в параметрах запускаChanges in launch parameters==В новой версии есть некоторые отличия по параметрам запускаIn a new version there are some differences on launch parameters.
===Новые флаги для запуска движка в разных режимахNew flags for the engine launch in different modes===*--stream-source-node (вместо instead of --stream-source)*--stream-support-node (вместо instead of --stream-node)
===Новые параметры для настройки кешаNew parameters for setting up cache===*--live-cache-type (string) - тип кешаcache type: disk - хранить кеш на диске в папке, указанной параметром store the cache on the disk in the folder specified by parameter --cache-dir, memory - хранить кеш в оперативной памяти store the cache in random-access memory (по умолчаниюby default: disk)*--live-cache-size (integer) - максимальный размер кеша в байтах maximum size of the cache in bytes (по умолчаниюby default: 209715200 байт bytes (200 МбMb))
===Новые параметры для конфигурации инфраструктуры узлов поддержкиNew parameters for configuration of support nodes infrastructure===*--private-node (0 or 1) - если указать if you specify 1, то узел будет приватным the node will be private (по умолчанию by default: 0)*--download-from (string) - добавить адрес к списку узлов, с которых данному узлу разрешено получать данныеadd the address to a list of nodes from which this node is allowed to receive data. Адрес должен задаваться в формате The address must be specified in a format ipv4_address:port. Этот параметр может встречаться несколько разThis parameter may occur more than once.*--upload-to (string) - добавить адрес к списку узлов, которым данному узлу разрешено отдавать данныеadd the address to the list of nodes to which this node is allowed to give data. Адрес должен задаваться в формате The address must be specified in a format ipv4_address:port. Этот параметр может встречаться несколько разThis parameter may occur more than once.*--monitor-node-ip (string) - ipv4 адрес мониторингaddress of monitoring-сервераserver
===Новые параметры для запуска источникаNew parameters to launch the source===*--metatracker (string) - добавить адрес метатрекера в транспортный файлadd the address of metatracker to the transport file
===Эти параметры уже не используютсяThese parameters are not used any more===*--stream-source (изменен на is changed to --stream-source-node)*--stream-node (изменен на is changed to --stream-support-node)*--add-authorized-peers (список авторизированных пиров больше не добавляется в транспортный файлlist of authorized peers is not added to transport file any more)*--private-source (заменен на is changed to --private-node)
*--support-node
*--source-node
*--allow-peers-download
==Новый функционалNew functional==
===Настройка узлов поддержкиSetting up support nodes===В новой версии узлам поддержки необходимо явным образом указыватьIn a new version it is necessary to explicitly specify to support nodes from which nodes they have to download data. For this, с каких узлов они должны скачивать данные. Для этого используется параметр parameter <tt>--download-from</tt>is used. Список узловA list of nodes, с которых разрешено скачиваниеfrom which downloading is allowed, может быть изменен без перезапуска узла поддержки через вебcan be changed without restarting support node through node's web-интерфейс узла interface (см. нижеlook below). НапримерFor example, если по адресу if node-source is launched by address 192.168.1.2:7764 запущен узел-источник и мы хотим запустить узел поддержки, который будет качать данные только с источникаand we want to launch support node which loads data only from the source, то команда для запуска узла поддержки будет выглядеть такa command to launch support node will be following:
<nowiki>acestreamengine \
--stream-support-node \
--download-from "192.168.1.2:7764"</nowiki>
===Приватные узлыPrivate nodes===Приватный узел отдает данные только узлам, которые явным образом добавлены в его список разрешенныхPrivate node gives data only to nodes that explicitly are added to its list of allowed. Для того, чтобы сделать узел приватным, нужно запустить его с параметром In order to make a node private you have to launch it with a parameter <tt>--private-node 1</tt>. Для добавления адреса в список разрешенных на отдачу используется параметр To add the address to the list of allowed to upload a parameter <tt>--upload-to</tt>is used. Приватным может быть как узелBoth, node-источникsource and support node, так узел поддержкиcan be private. Приватный узел отбивает входящие соединения со всех адресов, кроме указанных параметрами Private node repulses incoming connections from all addresses except specified by parameters <tt>--download-from</tt>, <tt>--upload-to</tt> и and <tt>--monitor-node-ip</tt>. Для фильтрации используется только To filter only ip-адрес address is used (порт не используетсяport is not used). Параметр Parameter <tt>--monitor-node-ip</tt> задает sets ip-адрес сервера мониторинга и используется в том случае, если нужно обеспечить мониторинг приватного узла address of the monitoring server and is used in case if there is a need to provide monitoring of the private node (без указание этого параметра приватный узел будет отбивать все запросы от сервера мониторингаwithout specifying this parameter private node will repulse all requests from the monitoring server).
Пример запуска приватного источника, который будет отдавать данные только узлу поддержки из предыдущего примераExample of launching the private source which will give data only to support node from the previous example:
<nowiki>acestreamengine \
--stream-source-node \
--upload-to "192.168.1.3:8631"</nowiki>
===Стартовые узлыStart nodes===Стартовый узел предназначен для обеспечения максимально быстрого старта трансляции у пользователейStart node is intended to provide the fastest possible start of a broadcast from users' side.
Особенность работы стартового узла - постоянная ротация соединенийA special feature of the start node is a constant rotation of connections. При получении новых входящих соединений стартовый узел разрывает соединения с узлами, которые подключились ранее и уже скачали определенный объем данныхWhen new incoming connections are received the start node terminates connections to nodes which were connected earlier and have already downloaded certain amount of data.
Для запуска движка в режиме стартового узла используется параметр To launch the engine in the start node mode parameter <tt>--stream-startup-node</tt>is used.
Стартовый узел принимает такой же набор параметров, как и узел поддержкиThe start node takes the same set of parameters as the support node.
<!--
Стартовый узел принимает такой же набор параметров, как и узел поддержки, плюс некоторые дополнительные параметры:
-->
Пример запуска стартового узлаExample of launching the start node:
<nowiki>acestreamengine \
--stream-startup-node \
--download-from "192.168.1.2:7764"</nowiki>
===МетатрекерыMetatrackers===
Метатрекер - это сервер, который сообщает узлам о доступных трекерах и стартовых узлахMetatracker is a server which informs nodes about available trackers and start nodes.
Metatracker's URL метатрекера задается на источнике при создании трансляции и записывается в транспортный файлis given at the source when creating a broadcast and is recorded to the transport file.
Метатрекеры позволяют динамически добавлять трекеры иMetatrackers allow to add trackers and/или стартовые узлы для трансляции без необходимости перезапуска трансляции и пересоздания транспортного файлаor start nodes for the broadcast automatically without the need to restart the broadcast and recreate the transport file.
Пример запуска источника с метатрекеромExample of launching a source with the metatracker:
<nowiki>acestreamengine \
--stream-source-node \
--upload-to "192.168.1.3:8631"</nowiki>
Метатрекер принимает запросы по протоколу Metatracker accepts requests via HTTP и выдает ответ в формате protocol and gives responds in JSONformat, поэтому метатрекер может быть реализован на базе любого веб-сервераtherefore the metatracker can be implemented on the basis of any web server.
Каждый узел при запуске трансляции отправляет на метатрекер When broadcast starts, each node sends to the metatracker HTTP GET запрос с параметром request with parameter <tt>infohash</tt> (хеш трансляции в виде broadcast hash as a hex-строкиstring). Пример запроса на метатрекерExample of the request to the metatracker:
<nowiki>http://example.org/metatracker.php?infohash=a94a8fe5ccb19ba61c4c0873d391e987982fbbd3</nowiki>
Формат ответаRespond format:
<nowiki>{
"trackers": ["tracker_url_1", "tracker_url_2", ...],
}</nowiki>
гдеwhere*tracker_url_1, tracker_url_2 - trackers' URL трекеров*node1_address, node2_address - адреса стартовых узлов в виде строк в формате start nodes' addresses as strings in ip:port format (напримерfor example, 192.168.1.2:8632)*UPDATE_INTERVAL_IN_SECONDS - интервал обновления в секундах update interval in seconds (как часто каждый клиент должен повторно обращаться на метатрекерhow often each client has to reapply to metatreker)
Пример ответаRespond example:
<nowiki>{
"trackers":["udp:\/\/tracker.example.org:2710\/announce"],
}</nowiki>
Пример серверного кода метатрекера на Example of a server code on PHP:
<nowiki><?php
$infohash = isset($_GET['infohash']) ? $_GET['infohash'] : '';
echo json_encode($data);</nowiki>
===ВебNode's web-интерфейс узлаinterface===Every node has web-interface to view current status, as well as options to change some of the parameters "on the fly" (without restarting the node). Web-interface works on the main port of the node (specified by parameter <tt>--port</tt>). By default web-interface is available only from the same machine, from which the node was launched.To allow remote access, you have to launch the node with option <tt>--service-remote-access</tt>.Also you can set a password for web-interface to prevent unauthorized access, using option <tt>--service-access-token</tt> Full list of options to customize web-interface:*<tt>--stats-report-interval</tt> - frequency of node's statistics update, in seconds (by default 60)*<tt>--stats-report-peers</tt> - if this option is set, a list of nodes that are currently connected to the node will be shown in monitoring (by default node list is not displayed).*<tt>--service-remote-access</tt> - allow remote access to web-interface*<tt>--service-access-token</tt> - set a password for web-interface Access to web-interface is performed via HTTP-GET request to the node's port:*monitoring - <nowiki>http://node.address:PORT/app/TOKEN/monitoring</nowiki>*control - <nowiki>http://node.address:PORT/app/TOKEN/update</nowiki> If node was launched without option <tt>--service-access-token</tt>, then TOKEN is not specified in the request.<br/>Responses are given in JSON format. Examples:*request to the node without the password for web-interface: <nowiki>http://192.168.1.3:8640/app/monitor</nowiki>*request to the node with the password "qwerty" for web-interface: <nowiki>http://192.168.1.3:8640/app/qwerty/monitor</nowiki> ====Monitoring====Interface of monitoring gives the following information:*<tt>version</tt> - node's version*<tt>max_connections</tt> - maximum number of TCP-connections*<tt>max_peers</tt> - maximum number of concurrently connected nodes*<tt>max_upload_slots</tt> - maximum number of opened upload slots*<tt>download_speed</tt> - current speed of data download (byte/s)*<tt>upload_speed</tt> - current speed of data upload (byte/s)*<tt>connected_peers_count</tt> - number of connected nodes*<tt>connected_peers</tt> - list of connected nodes (empty, if option --stats-report-peers is not set)*<tt>upload_slots</tt> - current number of upload slots ====Management====To change node's parameters "on the fly" you have to send a request of the following kind to web-interface: <nowiki>http://192.168.1.3:8640/app/update?param1=value1&param2=value2...</nowiki>param1 and param2 set names of parameters that have to be updated, value1 and value2 are new values for the parameters. Available for updating parameters:*<tt>max_peers</tt>*<tt>max_upload_slots</tt> Example: <nowiki>http://192.168.1.3:8640/app/update?max_peers=100&max_upload_slots=30</nowiki> (keep the connection with 100 nodes simultaneously and open 30 upload slots) ===Traffic filtration===Starting from version 3.0.2 an ability to filter traffic at special nodes (source, support node and start node) was added. You can filter by ip-addresses or by geotargeting. Rules for the filtration should be put in a separate configuration file, path to which is passed in a special node in parameter --ip-filter-config. Configuration file is a text file in JSON format with the following structure: <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> Section <tt>groups</tt> is used to create named groups, that can be referenced in other sections of the file.Each group may consist of an array ip-addresses (<tt>addresses</tt>) or country codes (<tt>countries</tt>). Array <tt>addresses</tt> may contain addresses of individual hosts, as well as addresses of subnetworks in the format xx.xx.xx.xx/yy. At this moment it is allowed to use only subnetworks /24, /16 and /8. Array <tt>countries</tt> has to contain country codes in uppercase (according to the base [https://www.maxmind.com MaxMind]) Section <tt>whitelist</tt> sets a white list. The node rejects connections from all addresses that are not included in a white list.
====Мониторинг====скоро будетSection <tt>blacklist</tt> sets a black list. The node rejects connections from all addresses from a black list.
====Управление====скоро будетSection <tt>limit_groups</tt> sets limits on the maximum number of connections for each group (in percentage of the total maximum number of connections).

Navigation menu