When node gets Parcel it will be processed by ParcelProcessor.

Parcel consist from two items (payment and payload) and each item will be processed via Item processor. What do ParcelProcessor see below.


  • Parcel's processor download parcel or get it from constructor params;

  • then run Node#checkItemInternal(HashId, HashId, Approvable, boolean, boolean, boolean) for both payment and payload items, but with isCheckingForce param set to false for payload: payload checking wait for payment item will be processed (goes through ParcelProcessingState#PREPARING, ParcelProcessingState#PAYMENT_CHECKING, ParcelProcessingState#PAYMENT_POLLING processing states);

  • after payment have been processed payload is start checking (goes through ParcelProcessingState#PAYLOAD_CHECKING, ParcelProcessingState#PAYLOAD_POLLING);

  • finally parcel's processor removing (goes through ParcelProcessingState#FINISHED}, {@link ParcelProcessingState#NOT_EXIST processing states).