To explain things clearly, i would try to explain in a brief way for what I have understood and read about these maxconnections in .conf file. Since there is a lot of misconceptions surrounding you, I would try to explain from everything I have read so far.
Forgive me if the post is too long.
A node is certainly which just have connection with the bitcoin network. They don't check that transactions are following the consensus rules or what so ever. They are probably used only for holding private keys, broadcasting transactions, viewing transactions etc. They don't connect with other nodes and receive transactions to confirm them. A full node connects to large number of other nodes in the network and try to
[1] Validate that the created blocks are following the consensus
[2] Check for double-spending
These can only be done if you connect yourself to a large number of other nodes, connecting to limited nodes would make you centralized and depend upon certain specific nodes. Full Nodes do have the power of rejecting a transaction from not getting mined if they feel that the transaction doesn't seem to follow the consensus rules. Even the other nodes considered a transaction as valid and a particular node consider them invalid, the transactions are rejected.
The native bitcoin client works similar to downloading a file via torrent software. Your node first initiates the connection to other peers. This connection is called outbound/outgoing connections. Whenever your client starts to connect to other connections, your signal strength which is present on the bottom right corner increases gradually. Your signal strength touches green or becomes full only when your client starts accepting incoming connections which will happen only after your outbound connections reaches the maximum 8.
What does maxconnections=8 means? 0 incoming?
Yes its true, they are 0 incoming connections as far as i have read the technical documentation present. Your client won't receive incoming connections automatically. You need to manually configure your firewall and open port 8333 to allow others to connect to you. If you are just having 8 connections you are a leecher (in torrenting terms) and you are hurting the network more. You are not seeding anything, which is quite bad.
then what does any value under 8 means? Leaving the fact that "its not a full node", though I wonder how do you call a node like that then?
If you don't receive other's nodes transactions to verify, then what would be the purpose of running a full node? The important aim of running a full node is that it should verify for double spending, if other's don't connect to you for relaying their transaction how does it become a full node?
If the maxconnections value just means the number of incoming, as i was understanding from other posters
NO, your understanding is still certainly wrong. They are the sum of both outbound+inbound connections. In the stackexchange post @sipa has said that whatever higher than 8 can be controlled by -maxconnections. That's why he has said you can control incoming connections assuming no one would have outbound connections less than 8.
Then it makes perfect sense, i could use maxconnections=4 and that would be 4+8.
If you are using maxconnections=4, then you are connecting only to 4 outbound connections which is certainly very bad to the network.
I now see that the value 8 is hardcoded for outgoing connections (unless you edit the code and recompile), so you can only manipulate incoming by maxconnections.
NO, please read the code properly. The code states you cannot increase the outbound connections higher than 8. Whereas if you specify as low as 1 or 2 in maxconnections you will connect to 1 or 2 outbound connections. If you specify 9 or 10 in maxconnections you will connect to 8 outbound and you will allow 1 or 2 inbound based on the input. Try checking yourself by inputting those values and in
Debug > Information
you will see how many incoming and outgoing nodes are connected right now?
If this is not a full node, what it is?
NO, it doesn't function as a full node rather they act as a normal bitcoin wallet holding the private keys as you are not verifying any of the other node transactions and just relaying transactions as normal SPV wallets do.
What are nodes using values 1~8 for maxconnections
They just function as normal bitcoin wallets.
P.S People assume that just downloading the whole 150+ GB blockchain data will make them a full node. That is certainly wrong and a misconception.Full Nodes are the heart and the working blocks of the bitcoin system which has more power than a miner.
8 in, 8 out
Is this true? Need someone to verify this probably.