private bool InitializeFederationMemberKey() { if (this.nodeSettings.DevMode == null) { // Load key. Key key = new KeyTool(this.nodeSettings.DataFolder).LoadPrivateKey(); if (key == null) { this.logger.LogWarning("No federation key was loaded from 'federationKey.dat'."); return(false); } this.CurrentFederationKey = key; this.SetIsFederationMember(); if (this.CurrentFederationKey == null) { this.logger.LogTrace("(-)[NOT_FED_MEMBER]"); return(false); } return(true); } else { var keyIndex = this.nodeSettings.ConfigReader.GetOrDefault("fedmemberindex", 0); this.CurrentFederationKey = this.network.FederationKeys[keyIndex]; this.SetIsFederationMember(); return(true); } }
/// <summary>Loads federation key if it exists.</summary> private void LoadKey() { var keyTool = new KeyTool(this.settings.DataFolder); Key key = keyTool.LoadPrivateKey(); this.IsFederationMember = key != null; this.FederationMemberKey = key; }
public virtual void Initialize() { var genesisFederation = new List <IFederationMember>(this.network.ConsensusOptions.GenesisFederationMembers); this.logger.LogInformation("Genesis federation contains {0} members. Their public keys are: {1}", genesisFederation.Count, $"{Environment.NewLine}{string.Join(Environment.NewLine, genesisFederation)}"); // Load federation from the db. this.LoadFederation(); if (this.federationMembers == null) { this.logger.LogDebug("Federation members are not stored in the db. Loading genesis federation members."); this.federationMembers = genesisFederation; this.SaveFederation(this.federationMembers); } // Display federation. this.logger.LogInformation("Current federation contains {0} members. Their public keys are: {1}", this.federationMembers.Count, Environment.NewLine + string.Join(Environment.NewLine, this.federationMembers)); // Load key. Key key = new KeyTool(this.settings.DataFolder).LoadPrivateKey(); if (key == null) { this.logger.LogWarning("No federation key was loaded from 'federationKey.dat'."); return; } this.CurrentFederationKey = key; this.SetIsFederationMember(); if (this.CurrentFederationKey == null) { this.logger.LogTrace("(-)[NOT_FED_MEMBER]"); return; } // Loaded key has to be a key for current federation. if (!this.federationMembers.Any(x => x.PubKey == this.CurrentFederationKey.PubKey)) { string message = "Key provided is not registered on the network!"; this.logger.LogWarning(message); } this.logger.LogInformation("Federation key pair was successfully loaded. Your public key is: '{0}'.", this.CurrentFederationKey.PubKey); }
// TODO /* * Subscribe to VotingManager and track when new member is added or deleted. Update keys and then persist. */ public void Initialize() { // Load federation from the db. this.federationMembers = this.LoadFederationKeys(); if (this.federationMembers == null) { this.logger.LogDebug("Federation members are not stored in the db. Loading genesis federation members."); this.federationMembers = this.network.ConsensusOptions.GenesisFederationPublicKeys; this.SaveFederationKeys(this.federationMembers); } // Display federation. this.logger.LogInformation("Federation contains {0} members. Their public keys are: {1}", this.federationMembers.Count, Environment.NewLine + string.Join(Environment.NewLine, this.federationMembers)); // Load key. Key key = new KeyTool(this.settings.DataFolder).LoadPrivateKey(); this.IsFederationMember = key != null; this.FederationMemberKey = key; if (this.FederationMemberKey == null) { this.logger.LogTrace("(-)[NOT_FED_MEMBER]"); return; } // Loaded key has to be a key for current federation. if (!this.federationMembers.Contains(this.FederationMemberKey.PubKey)) { string message = "Key provided is not registered on the network!"; this.logger.LogCritical(message); throw new Exception(message); } this.logger.LogInformation("Federation key pair was successfully loaded. Your public key is: '{0}'.", this.FederationMemberKey.PubKey); }