I tested on a few more configs, here are my findings:
test machines:
- vps: debian stable + required libs from testing (boost 1.55, cmake), running on a virtual server with public IP
- vbox: debian stable + required libs from testing (boost 1.55, cmake), running in a virtualbox on my macbook
- macbook: OSX10.9, client precompiled by bytemaster
connection results:
- macbook has no problem connecting, tested at work and at home
- neither vps nor vbox can connect. I thought it was because of the public ip at first, but then vbox should be able to connect, however it doesn't. I tried launching it with --server, although I don't see why it should help, and it didn't. I also tried running vbox with bridge mode instead of NAT, to no avail. Did those multiple times, and after deleting ~/.Bitshares too.
So it looks like it might not be due to having a public ip but rather some problem with the config I'm using (some lib in debian that doesn't work but works in ubuntu?), or the upnp code not working properly in linux.
Here's the version I tried:
(wallet closed) >>> get_info
{
"blockchain_asset_reg_fee": 301988160,
"blockchain_asset_shares_max": 1000000000000000,
"blockchain_bips_per_share": 12.5,
"blockchain_block_fee_min": 1,
"blockchain_block_interval": 30,
"blockchain_block_num": 0,
"blockchain_block_size_max": 209715,
"blockchain_block_size_target": 104857,
"blockchain_delegate_fire_votes_min": 11428571428571,
"blockchain_delegate_num": 7,
"blockchain_delegate_reg_fee": 43141165,
"blockchain_delegate_reward_min": 200,
"blockchain_id": "ed2c3dba64a343002734f782bb3bc831a99a14c80490b85bfbf33751793469cc",
"blockchain_name_size_max": 63,
"blockchain_name_data_size_max": 4096,
"blockchain_random_seed": "0000000000000000000000000000000000000000",
"blockchain_shares": 80000000000000,
"blockchain_size_max": 107374182400,
"blockchain_symbol": "XTS",
"blockchain_version": 100,
"client_httpd_port": 0,
"client_rpc_port": 0,
"network_num_connections": 0,
"network_num_connections_max": 12,
"network_protocol_version": 100,
"wallet_balance": 0,
"wallet_balance_bips": 0,
"wallet_open": false,
"wallet_unlocked_until": "",
"wallet_version": 100,
"_bitshares_toolkit_revision": "70766ff1b1c737b988c9d27f9f4802984ba388b7",
"_fc_revision": "54c66bbb86770d5d166c8b172b2658e9103e37cb",
"_network_node_id": "365be6ac70a1dfbc69f331f44db6a90fa8d02c42"
}
Also, by looking at the diff between the logs, here's what I get on osx when it connects:
3184005ms th_a connect_to_p2p_netwo ] listening for connections on endpoint 0.0.0.0:5678 node.cpp:1850
3184005ms th_a connect_to ] node_impl::connect_to(107.170.30.182:5678) node.cpp:1873
and then:
3184255ms th_a connect_to ] established outbound connection to 107.170.30.182:5678 node.cpp:440
3184255ms th_a connect_to_task ] Sent "hello" to remote peer 107.170.30.182:5678 node.cpp:1786
3184380ms th_a on_hello_reply_messa ] Received a reply to my "hello" from 107.170.30.182:5678, connection is accepted node.cpp:1034
and here's the same place in the log for the linux client which doesn't:
2770636ms th_a connect_to_p2p_netwo ] listening for connections on endpoint 0.0.0.0:5678 node.cpp:1999
2770636ms th_a connect_to ] node_impl::connect_to(107.170.30.182:5678) node.cpp:2022
2770637ms th_a connect_to ] Exception binding outgoing connection to desired local endpoint: bind: Address already in use tcp_socket.cpp:104
and then
2775645ms upnp operator() ] No valid UPnP IGDs found upnp.cpp:145
let me know if there's anything else I can do to help. Also, should I report this to github or is here a good place to discuss?