So I’m using a cross-canister call to get some randomness to generate uuids in my main canister. Here’s the Rust code that I’m using to get the randomness:
let call_result: Result<(Vec<u8>,), _> = ic_cdk::api::call::call(ic_cdk::export::Principal::management_canister(), "raw_rand", ()).await;
I am retreiving the randomness from update calls, which already take 5 seconds locally. Each time I do the call above, about 5 seconds is added to the call latency. So I am at a minimum waiting about 10 seconds for all of my update calls that use randomness. Adding more cross-canister query calls will continue to add 5 seconds a piece.
Is this a fundamental constraint? It’s strange to me that a cross-canister query call has to go through consensus as well.