2 support nodes - private source broadcasting problem (EN)

Hi everybody, sorry if i can only use English (and Vietnamese :D), i need your help.

I’ve been testing Acestream solution for P2P streaming for a week. It plays well but I’ve got a problem when broadcasting with “–private-source” option

I use 01 source server with 02 support nodes like on this guide: http://wiki.acestream.media/Streaming/en . It works but private source. When i use “–private-source” option, the player finds no active peers and streams, and there is no connection between client and nodes

http://dongcodiesel.com.vn/upload/images/2013/08/28/2013-08-28101955.png

[b]I install Acestream on Centos 5.3 64bit, and here is the configuration:

  • Source: 10.0.1.200[/b]
acestreamengine-stream \
--name "lala" \
--debug 1 \
--source "http://10.0.1.100:8080" \
--bitrate 64000 \
--publish-dir "/var/www/html" \
-n "10.0.1.300:8621" \
-n "10.0.1.400:8621" \
--cache-dir "/tmp/" -\
-add-authorized-peers \
--private-source \
--show-pieces > /tmp/test.log 2>&1

* Support Nodes: 10.0.1.300

acestreamengine-node \
--url "http://10.0.1.200/lala.acelive" \
--state-dir "/tmp" \
--source-node "10.0.1.200:7764" \
--allow-source-download \
--debug 1 \
--show-pieces \
--support-node "10.0.1.400:8621" \
--allow-support-download > /tmp/test.log

* Support Nodes: 10.0.1.400

acestreamengine-node \
--url "http://10.0.1.200/lala.acelive" \
--state-dir "/tmp" \
--source-node "10.0.1.200:7764" \
--allow-source-download \
--debug 1 \
--show-pieces \
--support-node "10.0.1.300:8621" \
--allow-support-download > /tmp/test.log

And here is the source log:

not using apsw
2013-08-27 17:35:00 lm::guess_ext_ip_from_local_info: result of get_my_wan_ip() 10.0.1.200
2013-08-27 17:35:00 LM::register: got listen port 7764
2013-08-27 17:35:00 lm::start_upnp: upnp_type 3 locally_guessed_ext_ip 10.0.1.200 listen_port 7764
createlivestream: open stream: url http://10.0.1.100:8080 reader builtin thread MainThread
2013-08-27 17:35:00 LM::add: new download: infohash <82>n^MYlyc]Kâ^Y6<99>
2013-08-27 17:35:00 session::add_to_int_tracker: filename /tmp/tmp3hKQNI/itracker/82d26ec50d596ce37963cf5d4be28a92193699e3.torren
t url-compat False
private source: True
support nodes: [[‘10.0.1.300’, 8621], [‘10.0.1.400’, 8621]]
trackers: [[‘http://10.0.1.200:7764/announce/’]]
authorized peers: [[‘10.0.1.300’, 8621], [‘10.0.1.400’, 8621]]
bitrate: 518000
piece size: 262144
publish dir: /var/www/html
cache dir: /tmp/

2013-08-27 17:35:00 stream::create_pid_file: pid 14220 port 7764 path /tmp/acestreamengine-7764.pid
2013-08-27 17:35:00 lm::dequeue_and_start_hashcheck: infohash 82d26ec50d596ce37963cf5d4be28a92193699e3 thread NetworkThread-2
2013-08-27 17:35:00 lm::hashcheck_done: success True infohash 82d26ec50d596ce37963cf5d4be28a92193699e3 len_queue 0 thread Network
Thread-2
2013-08-27 17:35:00 stream: started input thread
2013-08-27 17:35:00 bt::startRerequester: skip start for private source
2013-08-27 17:35:00 lm::hashcheck_done: sd.hashcheck_done() finished, time 0.0788450241089
2013-08-27 17:35:00 lm::hashcheck_done: sd not found in queue: infohash 82d26ec50d596ce37963cf5d4be28a92193699e3 thread NetworkTh
read-2
2013-08-27 17:35:00 lm::hashcheck_done: len(queue) 0 thread NetworkThread-2
2013-08-27 17:35:01 source::check_statistics_settings: —
2013-08-27 17:35:02 RemoteStatisticsSettings::check_settings: got response: time 0.79109287262 response {
“_expires”: 86400,
“tns”: {
“mode”: “all”,
“url-list”: {
“default”: [“http://tsplayer.mmi.bemobile.ua/vplayer/VPlayerEntry”],
“pixel”: [“http://juke.mmi.bemobile.ua/bug/pic.gif?siteid=tStream”]
},
“options”: {
“only_license”: 0,
“online_interval”: 60,
“allowed_content_types”: [“d”, “o”]
}
},
“ts”: {
“mode”: “none”,
“url-list”: {
“default”: [“http://77.120.105.26/dl/stat”]
}
}
}

2013-08-27 17:35:02 tstats::set_url_list: {u’default’: [u’http://77.120.105.26/dl/stat’]}
2013-08-27 17:35:02 source::check_statistics_settings: next run in 86400
2013-08-27 17:35:03 stream: restarting stream from piece 3907

And here is a node log:

not using apsw
state dir: /tmp/tmpKNlc_A

2013-08-27 17:34:51 stream::create_pid_file: pid 4310 port 8621 path /tmp/acestreamengine-8621.pid
2013-08-27 17:34:51 session::get_ts_metadata_from_db: infohash 82d26ec50d596ce37963cf5d4be28a92193699e3
2013-08-27 17:34:52 node::check_statistics_settings: —
2013-08-27 17:34:52 vod: hook at piece 3907
2013-08-27 17:34:52 RemoteStatisticsSettings::check_settings: got response: time 0.743077039719 response {
“_expires”: 86400,
“tns”: {
“mode”: “all”,
“url-list”: {
“default”: [“http://tsplayer.mmi.bemobile.ua/vplayer/VPlayerEntry”],
“pixel”: [“http://juke.mmi.bemobile.ua/bug/pic.gif?siteid=tStream”]
},
“options”: {
“only_license”: 0,
“online_interval”: 60,
“allowed_content_types”: [“d”, “o”]
}
},
“ts”: {
“mode”: “none”,
“url-list”: {
“default”: [“http://77.120.105.26/dl/stat”]
}
}
}

2013-08-27 17:34:52 tstats::set_url_list: {u’default’: [u’http://77.120.105.26/dl/stat’] }
2013-08-27 17:34:52 node::check_statistics_settings: next run in 86400

Please give me some advices. Thank you so much!

The problem is that you are trying to use private source with internal tracker.

When the source is private it accepts connections from support nodes only.
All other connections (including connections from peers to the internal tracker) are denied.

If you want to make the source node private you should use external tracker (for example, XBT Tracker - http://xbtt.sourceforge.net/tracker/)

The source configuration will look like this:
acestreamengine-stream
–name “lala”
–debug 1
–source “http://10.0.1.100:8080
–bitrate 64000
–publish-dir “/var/www/html”
-n “10.0.1.300:8621”
-n “10.0.1.400:8621”
–cache-dir “/tmp/” -
-add-authorized-peers
–private-source
–skip-internal-tracker
–tracker “udp://10.0.1.200:2710/announce”
–show-pieces > /tmp/test.log 2>&1

You can setup tracker on any existing server or on a dedicated server. If you have many users then the second option is better.

Oh that’s it! It makes me confusing for a day >"< Thank you anton! :smiley:

Oh by the way, does it work with a php tracker? I’m downloading XBT to test but my running tracker is based on NexusPHP :smiley: