What’s the difference between a “Full Node” and vNodes/pNodes?

Might be a stupid question, but what’s the difference between running a “full node” and running pNodes/vNodes? When you purchase a pNode, is that not a full node? What about when you set up a vNode?

I know you need to run a full node if you want to make a pApp, but why can’t that be run on a pNode/vNode?

I found this: “The full node contains data of all Incognito Shards and Beacons which help validate and relay new transactions to corresponding shards, as well as fetching account balance, etc.” (How to run Incognito Chain Full Node on Mainnet). But are vNodes and pNodes not doing that? If not, what do they do?

If there’s such an incentive to run vNodes and pNodes, what’s the incentive or benefit to running a “full node”?


Hi @PRVhodlr, “full node” is different from "Node (pNode/ vNode). Node validates transactions and produces network blocks only, while full node can have more abilities as you quoted: “validate and relay new transactions to corresponding shards, as well as fetching account balance, etc”.

Hey @inccry, what is the benefit of hosting a fullnode as you did? :thinking:

  1. Decentralization
  2. Performance for incscan.io network indexing

Yes, there should be more full nodes out there for decentralization.

1 Like

The incentives for running full nodes seems like a potential problem in the long run. The incentives for running P-nodes and V-nodes are clear and tied to staking and fees, but the incentives for running and maintaining full nodes which have the complete record of the distributed ledger (of all shards for all time) are not as strong or clear (i.e. the value of “decentralization” is some incentive but probably not enough).

This seems like it would lead to the appearance of decentralization on the one hand because p-nodes and v-nodes (which only keep records of the shards they are in, if I understand correctly) and the reality of centralization of (or far fewer) full nodes which contain the REAL complete distributed ledger record of the entire incognito blockchain. Developers of pApps and businesses would be incentivized to maintain full nodes, but not individuals who are incentivized by the proof of stake p-nodes and v-nodes. It is like maintaining one part of the infrastructure of Incognito Network has much more incentive than another (full nodes) which are equally, if not more, important for the security of the whole network.

Some technical questions come to mind: Is there an appropriate ratio of full nodes to (p-nodes and v-nodes) that must be present for the security of the network to be assured? Would a small number of full nodes cause any additional security threats to the network? While (if I understand correctly, which I might not) p-nodes and v-nodes are producing blocks, those blocks as parts of (or occurring in) shards must still be “stitched” securely together somehow presumably by consensus mechanisms in the full nodes (the “glue” that holds all the shards together I assume). What types of risk does a small number of full nodes pose should there be a number of malicious full nodes (even with no malicious p-nodes and v-nodes)? It was mentioned in the description of “dynamic sharding” and scaling that an attacker would have to conquer 2/3 of the shards to conquer the chain which is highly unlikely, but I am wondering what kind of attacks could occur on the beacon “coordinating” chain itself (which I assume is connected to “full-nodes”, not v-nodes)? Is it theoretically possible to conquer the “coordinator” or coordinating nodes/beacons rather than conquering the shards there altering potentially what the coordinator/beacon chain validates or fails to validate? Just curious here, I am a supporter of incognito, but thinking about the security of sharded blockchains is so much more complex than thinking about the security of a regular bitcoin-type single blockchain. Any explanations for the non-expert, layperson trying to get a handle on this would be appreciated.

To be clear, I am not asking about the diluted ambiguous terms “decentralization” and “centralization”, but about the risks / security issues associated with not having thousands of full-nodes running all over the planet. Given the incentives of p-nodes and v-nodes, it is clear we will have thousands of these running all over the planet.


As far as I know, a fullnode doesn’t do anything where it concerns validating blocks, it is just an administrator for what happens on the chain. It does function as a point you can send transactions to, to be validated(authorization/authenticity) before they are presented to be added to the chain. But also info queries.

The problem with fullnodes is, can you trust the owner? Someone could run a fullnode and have software active that will record more info than you would like to share, without you knowing about it.

This makes that running a fullnode is more about the one who wants to use it than about keeping the network safe or (de)centralized.

Right now if the fullnode run by the team fails, the app will lose communication with the chain, but the chain will keep running like nothing has happened.

Most fullnodes limit the number of transactions you can do per some time unit. This is to prevent abuse. That limitations is one of the reasons for service providers to setup their own fullnode.

Ideally we will all run our own fullnode, not for the network, but to keep our own safe connection to it.

1 Like

@Jamie Thanks.

By “Someone could run a fullnode and have software active that will record more info than you would like to share, without you knowing about it”, what do you mean? What “more info” does the full node have?

If I were to spin up a full node, can I have my phone app communicate directly with my own full node instead of others?

It is not what they have, but what they will need. To perform transactions/queries you will have to send your private key.

On the settings tab, the Network option gives you the possibility to switch fullnodes. But as far as I can see only predefined ones.

If you were to run your own scripts, you could direct them to your own fullnode.


Do not switch fullnodes just for fun. Switching to testnet for example will result in removing all your current accounts from the app. You will have to import all of them after switching back again. Funds could be lost if you forgot to save private keys/seed.