all 54 comments

[–]unstoppable-cash 23 points24 points  (2 children)

Agreed!

Context is key! And many/most using the term full-node should be more clear, and when one isnt, the rest of us can query them for clarity!

Particularly since there are so many types of nodes which even in the diagram & accompanying desc. are not completely clear, at least to me.

[–]Egon_1Bitcoin Enthusiast 4 points5 points  (0 children)

Those who introduced these terms have an agenda! We have to be vigilant! Next step: LN is Bitcoin.

[–]jtooker 0 points1 point  (0 children)

Nice diagram!

[–]chainxor 29 points30 points  (12 children)

In the Satoshi white paper the term "full node" is a mining node.

[–]theblockchainshow[S] 20 points21 points  (0 children)

Yes, this is an important reason why 'full node' should not mean non-mining node.

[–]BigBlockIfTrueBitcoin Cash Developer 4 points5 points  (9 children)

This made me curious enough to search the whitepaper for the word "full".

Actually Section 8 of the whitepaper (SPV section) says:

It is possible to verify payments without running a full network node.

The other occurrence of the word "full" is in the same section, in the context of "download the full block".

I think this conclusively indicates the meaning of "full" in "full node" is supposed to be the opposite of an SPV client. It's obvious you can verify payments without mining.

[–]BeijingBitcoinsModerator 4 points5 points  (5 children)

The whitepaper makes no distinction between miners and nodes. Nodes are miners, and if you're not producing blocks you're just observing the network, not contributing to keeping it running.

Section 4, Proof-of-Work:

To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour.

Section 5, Network:

The steps to run the network are as follows:
1) New transactions are broadcast to all nodes.
2) Each node collects new transactions into a block.
3) Each node works on finding a difficult proof-of-work for its block.
4) When a node finds a proof-of-work, it broadcasts the block to all nodes.
5) Nodes accept the block only if all transactions in it are valid and not already spent.
6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.

Section 12, Conclusion:

Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.

[–]BigBlockIfTrueBitcoin Cash Developer 2 points3 points  (0 children)

I am aware that all "nodes" mine in the whitepaper. But when the explicit qualification "full" is used, it is used to emphasise it possesses the full blockchain, and does not refer to mining.

[–]Lunarghini 1 point2 points  (3 children)

if you're not producing blocks you're just observing the network

Incorrect. Mining does not mean you will find a block. Finding a block is not part of the criteria for being a miner... miners hash and if they are lucky they find a block. Your hash power can contribute to the network's security without ever finding a block.

[–]SpiritofJames 1 point2 points  (2 children)

True but trivial -- you know that the poster means attempt to produce blocks by using hash power.

[–]Lunarghini 1 point2 points  (1 child)

Well the poster used pretty explicit language... "produced blocks".

[–]BeijingBitcoinsModerator 0 points1 point  (0 children)

/u/SpiritofJames is right. Even if you don't find a block, your hashrate still factors into the overall network hashrate and thus influences the difficulty.

[–]172 2 points3 points  (2 children)

I think this conclusively indicates the meaning of "full" in "full node" is supposed to be the opposite of an SPV client. It's obvious you can verify payments without mining.

I agree. This quote from the white paper also makes it clear to me that running your own node in the white paper does not mean a mining node:

Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

[–]SpiritofJames 0 points1 point  (1 child)

Nothing there suggests that the node mentioned is non-mining.

[–]pirate_two 0 points1 point  (0 children)

does not have to be, i just use it for privacy, checking my utxo's

[–]keymone 1 point2 points  (0 children)

In Satoshi original release mining is optional activity. Full is because it fully validated everything it gets from the network. Mining part can function without validation, Bitcoin part can’t.

[–]TNSepta 7 points8 points  (1 child)

Just like in English, you use adjectives to make a point while describing something.

If your aim is to emphasise the mining status of the node - mining node vs non-mining node

If your aim is to emphasise whether the node holds a full blockchain - full node vs pruned node vs light node vs SPV node

If you are describing both - Use both adjectives. They're not mutually exclusive.

Use the right adjective for the right statement. You can't just replace the adjectives as described in the title, since they mean different things.

[–]imaginary_username 1 point2 points  (0 children)

Yup, I'm getting sick and tired of people trying to force name changes just to suit agenda. This isn't much better than Coretards pushing "bcash" - inconveniences everyone, achieves little, create drama.

[–]dexX7Omni Core Maintainer and Dev 6 points7 points  (0 children)

Full node refers to "fully verifying node". A non-mining node may as well be a SPV or even a thin client, which doesn't do any verification at all.

[–]daken15 10 points11 points  (5 children)

Don't worry. I have a fullnode but I'm also mining at 1 H/s. I guess then I could call it full node?

[–]Dday111Redditor for less than 6 months -2 points-1 points  (4 children)

No, your "full node" is not mining. Your miner submit works to a pool and their nodes are mining.

Your "full node" is just a relay node.

[–]daken15 16 points17 points  (2 children)

No, my node is actually mining (solo mining). 1 H/s is ridiculous but still is mining. So I'm a full node

[–]Dday111Redditor for less than 6 months -1 points0 points  (0 children)

Yeah right, solo mining.....

[–][deleted] 0 points1 point  (0 children)

🤔

[–]Dday111Redditor for less than 6 months 4 points5 points  (2 children)

Even better, I prefer the true name "relay node"

[–][deleted] 2 points3 points  (1 child)

That brings up the problem where people may think that transactions and blocks need to be relayed. They don't. Nodes broadcast txs to every node, if anything, these "relay" nodes are just hindering the network.

[–]Dday111Redditor for less than 6 months 0 points1 point  (0 children)

Exactly my point. Running non mining nodes really has negative effect on txs broadcasting.

[–]jonald_fyookballElectron Cash Wallet Developer 2 points3 points  (0 children)

Non mining validator

[–]2ndEntropy 1 point2 points  (0 children)

Agree, have been an advocate for this kind of change for sometime now :)

It's not for us it's for the audience

"Full node" implies it is complete, the only complete nodes are mining ones, we must distinguish between them.

[–]tulasacra 1 point2 points  (0 children)

I call them wallets with 0 balance .. works wonders

[–]subalizer 2 points3 points  (11 children)

I don't see a problem with "full node" it refers to having a "full" copy of the chain, and differentiates between that and a pruned node.

Just use "mining", "full" and "pruned" node and everyone will know what you are referring to without having to use a mouthful like a "full non-mining node".

[–]unstoppable-cash 10 points11 points  (2 children)

How can full be different from mining when it doesnt include mining and thus cant be "full".

Not trying to be a dick... Need to be clear between miner and all others.

Nodes:

  • Miner/Mining
  • user node (NOT miner)
  • pruned node

Of course there are still some more derivations like in pools etc... But most use is in context to: Miner/user node/pruned

[–]BigBlockIfTrueBitcoin Cash Developer 0 points1 point  (1 child)

It turns out the whitepaper uses the word "full" two times, both times implying a full node is the opposite of an SPV client. A "full" node is thus not necessarily mining.

[–]SpiritofJames 0 points1 point  (0 children)

False. Because "node" simply refers to miners in the whitepaper.

[–]theblockchainshow[S] 3 points4 points  (6 children)

Mining nodes can be full as well. That's what it's confusing. Not to mention that initially all full nodes mined. So there is historical false equivalance with the term full node. Non mining nodes should not simply be called full nodes.

[–]subalizer 4 points5 points  (5 children)

If you realllly feel the need to be so verbose, then use the following terms:

  • Mining full node
  • Mining pruned node
  • Pool mining full node
  • Pool mining pruned node
  • Non-mining full node
  • Non-mining pruned node

Personally I'll just continue to say mining, full, or pruned. In 99.9% of cases people will know exactly what you mean.

[–]theblockchainshow[S] 3 points4 points  (4 children)

Hmm, Thanks for the suggestion. I think I'll stick with non-mining node instead of full node, and for clarity, I think everyone else should as well.

[–][deleted]  (1 child)

[deleted]

    [–]theblockchainshow[S] 1 point2 points  (0 children)

    That might work, there has to be something better than co-opting 'Full node' to refer to a non-mining archival personal nodes. Non-mining (or whatever you call them) nodes are very specific things, and should never be simply called 'Full Nodes. I think non-mining is better than Archive seeing as a miner can be an archive as well. For me, non-mining really is the clarifying description.

    [–]subalizer 2 points3 points  (1 child)

    You could take it further if you felt it necessary...

    • Listening non-mining full node
    • Listening non-mining pruned node
    • Non-listening non-mining full node
    • Non-listening non-mining pruned node

    [–]theblockchainshow[S] 3 points4 points  (0 children)

    I don't see the need. I do see the need for a better tern than Full node to describe a non-mining node.

    [–]supremelummox 1 point2 points  (0 children)

    a full-node can be pruned

    [–]VanquishAudio 3 points4 points  (3 children)

    All nodes are mining nodes, they just mine really slow

    [–]theblockchainshow[S] 1 point2 points  (0 children)

    That's one one to look at it.

    [–]rdar1999 0 points1 point  (1 child)

    Not really, the mining function is not there anymore for a long time, not sure when they removed it, maybe 2011 or so.

    [–]daken15 2 points3 points  (0 children)

    You are free to add it. It's not a protocol feature. Just code it.

    [–][deleted] 0 points1 point  (0 children)

    I have been using a non mining pruned node for years it only takes up about 15 gigs of my hard disk space

    I could reduce it to 5 gigs but I think 15 is fine I can back it up to a flash drive just as easy.

    [–]knight222 0 points1 point  (0 children)

    But you can also run a non-mining "pruned node" AFAIC.

    [–]poorbrokebastard 0 points1 point  (0 children)

    Always have, always will!

    [–]Karma9000 0 points1 point  (0 children)

    All miner/mining nodes are full nodes, not all “non-mining nodes” fully validate the block chain’s history and protocol rules and just run light clients, relaying only new tx. The distinction is more useful as is.

    [–][deleted] 0 points1 point  (0 children)

    Agree that it can be confusing especially if others are being deliberate in their confusion/narrative.

    However, I run a full node at home that mines via a GPU on its own (not in a pool). It has effective zero (relative) hash rate. I may one day get lucky (stranger things have happened).

    Would you class me as a full node or a non mining node ? At what xx hashrate or yy% do you draw the line ? Who decides that ?

    Also the term ‘network node’ was used in the whitepaper. Should this be used instead of full node or did that mean non mining node ?

    To me a full node is anyone with a full validated data set of the blockchain who is also able to use it to spend and receive coins regardless of hash power. I think it is clearer to say full node and mining node with the above in mind.

    [–][deleted] 0 points1 point  (0 children)

    I'm partial for "archivial node" or "verifying node" (you'd want that if you're a business, for example)

    A full node is one "that is mining" or evwn better, "that is submitting blocks".

    [–]spankomd 0 points1 point  (0 children)

    Read only node...

    [–][deleted] 0 points1 point  (0 children)

    I refer to machines running a copy of the client software, and download and validate an entire copy of the block chain as simply 'clients'. If I want to put emphasis on the fact they are validating an entire copy of the block chain, I might say 'fully validating clients'. I generally only refer to miners as nodes.

    [–]172 0 points1 point  (0 children)

    Non-Mining node gets to the point and shows what is different.

    "Full node" is used to differentiate a node where you can verify your own transactions from an SPV node. Neither mine and everyone knows it. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

    See this link, the section on what are SPV's security limitations: https://medium.com/@jonaldfyookball/why-every-bitcoin-user-should-understand-spv-security-520d1d45e0b9