internal BlockResponse RequestBlocksAsync(uint startBlock, uint quantity, uint?requestId = null) { BlockRequest br = new BlockRequest { StartBlock = startBlock, BlockNumber = quantity, Operation = NetOperationType.Blocks }; if (requestId != null) { br.RequestId = requestId.Value; } using (MemoryStream ms = new MemoryStream()) { br.SaveToStream(ms); ms.Position = 0; SendRaw(ms); } WaitForData(10000); using (var rs = new MemoryStream()) { var rp = ReadResponseSync(rs); switch (rp.Operation) { case NetOperationType.Blocks: return(new BlockResponse(rs, rp)); default: throw new InvalidDataException(); } } }
internal void RequestBlockChain(uint startBlock, uint quantity, uint?requestId = null, NetOperationType netOperationType = NetOperationType.Blocks) { BlockRequest br = new BlockRequest { StartBlock = startBlock, BlockNumber = quantity, Operation = netOperationType }; if (requestId != null) { br.RequestId = requestId.Value; } using (MemoryStream ms = new MemoryStream()) { br.SaveToStream(ms); ms.Position = 0; SendRaw(ms); } }