9

I've read through the docs and other posts here. However, I'm not 100% clear as to what transactionsToRequest returned by getNodeInfo() means.

Does "transactionsToRequest==0" mean, my node is fully synced with its immediate peers? Or with the globally available Tangle? Or something completely different?

2 Answers 2

4

When your node recieve a transaction from one of it's neighbors: this transaction is referencing 2 other transactions : t1 and t2 (trunk and branch transaction).

If either t1 or t2 (or both) is not in the database of your node: then the transaction hash of t1 (or t2 or both) is added to the queue of the "transactions to request to one of your neighbors".

At some point, your node will take a look into this queue and ask for details about one of the transaction in the "transaction to request" queue to one of it's neighbors.

By this means your node solidify it's view of the tangle (i.e. it fills the unknown parts).

5
  • when a node receives a tx from a neighbor will it also do verification/confirmation stuff? or only on its own generated transactions?
    – GJEEE
    Feb 5, 2018 at 21:52
  • so when one is fully synced milestone wise (LSMS=LMS) and at the same time transactionsToRequest>0 this can only mean that you are missing tx which are younger than the latest milestone. is that correct?
    – GJEEE
    Feb 5, 2018 at 22:01
  • 1
    @GJEEE When a node receive a new transaction (i.e. a transaction that it don't know yet), it will check that the transaction is valid - valid in the sense described here : iota.stackexchange.com/questions/1348/… . It won't do any confirmation on it before using it as a tip to attach another transaction.
    – ben75
    Feb 5, 2018 at 22:30
  • 1
    @GJEEE LSMS==LMS means that your node have a perfect/complete knowledge of all transactions confirmed by all milestones. It's possible (with very very high probability) that your node don't know a transaction older than the LMS , but not confirmed yet. The fact that transaction to request==0 means that all transactions seen by your node are solid. To me , the combination of those 2 states sounds like an indication that you have a healthy node with healthy neighbors.
    – ben75
    Feb 5, 2018 at 22:39
  • it will do the checking in a recursive way i guess? e.g. if it has the trunk, it will continue checking his trunk and branch and so on. i guess a full node will keep track of this by storing also whether or not a tx is solid (to make this check more efficient)?
    – GJEEE
    Feb 5, 2018 at 22:53
1

It means that your node is not aware of any missing transactions (which could be missing because it has seen other transactions referencing it). Whenever you reach this state and make sure no newer packets from other peers can reach it, this value will remain as it is; therefore it is a bad indicator of how synchronized your node is.

Better compare the latest solid subtangle milestone number with your peers and/or with websites like iota.dance/nodes.

1
  • Could you please rephrase your answer or someone else explain it? I honestly still don't get what this API parameter exaxtly means. Does the value represent kind of a queue? Isn't this the value which we see on node lists as "load"?
    – cyclux
    Feb 3, 2018 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.