public async Task <List <BlockInfoOfNodeResponse> > GetBlockOfNodes(List <ProducerNodeConfig> configs) { var tasks = new List <Task>(); var list = new ConcurrentBag <BlockInfoOfNodeResponse>(); foreach (var config in configs) { tasks.Add(Task.Run(async() => { var client = new Ngk(new ChainConfigurator { HttpEndpoint = config.HttpAddress, ChainId = NgkConfig.ChainId, ExpireSeconds = config.TimeOut }); var info = await client.GetInfo(); list.Add(new BlockInfoOfNodeResponse { Owner = config.Owner, Block = info }); })); } Task.WaitAll(tasks.ToArray()); return(list.ToList()); }
protected BaseClient(IOptions <NgkConfig> options) { NgkConfig = options.Value; Node = NgkConfig.Nodes.FirstOrDefault(); NgkConfigurator = new ChainConfigurator { HttpEndpoint = Node.HttpAddress, ChainId = NgkConfig.ChainId, ExpireSeconds = Node.TimeOut }; Client = new Ngk(NgkConfigurator); }