public List <BlockSyncApiModel> All() { List <BlockSyncApiModel> blocks = new List <BlockSyncApiModel>(); foreach (var b in Node.BlockChain) { blocks.Add(BlockSyncApiModel.FromBlock(b.Value)); } return(blocks); }
public List <BlockSyncApiModel> GetBlocksForSync(int fromIndex, int count) { List <BlockSyncApiModel> blocks = new List <BlockSyncApiModel>(); int endIndex = fromIndex + count - 1; if (endIndex > Node.BlockChain.Count) { endIndex = Node.BlockChain.Count; } for (int i = fromIndex; i < endIndex; i++) { blocks.Add(BlockSyncApiModel.FromBlock(Node.BlockChain[i])); } return(blocks); }
public void BroadcastBlock(Block block) { foreach (Peer p in Peers) { try { RestClient client = new RestClient(p.Url); NewBlockApiModel apiModel = new NewBlockApiModel(); apiModel.Block = BlockSyncApiModel.FromBlock(block); apiModel.NodeAddress = Current.Url; var blData = JsonConvert.SerializeObject(apiModel); Console.WriteLine("Block for broadcast: " + blData); Console.WriteLine(); Console.WriteLine(); client.Post("api/block/new", apiModel); } catch (Exception ex) { } } }