예제 #1
0
        public SecureNetwork(NodeConfig nodeConfig, NodeState nodeState)
        {
            this.nodeConfig = nodeConfig;
            this.nodeState = nodeState;

            messageTypePairs = new NetworkMessagePairs();
        }
예제 #2
0
 public TimeSync(NodeState nodeState, NodeConfig nodeConfig, NetworkPacketSwitch networkPacketSwitch)
 {
     this.nodeState = nodeState;
     this.nodeConfig = nodeConfig;
     this.networkPacketSwitch = networkPacketSwitch;
     networkPacketSwitch.TimeSyncEvent += networkHandler_TimeSyncEvent;
     collectedResponses = new ConcurrentDictionary<Hash, ResponseStruct>();
 }
예제 #3
0
 public PeerData(NodeSocketData socketInfo, NodeState nodeState, NodeConfig nodeConfig)
 {
     this.IP = socketInfo.IP;
     this.ListenPort = socketInfo.ListenPort;
     this.PubKey = socketInfo.PublicKey;
     this.Name = socketInfo.Name;
     TimeStamp = nodeState.NetworkTime;
     Signature = new Hash(nodeConfig.SignDataWithPrivateKey(signableData()));
 }
예제 #4
0
        public NetworkPacketSwitch(NodeConfig nodeConfig, NodeState nodeState, GlobalConfiguration globalConfiguration)
        {
            this.nodeConfig = nodeConfig;
            this.nodeState = nodeState;
            this.globalConfiguration = globalConfiguration;

            network = new SecureNetwork(nodeConfig, nodeState);
            network.PacketReceived += network_PacketReceived;

            network.Initialize();
        }
예제 #5
0
        public PeerDiscovery(NodeState nodeState, NodeConfig nodeConfig, NetworkPacketSwitch networkPacketSwitch)
        {
            this.nodeState = nodeState;
            this.nodeConfig = nodeConfig;
            this.networkPacketSwitch = networkPacketSwitch;
            requestRecipient = null;
            requestToken = null;
            KnownPeers = new ConcurrentDictionary<Hash, PeerData>();
            networkPacketSwitch.PeerDiscoveryEvent += networkHandler_PeerDiscoveryEvent;

            // maybe replace by better rng, but no crypo here anyway
            rng = new Random();
        }
        public IncomingTransactionMap(NodeState nodeState, NodeConfig nodeConfig, TransactionStateManager transactionStateManager)
        {
            this.nodeState = nodeState;
            this.nodeConfig = nodeConfig;
            this.transactionStateManager = transactionStateManager;

            IncomingTransactions = new ConcurrentDictionary<Hash, TransactionContent>();

            System.Timers.Timer Tmr = new System.Timers.Timer();
            Tmr.Elapsed += Tmr_Elapsed;
            Tmr.Enabled = true;
            Tmr.Interval = nodeConfig.UpdateFrequencyPacketProcessMS;
            Tmr.Start();
        }
예제 #7
0
        public LedgerSync(NodeState nodeState, NodeConfig nodeConfig, NetworkPacketSwitch networkPacketSwitch)
        {
            this.nodeState = nodeState;
            this.nodeConfig = nodeConfig;
            this.networkPacketSwitch = networkPacketSwitch;
            this.LedgerTree = nodeState.Ledger.LedgerTree; // Just aliasing.

            LedgerState = LedgerSyncStateTypes.ST_GOOD;

            this.networkPacketSwitch.LedgerSyncEvent += networkHandler_LedgerSyncEvent;

            TimerLedgerSync = new System.Timers.Timer();
            if (Enable) TimerLedgerSync.Elapsed += TimerLedgerSync_Elapsed;
            TimerLedgerSync.Enabled = true;
            TimerLedgerSync.Interval = nodeConfig.UpdateFrequencyLedgerSyncMS;
            TimerLedgerSync.Start();

            TimerLedgerSync_Root = new System.Timers.Timer();
            if (Enable) TimerLedgerSync_Root.Elapsed += TimerLedgerSync_Root_Elapsed;
            TimerLedgerSync_Root.Enabled = true;
            TimerLedgerSync_Root.Interval = nodeConfig.UpdateFrequencyLedgerSyncMS_Root;
            TimerLedgerSync_Root.Start();
        }
 public TransactionStreamHandler(SecureNetwork network, NodeState nodeState)
 {
     this.network = network;
     this.nodeState = nodeState;
 }
예제 #9
0
 public DoubleSpendBlacklist(NodeState nodeState)
 {
     blacklist = new ConcurrentDictionary<Hash, long>();
     this.nodeState = nodeState;
 }