generate persistent node ID