protected override void InitializeInner() { IEnumerable <BlockLattice.Core.DataModel.Nodes.Node> registryNodes = _nodesDataService.GetAll().Where(n => n.NodeRole == BlockLattice.Core.DataModel.Nodes.NodeRole.TransactionsRegistrationLayer); foreach (var node in registryNodes) { _registryGroupState.AddNeighbor(node.Key); } IEnumerable <BlockLattice.Core.DataModel.Nodes.Node> syncNodes = _nodesDataService.GetAll().Where(n => n.NodeRole == BlockLattice.Core.DataModel.Nodes.NodeRole.SynchronizationLayer); _registryGroupState.SyncLayerNode = syncNodes.FirstOrDefault()?.Key; }
protected override void InitializeInner() { IEnumerable <Blockchain.Core.DataModel.Nodes.Node> syncNodes = _nodesDataService.GetAll().Where(n => n.NodeRole == Blockchain.Core.DataModel.Nodes.NodeRole.SynchronizationLayer); foreach (var node in syncNodes) { _synchronizationGroupState.AddNeighbor(node.Key); } IEnumerable <Blockchain.Core.DataModel.Nodes.Node> registryNodes = _nodesDataService.GetAll().Where(n => n.NodeRole == Blockchain.Core.DataModel.Nodes.NodeRole.TransactionsRegistrationLayer); foreach (var node in registryNodes) { _syncRegistryNeighborhoodState.AddNeighbor(node.Key); } }
protected override void InitializeInner() { BlockLattice.Core.DataModel.Nodes.Node node = _nodesDataService.GetAll().FirstOrDefault(); if (node != null) { _keyTarget = node.Key; } else { byte[] seedTarget = GetRandomSeed(); byte[] targetKeyBytes = Ed25519.PublicKeyFromSeed(seedTarget); _keyTarget = _identityKeyProvider.GetKey(targetKeyBytes); node = new BlockLattice.Core.DataModel.Nodes.Node { Key = _keyTarget, IPAddress = System.Net.IPAddress.Parse("127.0.0.1") }; _nodesDataService.Add(node); } ClientTcpCommunicationConfiguration clientTcpCommunicationConfiguration = _configurationService.Get <ClientTcpCommunicationConfiguration>(); _communicationService.Init(new SocketSettings(clientTcpCommunicationConfiguration.MaxConnections, clientTcpCommunicationConfiguration.ReceiveBufferSize, clientTcpCommunicationConfiguration.ListeningPort, System.Net.Sockets.AddressFamily.InterNetwork)); _communicationService.Start(); _key = _cryptoService.PublicKey; }
protected override void InitializeInner() { IEnumerable <BlockLattice.Core.DataModel.Nodes.Node> nodes = _nodesDataService.GetAll(); foreach (var node in nodes) { _neighborhoodState.AddNeighbor(node.Key); } }
public void Initialize() { _topNodeKeys.AddRange(_nodesDataService.GetAll().Where(n => n.NodeRole == NodeRole.SynchronizationLayer).Take(21).Select(n => n.Key)); ////TODO: need to take all last blocks where DPOS delegation is specified //IEnumerable<TransactionalGenesisBlock> genesisBlocks = _chainDataService.GetAllLastBlocksByType<TransactionalGenesisBlock>(); ////IEnumerable<TransactionalBlockBaseV1> transactionalBlocks = _chainDataService.GetAllLastBlocksByType<TransactionalBlockBaseV1>(); //_dposDescriptors = genesisBlocks.ToDictionary(g => g.Signer, g => new DposDescriptor { SourceIdentity = g.Signer, TargetIdentity = g.NodeDpos, Votes = 1 }); //_votesForCandidates = _dposDescriptors.GroupBy(d => d.Value.TargetIdentity).ToDictionary(g => g.Key, g => g.Select(v => v.Value).ToList()); ////genesisBlocks.GroupBy(b => b.NodeDpos).ToDictionary(g => g.Key, g => new DposDescriptor {SourceIdentity = g.Key, TargetIdentity = g.Sum(b => transactionalBlocks.FirstOrDefault(t => t.Key == b.Key)?.UptodateFunds??0) }
public void Initialize() { IEnumerable <Node> nodes = _nodesDataService.GetAll(); foreach (var node in nodes) { _nodeAddresses.AddOrUpdate(node.Key, new NodeAddress(node.Key, node.IPAddress), (k, v) => v); if (node.NodeRole == NodeRole.StorageLayer) { _storageLayerNodeAddresses.AddOrUpdate(node.Key, new NodeAddress(node.Key, node.IPAddress), (k, v) => v); } } }
public void UpdateTransactionalShards() { lock (_sync) { IEnumerable <Node> nodes = _nodesDataService.GetAll().Where(n => n.NodeRole == NodeRole.TransactionsRegistrationLayer); List <ShardDescriptor> shardDescriptors = new List <ShardDescriptor>(); ShardDescriptor shardDescriptor = new ShardDescriptor(); shardDescriptors.Add(shardDescriptor); foreach (var node in nodes) { //TODO: apply usage of _synchronizationContext.LastBlockDescriptor for building shards shardDescriptor.Nodes.Add(node.Key); } _shardDescriptors = new ReadOnlyCollection <ShardDescriptor>(shardDescriptors); } }