Pages:
Author

Topic: Does Bitcoin Core in prune mode support mining? (Read 773 times)

legendary
Activity: 4410
Merit: 4766
December 06, 2018, 02:52:05 PM
#24
Before the troll twins Franky1 and Zin-Zang derail yet another topic, the question was not the definition of a full node.  Please consider starting a new topic if you want to discuss nomenclature.  Pruned nodes do support mining.  No amount of quibbling changes that.

didnt you get the memo from your friends.
latest versions of core dont have mining code. they stripped it out(circa august 2016)
legendary
Activity: 3948
Merit: 3191
Leave no FUD unchallenged
Before the troll twins Franky1 and Zin-Zang derail yet another topic, the question was not the definition of a full node.  Please consider starting a new topic if you want to discuss nomenclature.  Pruned nodes do support mining.  No amount of quibbling changes that.
legendary
Activity: 2898
Merit: 1823
to be a full node you need to offer a full service
validate AND archive


This shallow debate is becoming amusing. Can everyone agree to call an unpruned archive node a "super full node", and a pruned node just a "full node"? Haha.

Or maybe someone from Core should make the terms official. But I already know a small group of people will make another political drama out of it because "it's centralizing".
legendary
Activity: 4410
Merit: 4766
to be a full node you need to offer a full service
validate AND archive

if your just a validator thats for your personal utility. as the next peer would also validate so you are not really serving them in regards to just validating.

other peers care more about being able to provide them with any/all archive data. thats the main part of the p2p network.
with knowing ~144 blocks a day are mined 550 is not really that much data. ~4 days.
some nodes are set to the 288 minimum (~2days)

many transactions hang in mempool limbo far longer. so if a peer comes online wants to build a block when it receives a blockheader. of 5 days ago..but a peer has removed data beyond 4 days ago. some tx's cant be bloom filtered to the peer wanting tx's from 5+days ago

thus its not offering a full service. thus not a full node.

maybe terminology needs to advance
think food

fullnode=NODE_NETWORK, NODE_BLOOM, NODE_WITNESS, NODE_NETWORK_LIMITED
               =does it all including archiving and has segwit data
satisfiednode=NODE_BLOOM, NODE_WITNESS, NODE_NETWORK_LIMITED
               =self validates. then prunes data. then only relays recent data
hungrynode=doesnt validate everything, just wants to feed off others
                =spv node/litenode
compatible=NODE_NETWORK, NODE_BLOOM
                =stripped(downstream filtered) legacy node(no segwit)

basically if ur not flagging all 4 flags, your not a full node
staff
Activity: 4284
Merit: 8808
In this case I don't think that is really the motivation, to me it seems that (regardless of his other views) Zin-Zang just has a very specific belief about what "full node" means and has fallen into the trap of thinking that a definition is something that can be "right" or "wrong" independent of convention or context. "In most cases meaning is use", but this fact isn't always blindingly obvious which is presumably why Wittgenstein bothered writing it down.

In an alternative universe it could well have been the case that the Bitcoin convention established it the other way-- I believe in ours it did primarily because the whole usage of  the term "full node" came about in discussion of the security trade-offs of different ways of using the network (specifically in section 8, simplified payment verification, of the whitepaper).  If instead the term full node were first used in section 7 (reclaiming disk space),  it might have turned out differently-- though only might, because the big difference between having the old history on disk and not is just not terribly important in practice, while the difference between full verification and lite is substantial (including, re: the subject of this thread-- mining!). ... which is also presumably why Satoshi, like developers since, considered pruning as a function a node can do, not a different kind of node*.  [*though I expect as pruning becomes more common and more sophisticated we'll probably think more of nodes that have the full history as a different kind, the term that seems to be coming into use is 'archive']

If you're still thinking that it's improbably convenient that someone is suffering from mere confusion or explicable cognitive traps when those misunderstandings just happen to support some obvious-to-you batshit political argument... you shouldn't.  There are a zillion people on the internet and you can imagine misunderstandings being assigned by a (non-independent) lottery, some unfortunate folks are just going to by chance get assigned the mix of confusion that is compatible whatever it is that they're bugging you with and you don't hear from all the other people that got a different set of blessings from the confusion fairy.  The mistaken understandings and the bonkers politics can also self-reinforce...  It's true enough that malicious actors exist, but they're indistinguishable from sufficiently advanced ignorance and probably more rare than is easily assumed.  We're usually best off assuming ignorance:  Ignorance can be cured, even if people's commitments to past arguments sometimes make curing it difficult.  The success rate for the education wolves may not be that high but assuming malice has pretty much never cured anyone who was actually just confused.
legendary
Activity: 2898
Merit: 1823

You are just making up new terms then, because full node has always meant fully verifying and enforcing the rules and has always included pruning.  You're free to do this, but expect your words to confuse and then anger people when they realize you're misleading them because you were autistically unable to accept terminology that was in widespread use long before you showed up (this thread being an example of that-- the idea that a pruned node couldn't mine only remotely makes sense if you think that they aren't full nodes)... Words have meanings and you will not make friends by rejecting established ones and substituting your own.


Some of "them" deliberately make up new terms or challenge the terms established because they want to confuse everyone and then gaslight their way to manipulate them, especially the newbies.

But the truth will always be known, and "their" gaslighting will merely become memes.

Plus Zingzong is a believer that Zeitcoin will be the next "Bitcoin". Hahahaha!
legendary
Activity: 1806
Merit: 1828

Satoshi Whitepaper is irrelevant , the English language & logic was around before all of us, and Truth is apparent

The Satoshi white paper is irrelevant in this matter?  Huh It's obvious you are not in the mood to be rational at all. If you are going to pooh-pooh the original words of the creator of Bitcoin itself, (and the one who basically invented the first working blockchain as well,) than it's really no use in having any kind of discussion with you at all.
member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
    Please read section 7 of this document. https://bitcoin.org/bitcoin.pdf

     It appears Satoshi himself is referring to a pruned nodes in this section. Also, if you refer to section 5, it doesn't seem to mention that storing the full blockchain is one of the requirement of a node. I will acknowledge that section 5 may give you new material to base your underlying pro-POS arguments on. I'm not certain how Maxwell is destroying the English language here since the concept of pruned nodes is spelled out in the original whitepaper.

Quote
Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space.

What is being debated is the lie, that a pruned node is everybit a Full Node, which is implied when they mislead people and call it a full node.
How they pretend that is not confusing to newbies is beyond me, but I guess they figured their lie is ok.  Tongue
It is not.

There is no argument here about PoS vs PoW, only the false representation of the capabilities of a Pruned Node being exactly the same as a Full Node!

Maxwell is intentionally using the same word full node as descriptive of a Full Node with the Complete Blockchain and a Pruned Node with less than 4 days  .
NOT THE SAME as ONE cannot completely replace the other.

Satoshi Whitepaper is irrelevant , the English language & logic was around before all of us, and Truth is apparent.

For (Pruned Node = FULL NODE) it has to have the exact same capabilities.
Which it does not.

Saying a pruned node is a full node , is like saying a mini bike is a train.
Neither is = to their supposed counterpart.




Satoshi Whitepaper is irrelevant , the English language & logic was around before all of us, and Truth is apparent

The Satoshi white paper is irrelevant in this matter?  Huh It's obvious you are not in the mood to be rational at all.
If you are going to pooh-pooh the original words of the creator of Bitcoin itself, (and the one who basically invented the first working blockchain as well,) than it's really no use in having any kind of discussion with you at all.


 Cheesy Cheesy Cheesy Cheesy Cheesy

LOL,  I seemed to have offended your religious belief in Satoshi as all knowing and all wise. 
1.  Smart yes, all knowing & all wise, no he/they are not, sorry to burst your bubble. He/They were mere mortals with High IQs.

maybe if you say 10 hail satoshis , he may appear to you in a vision.   Wink

Sorry, I only believe in Deities that create the Universes.   Smiley

I do agree this conversation has been beat into the ground, and if you want to repeat a falsehood and be in error, so be it.
But I won't be swayed by unsupported authorities or group ignorance, the truth is the truth no matter how many of you speak the falsehood,
you have no power to change the true reality.

Good Day to all of you , my involvement in this discussion is over.  Kiss
legendary
Activity: 1806
Merit: 1828


FULL NODE HAS THE COMPLETE BLOCKCHAIN AVAILABLE AT ALL TIMES!
Pruned Node DOES NOT!

THEREFORE IT CAN NOT BE CALLED A FULL NODE, EXCEPT in ERROR!

If it can not be used as a complete replacement with the same performance only a Moron believes it can be called the Same Name.
I suggest you look at the dictionary which was around long before either of us, as you are the one with erroneous definitions.
You and your core team are the one confusing people and when I point out:
If a Pruned Node was Truly a Full Node, then it could replace all full nodes of which it can't.

Therefore calling it a full node is a lie.

I am not the one destroying the English language by modifying the meaning of words to suit my PR campaign.

That dear maxwell is you!  Cool




     Please read section 7 of this document. https://bitcoin.org/bitcoin.pdf

     It appears Satoshi himself is referring to a pruned nodes in this section. Also, if you refer to section 5, it doesn't seem to mention that storing the full blockchain is one of the requirement of a node. I will acknowledge that section 5 may give you better material to base your underlying pro-POS arguments on. I'm not certain how Maxwell is destroying the English language here since the concept of pruned nodes is spelled out in the original whitepaper.

Quote
Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space.
member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks.
A pruned node will not be fooled by a very long range / complete rewrite attack.  They can either reorg like normal (and download missing data) or shut off and tell their user they need to redownload to sync up, but in no case will they be fooled by an attack that wouldn't impact every other full node... if they were that would be a concerning bug.

Pruned nodes are more or less externally indistinguishable from other full nodes-- even the fact that they don't serve old blocks doesn't distinguish them, since archive nodes will also not serve old blocks if they've run close to their upload bandwidth limits.

Quote
I can't call it a full node when it is not.

You are just making up new terms then, because full node has always meant fully verifying and enforcing the rules and has always included pruning.  You're free to do this, but expect your words to confuse and then anger people when they realize you're misleading them because you were autistically unable to accept terminology that was in widespread use long before you showed up (this thread being an example of that-- the idea that a pruned node couldn't mine only remotely makes sense if you think that they aren't full nodes)... Words have meanings and you will not make friends by rejecting established ones and substituting your own.


FULL NODE HAS THE COMPLETE BLOCKCHAIN AVAILABLE AT ALL TIMES!
Pruned Node DOES NOT!   Prune Node holds less than 4 days of blockchain history.

THEREFORE IT CAN NOT BE CALLED A FULL NODE, EXCEPT in ERROR!

If it can not be used as a complete replacement with the same performance only a Moron believes it can be called the Same Name.
I suggest you look at the dictionary which was around long before either of us, as you are the one with erroneous definitions.
You and your core team are the one confusing people and when I point out:
If a Pruned Node was Truly a Full Node, then it could replace all full nodes of which it can't.

Therefore calling it a full node is a lie.

I am not the one destroying the English language by modifying the meaning of words to suit my PR campaign.

That dear maxwell is you!  Cool

legendary
Activity: 1456
Merit: 1175
Always remember the cause!
A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks.
A pruned node will not be fooled by a very long range / complete rewrite attack.  They can either reorg like normal (and download missing data) or shut off and tell their user they need to redownload to sync up, but in no case will they be fooled by an attack that wouldn't impact every other full node... if they were that would be a concerning bug.

Pruned nodes are more or less externally indistinguishable from other full nodes-- even the fact that they don't serve old blocks doesn't distinguish them, since archive nodes will also not serve old blocks if they've run close to their upload bandwidth limits.
A non-pruned node is an asset for the network to resist against network-wide, long-range attacks while pruned nodes should be considered a liability, somehow. It is what I mean but you are right, it was my duty to be more specific.

Though in my previous post I have done better:
{full nodes}  also participate in P2P network for the sake of their own security, it is why they need a full history of the blockchain, they want to promote their version of this history and resist long-range attacks against the network.

A pruned node is the one who has decided to give-up with the promotion mission (usually because of bandwidth problems and not HD capacity which is extremely low cost) to do this, it keeps a safe threshold of latest blocks (a chain length with any practical possibility of being subject to a low/mid-range chain rewrite) and the UTXO and drops the older blocks blindly i.e. with zero effect on its UTXO. Hereafter our node is capable to participate in consensus just like any full node but is not helpful for bootstrapping new peers or stuff like that.
staff
Activity: 4284
Merit: 8808
A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks.
A pruned node will not be fooled by a very long range / complete rewrite attack.  They can either reorg like normal (and download missing data) or shut off and tell their user they need to redownload to sync up, but in no case will they be fooled by an attack that wouldn't impact every other full node... if they were that would be a concerning bug.

Pruned nodes are more or less externally indistinguishable from other full nodes-- even the fact that they don't serve old blocks doesn't distinguish them, since archive nodes will also not serve old blocks if they've run close to their upload bandwidth limits.

Quote
I can't call it a full node when it is not.

You are just making up new terms then, because full node has always meant fully verifying and enforcing the rules and has always included pruning.  You're free to do this, but expect your words to confuse and then anger people when they realize you're misleading them because you were autistically unable to accept terminology that was in widespread use long before you showed up (this thread being an example of that-- the idea that a pruned node couldn't mine only remotely makes sense if you think that they aren't full nodes)... Words have meanings and you will not make friends by rejecting established ones and substituting your own.


member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
They say
Prune Node = Full Node

How do you accept that, when it is utterly false?

Did you believe it when I said 3=4?

Words have meaning , believing any random nonsense shows something is broken in your thought process.
ie: war is peace, freedom is slavery, or Pruned Node is a Full Node
All lies.
Put it this way Zin-Zang and move on:
A pruned node is a special class of a full node which is capable of doing everything the latter does other than participating in bootstrapping peers. A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks.

I can accept this:
A pruned node is a special class of a node which is capable of doing everything a Full Node does other than participating in bootstrapping peers.
A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks

I can't call it a full node when it is not. But your definition with the small changes is definitely accurate and I have no dispute with.  Smiley

legendary
Activity: 1456
Merit: 1175
Always remember the cause!
They say
Prune Node = Full Node

How do you accept that, when it is utterly false?

Did you believe it when I said 3=4?

Words have meaning , believing any random nonsense shows something is broken in your thought process.
ie: war is peace, freedom is slavery, or Pruned Node is a Full Node
All lies.
Put it this way Zin-Zang and move on:
A pruned node is a special class of a full node which is capable of doing everything the latter does other than participating in bootstrapping peers. A pruned is fully qualified to participate in consensus as long as it is not about resisting against very- long-range/complete-rewrite attacks.
member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
They say
Prune Node = Full Node

How do you accept that, when it is utterly false?

Did you believe it when I said 3=4?

Words have meaning , believing any random nonsense shows something is broken in your thought process.
ie: war is peace, freedom is slavery, or Pruned Node is a Full Node
All lies.


FYI:
When someone tells a lie, I don't pretend it is the truth, I call them out on it.
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
@Zin-Zang well, like @achow101 said a pruned node is a full node by definition:

Quote
A full node is a program that fully validates transactions and blocks.
Source: https://bitcoin.org/en/full-node

Why would we have to tell everyone to prune? It doesn't make any sense since a new full (validating) node won't be able to download the full bitcoin blockchain from pruned nodes and then do its job (i.e. validate it). Pruned node exist obviously for specific reasons, e.g., for everyone who wants to trade their disk space for a full blockchain.

Because a Prune Node is Not a Full Node, so drop the lie that it is a full node.

Words have meaning and the way people in here twist them , is sickening.

Therefore if a pruned node truly is a Full node, then everyone can switch to Pruned nodes and save resources.

But the truth is a pruned node is not now and never will be a Full Node, (IE: A Pruned Node is an INCOMPLETE NODE, not a Full Node!)
because it does not perform all of the functions of a Full node which include storing a complete copy of the blockchain.

If I said the Number 3 is the same as the Number 4, because 3 is only 1 less than 4.
Hopefully you have enough sense to know that is a lie.

Why do you believe a pruned node is a full node when it is apparent that there is a Major difference.
Pruned nodes only store 550 blocks at 1 time,  Less than 4 days of the blockchain, because of this inferior block storage , they are not Full Nodes.
Yet people repeat this lie, like it was drilled in their heads.   Tongue

I afraid you are simply wrong Zin-Zang. No worries, it happens especially for people like you who are not deeply engaged in bitcoin code, why should you? You are a PoS enthusiast aren't you? Nobody lies about such an important thing, not in this community, people are sometimes biased but they don't lie about tech stuff.

Let me explain:
To validate transactions/blocks, bitcoin Core nodes do not examine blockchain (the famous data structure kept somehow on HD), instead they maintain an in-memory structure called UTXO (Unspent Transaction Outputs). Once a node bootstraps, it gradually builds its own UTXO by querying every single transaction from every single block since genesis to the last block. As time passes and new blocks are published, the node maintains UTXO by removing spent records and inserting new ones due to the transactions included in the block. In case of chain re-writes a proper mechanism carefully is used for keeping everything synch.

Also note that UTXO is not simply a balance sheet but includes output scripts as well, so a node having access to its internal UTXO could easily validate blocks without a single access to the actual permanent blockchain on HD.

But validating blocks is not the only thing that full nodes do (it is the most important one, tho), they also participate in P2P network for the sake of their own security, it is why they need a full history of the blockchain, they want to promote their version of this history and resist long-range attacks against the network.

A pruned node is the one who has decided to give-up with the promotion mission (usually because of bandwidth problems and not HD capacity which is extremely low cost) to do this, it keeps a safe threshold of latest blocks (a chain length with any practical possibility of being subject to a low/mid-range chain rewrite) and the UTXO and drops the older blocks blindly i.e. with zero effect on its UTXO. Hereafter our node is capable to participate in consensus just like any full node but is not helpful for bootstrapping new peers or stuff like that.

member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
@Zin-Zang well, like @achow101 said a pruned node is a full node by definition:

Quote
A full node is a program that fully validates transactions and blocks.
Source: https://bitcoin.org/en/full-node

Why would we have to tell everyone to prune? It doesn't make any sense since a new full (validating) node won't be able to download the full bitcoin blockchain from pruned nodes and then do its job (i.e. validate it). Pruned node exist obviously for specific reasons, e.g., for everyone who wants to trade their disk space for a full blockchain.

Because a Prune Node is Not a Full Node, so drop the lie that it is a full node.

Words have meaning and the way people in here twist them , is sickening.

Therefore if a pruned node truly is a Full node, then everyone can switch to Pruned nodes and save resources.

But the truth is a pruned node is not now and never will be a Full Node, (IE: A Pruned Node is an INCOMPLETE NODE, not a Full Node!)
because it does not perform all of the functions of a Full node which include storing a complete copy of the blockchain.

If I said the Number 3 is the same as the Number 4, because 3 is only 1 less than 4.
Hopefully you have enough sense to know that is a lie.

Why do you believe a pruned node is a full node when it is apparent that there is a Major difference.
Pruned nodes only store 550 blocks at 1 time,  Less than 4 days of the blockchain, because of this inferior block storage , they are not Full Nodes.
Yet people repeat this lie, like it was drilled in their heads.   Tongue
copper member
Activity: 2324
Merit: 2142
Slots Enthusiast & Expert
@Zin-Zang well, like @achow101 said a pruned node is a full node by definition:

Quote
A full node is a program that fully validates transactions and blocks.
Source: https://bitcoin.org/en/full-node

Why would we have to tell everyone to prune? It doesn't make any sense since a new full (validating) node won't be able to download the full bitcoin blockchain from pruned nodes and then do its job (i.e. validate it). Pruned node exist obviously for specific reasons, e.g., for everyone who wants to trade their disk space for a full blockchain.
member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
I have currently set my Core node to -prune=550, but I see that getblocktemplate returns data, so can one mine on the pruned node?
Yes, you can mine.

With only 550 blocks stored, how can/would a pruned node make sure that an input given by user to be signed in a block isn't a double spend? There'd be no way to check that on such a node, right?
(E: Although i think there's probably a mechanism for this, otherwise it wouldn't be able to verify any transactions at all.)
That's not how Bitcoin Core works. Pruned nodes are still full nodes. They have validated every block in the blockchain; they still validate and relay every single valid block and transaction they receive. They are, by definition, full nodes. The difference between pruning and not pruning is whether the node can serve historical blocks to new nodes coming online. Everything else is the same; they can be miners, they will still receive all blocks and transactions, etc. The UTXO data that is necessary for validation is not pulled from the block history, that would be rather slow. Instead, when a block is validated, the UTXOs are copied to a UTXO database and the UTXOs that were spent are removed from that database. Pruning still keeps that database and all of the UTXOs, so validation is still works.

Only Full Nodes for the 550 Blocks,
as you said, they do not allow blocks older than the 550 blocks.
Prune Nodes are Faux Nodes, for anything outside of the 550 block range.

The term they are full nodes is a falsehood propagated by core devs.
1. They don't allow any blocks beyond the 550 range to be downloaded.

2. If they were really full nodes then Tell Everyone to Prune and not waste their resources,
however you won't because that would damage the bitcoin network if their were no True Full Nodes which the pruned nodes are not.

Tell Everyone to Prune, I dare you.    Cool


FYI:  https://news.bitcoin.com/pros-and-cons-on-bitcoin-block-pruning/
Quote
Mining pool owners on the other hand may not want to adopt the block pruning option at all.
Granted, with 550 blocks of history, it should be possible to validate newly mined blocks on the network without too much trouble.
However, it might be in their best interest to keep the blockchain stored in its entirety as a failsafe as well.

With the recent issue surrounding invalid Bitcoin block validation, 550 blocks is not exactly a major buffer to prevent a potential Bitcoin fork.
And if the majority of mining pools end up on on a fork of the network for a lengthy period of time, all hell will break loose.
Granted, that issue affecting invalid block confirmations has been rectified in a swift manner,
but invalid blocks were being generated at an alarming rate for a lengthy period of time.
staff
Activity: 3458
Merit: 6793
Just writing some code
I have currently set my Core node to -prune=550, but I see that getblocktemplate returns data, so can one mine on the pruned node?
Yes, you can mine.

With only 550 blocks stored, how can/would a pruned node make sure that an input given by user to be signed in a block isn't a double spend? There'd be no way to check that on such a node, right?
(E: Although i think there's probably a mechanism for this, otherwise it wouldn't be able to verify any transactions at all.)
That's not how Bitcoin Core works. Pruned nodes are still full nodes. They have validated every block in the blockchain; they still validate and relay every single valid block and transaction they receive. They are, by definition, full nodes. The difference between pruning and not pruning is whether the node can serve historical blocks to new nodes coming online. Everything else is the same; they can be miners, they will still receive all blocks and transactions, etc. The UTXO data that is necessary for validation is not pulled from the block history, that would be rather slow. Instead, when a block is validated, the UTXOs are copied to a UTXO database and the UTXOs that were spent are removed from that database. Pruning still keeps that database and all of the UTXOs, so validation is still works.
Pages:
Jump to: