Author

Topic: are full nodes without port forwarding useful? (Read 1241 times)

legendary
Activity: 1526
Merit: 1134
November 16, 2012, 12:30:14 PM
#10
No, that wasn't my point.

If you have a path A -> B  -> C and B doesn't listen, then A could just connect directly to C (one socket used) and get the same results as if B connected to A and C (two sockets used).
legendary
Activity: 1596
Merit: 1100
The service they provide by bouncing transactions for free between listening nodes can be gained just by having the initial broadcaster make more outbound connections.

...then logically, with most users running with standard defaults, there is benefit.  As stated.  Smiley

legendary
Activity: 1526
Merit: 1134
Alright. I agree that if a node is faster than normal, or doing some kind of cross-transport relaying, that is definitely a useful service even if it isn't accepting connections.

For the case where it's merely relaying at an average speed, it's adding latency and using sockets, which of course is unavoidable in a P2P network but it's also not adding any new sockets back to balance its cost. I'm not sure it makes any difference to effectively ignoring rule violations - as pointed out, nodes check everything themselves anyway. If you're just connecting to a node then it'll still hear bogus transactions from other nodes it did connect to.

If nodes decide to stop relaying transactions for selfish reasons, non-listening nodes don't really help as you have no way to reach them. The service they provide by bouncing transactions for free between listening nodes can be gained just by having the initial broadcaster make more outbound connections.
staff
Activity: 4284
Merit: 8808
How to setup the client on IPv4 and Tor simultaneously?

Use the argument -tor=ip:port  to set the tor proxy and you'll only use tor to connect to hidden service nodes. See doc/Tor.txt included with the software for more information.
hero member
Activity: 756
Merit: 501
There is more to Bitcoin than bitcoins.
A node can also contribute better when it's crossing transports— e.g. talking to nodes on IPv6, and talking on Tor (and maybe listening, as it's possible to listen on tor even for some nodes that don't listen generally) as there are far fewer nodes on the other transports.


How to setup the client on IPv4 and Tor simultaneously?
staff
Activity: 4284
Merit: 8808
I disagree, it's not particularly useful.

Nodes don't vote just by running. They vote either by relaying a transaction, or by mining.

I don't agree with Mike. Bitcoin is not a democracy— at least not a majority voting one. It's not a system that is predicated on a "vote", it's a system predicated on autonomous validation and it would not be trustworthy if it were predicated on relaying based voting as sibyl attacks would undermine it. The only "voting" in bitcoin is the computational vote on the ordering of transactions, which we don't know how to resolve absent a vote, and a non-mining node doesn't actively participate in that (though they do passively participate in that by forwarding only valid blocks— which is essential but rather indirect).

A non-listening node contributes through the basic services of honestly relaying transactions and blocks, but it also contributes to the security of the system by making sure that any violations of the system rules are ignored as effectively as possible.  They do this even when they are not providing listening services so that Mike's SPV clients can externalize their cost of running their own validation... though it is obviously much more valuable when a node provides this service to nodes which lack the validation.  The existence of many relaying full nodes, regardless of if they listen, is one of the reasons that the "red balloons" attack (where miners selfishly fail to relay txn with good fees) is not a practical issue and also doesn't depend on the relaying nodes listening. Another way they help is by improving privacy for other nodes by relaying transactions and thus further obscuring their origins.

An extra point to add is that a node especially contributes when it is better maintained than the average node— because it can increase the speed and reliability of transaction and block relaying network wide. E.g. because the average node is on some slow spinning disk, a fast node which stays up with current software, and runs on a SSD or ramdisk can contribute quite a bit. Faster relaying makes forks less likely which makes zero and one confirmation transactions more safe for those foolish enough to use them. A node can also contribute better when it's crossing transports— e.g. talking to nodes on IPv6, and talking on Tor (and maybe listening, as it's possible to listen on tor even for some nodes that don't listen generally) as there are far fewer nodes on the other transports.
legendary
Activity: 1526
Merit: 1134
I disagree, it's not particularly useful.

Nodes don't vote just by running. They vote either by relaying a transaction, or by mining. Relaying a transaction is only useful as a "vote" for SPV clients that can't verify transactions themselves. It has no impact on other full nodes. And even counting relays is somewhat controversial as a technique for measuring confidence (there  are cases where it can fail).

However, if you're making outbound connections only, then you're not helping SPV clients. So the only voting you can do is mining.

If you mine, then sure, it's helpful. If you don't, it just takes up ports that other clients could use more.

legendary
Activity: 1596
Merit: 1100
If a full node is behind a firewall (that you have no control over) and thus cannot accept incoming connections, is it still useful to the network? Or is it just taking up incoming ports on other nodes that would be better if left available for other clients?

Yes, it is useful.

Every full node, even behind a firewall, is a node that helps ensure the block chain and transactions are valid.

Each full node is a "vote" for the proper block chain.

hero member
Activity: 714
Merit: 500
it helps spreading txes,yes.
sr. member
Activity: 454
Merit: 252
If a full node is behind a firewall (that you have no control over) and thus cannot accept incoming connections, is it still useful to the network? Or is it just taking up incoming ports on other nodes that would be better if left available for other clients?
Jump to: