Exemplo n.º 1
0
        public List <BlockSyncApiModel> All()
        {
            List <BlockSyncApiModel> blocks = new List <BlockSyncApiModel>();

            foreach (var b in Node.BlockChain)
            {
                blocks.Add(BlockSyncApiModel.FromBlock(b.Value));
            }

            return(blocks);
        }
Exemplo n.º 2
0
        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) { }
            }
        }