This PR mostly switches from Iterator to Stream when returning tasks in blockchain services to avoid blocking on futures in runtime threads. Unfortunately, we'll still need this, because core SS code (sessions) is not adopted for futures and we still need to call into Acl and KeyServerSet methods (which will result in async RPC calls) from their code. But this PR decreases potential number of waits to minimum.
This PR is required for introducing service-bounded binaries.
This PR mostly switches from
Iterator
toStream
when returning tasks in blockchain services to avoid blocking on futures in runtime threads. Unfortunately, we'll still need this, because core SS code (sessions) is not adopted for futures and we still need to call into Acl and KeyServerSet methods (which will result in async RPC calls) from their code. But this PR decreases potential number of waits to minimum.This PR is required for introducing service-bounded binaries.