update chain: add getCacheTime()