Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: uchalkql on May 07, 2017, 10:37:43 PM



Title: No inbound connections after pruning
Post by: uchalkql on May 07, 2017, 10:37:43 PM
Hi,

Satoshi:0.14.0

I pruned to prune=4320

I checked in https://bitnodes.21.co/, and it is accepting connections.

Then I got 2 inbound connections yesterday, but it went to zero today.

My ping to most outbound connections are < 250ms.

Is it because of pruning? What can be the other factors?

Thank you.


Title: Re: No inbound connections after pruning
Post by: achow101 on May 07, 2017, 10:55:08 PM
Pruning does affect your incoming connections. If you are pruned, you are no longer able to serve historical blocks, so nodes are less likely to connect to your node. When you prune, you also remove the NODE_NETWORK service (which indicates that you can serve historical blocks) so DNS seeders will no longer give out your node to nodes that need to connections.


Title: Re: No inbound connections after pruning
Post by: uchalkql on May 07, 2017, 11:34:39 PM
Thanks a lot achow101 :)

well, this is very bad. DNS seeders should not behave like that, because pruned nodes can still help a lot the network.

what should happen is that only the nodes that are making the initial download require NODE_NETWORK service.

Maybe it is not the case today, but most of the nodes will be pruned nodes. I run Bitcoin on an old notebook (<2009) and I was able to save a lot of GB.

Pruning does affect your incoming connections. If you are pruned, you are no longer able to serve historical blocks, so nodes are less likely to connect to your node. When you prune, you also remove the NODE_NETWORK service (which indicates that you can serve historical blocks) so DNS seeders will no longer give out your node to nodes that need to connections.


Title: Re: No inbound connections after pruning
Post by: gmaxwell on May 08, 2017, 01:34:05 AM
Thanks a lot achow101 :)

well, this is very bad. DNS seeders should not behave like that, because pruned nodes can still help a lot the network.
And you still will-- by relaying blocks to the nodes you connect out to.

Quote
what should happen is that only the nodes that are making the initial download require NODE_NETWORK service.
Right now there is no way to distinguish nodes that can serve blocks near the tip with ones that can't serve blocks at all.

And there are plenty of nodes that can serve everything, so adding more flags hasn't been the highest priority.  Though there has been recent progress on that.


Title: Re: No inbound connections after pruning
Post by: uchalkql on May 08, 2017, 01:58:55 AM
Thanks a lot gmaxwell!

I thought outbound meant that you only receive information ...

So the terms inbound and outbound are used only to differentiate who stablished connection, and the flow of information happens both ways no matter if it is inbound or outbound?


Thanks a lot achow101 :)

well, this is very bad. DNS seeders should not behave like that, because pruned nodes can still help a lot the network.
And you still will-- by relaying blocks to the nodes you connect out to.

Quote
what should happen is that only the nodes that are making the initial download require NODE_NETWORK service.
Right now there is no way to distinguish nodes that can serve blocks near the tip with ones that can't serve blocks at all.

And there are plenty of nodes that can serve everything, so adding more flags hasn't been the highest priority.  Though there has been recent progress on that.


Title: Re: No inbound connections after pruning
Post by: achow101 on May 08, 2017, 02:02:54 AM
Thanks a lot gmaxwell!

I thought outbound meant that you only receive information ...

So the terms inbound and outbound are used only to differentiate who stablished connection, and the flow of information happens both ways no matter if it is inbound or outbound?
Yes.


Title: Re: No inbound connections after pruning
Post by: uchalkql on May 08, 2017, 02:04:41 AM
Thank you very much!  :D

Thanks a lot gmaxwell!

I thought outbound meant that you only receive information ...

So the terms inbound and outbound are used only to differentiate who stablished connection, and the flow of information happens both ways no matter if it is inbound or outbound?
Yes.


Title: Re: No inbound connections after pruning
Post by: TierNolan on May 16, 2017, 12:51:19 PM
So the terms inbound and outbound are used only to differentiate who stablished connection, and the flow of information happens both ways no matter if it is inbound or outbound?

There are slight differences.  Outgoing connections are trusted more.  

The idea is that if you connect to a node, it is probably trustworthy.  Incoming connections could all be from the same person, using lots of different IPs, trying to attack you.

Address messages are only forwarded if they come from a node that you connected to.  I think addresses that come from nodes that connect to you are ignored (or maybe lower priority), when deciding who to connect to.

Your node reserves 8 slots to try to make sure it has 8 outbound connections.