When we run full nodes (IRI) there are some occasions where we should run java with the flags --revalidate and/or --rescan.

In which cases should we add those flags and what exactly are the technical differences?

  • Can't give a real answer, but here is where they do something in source.
    – Matt Clark
    Nov 29, 2017 at 0:00
  • 1
    --revalidate was explicitly added to be used after a bug in milestone processing was fixed (it will discard all milestone information and rescan the tangle for milestones). I would not be surprised if that option would disappear (or become a no-op) in the near future.
    – mihi
    Nov 29, 2017 at 21:02

1 Answer 1


Revalidate “drops” the stored solid milestone “table”. So all the milestones are revalidated once the node starts (checks signatures, balances etc). This is used it you take a DB from someone else, or have an issue with solid milestones acting out.

Rescan drops all the tables, except for the raw transaction trits, and re stores the transactions (refilling the metadata, address indexes etc) - this is used when a migration is needed when the DB schema changes mostly.

Source: http://iri-playbook.readthedocs.io/en/master/faq.html#what-are-the-revalidate-and-rescan-options-for

Your Answer

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

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