Example #1
0
        public MainWindow(Core _core, Program.Logger _logger, Program.ProgramSettings _psettings, Program.ProgramStatus _pstatus, string _appname, string _version, string _appnameWithVersion, string _lisenceTextFilename, Assembly _entryAssembly, AssemblyName _entryAssemblyName, string _basepath, Process _currentProcess, Action<Exception, Program.ExceptionKind> __OnException, Func<byte[], Version, bool> __UpVersion, List<UnhandledExceptionEventHandler> _unhandledExceptionEventHandlers, List<DispatcherUnhandledExceptionEventHandler> _dispatcherUnhandledExceptionEventHandlers)
        {
            core = _core;
            logger = _logger;
            psettings = _psettings;
            pstatus = _pstatus;
            appname = _appname;
            version = _version;
            appnameWithVersion = _appnameWithVersion;
            lisenceTextFilePath = Path.Combine(_basepath, _lisenceTextFilename);
            entryAssembly = _entryAssembly;

            _OnException = __OnException;
            _UpVersion = __UpVersion;

            unhandledExceptionEventHandlers = _unhandledExceptionEventHandlers;
            dispatcherUnhandledExceptionEventHandlers = _dispatcherUnhandledExceptionEventHandlers;

            InitializeComponent();

            Title = _appnameWithVersion;
            miFile.Header = "ファイル".Multilanguage(19) + "(_F)";
            miClose.Header = "終了".Multilanguage(20) + "(_X)";
            miTool.Header = "ツール".Multilanguage(48) + "(_T)";
            miSettings.Header = "設定".Multilanguage(49) + "(_S)...";
            miMining.Header = "採掘開始".Multilanguage(135) + "(_M)...";
            miDebug.Header = "状況監視".Multilanguage(216) + "(_K)...";
            miHelp.Header = "ヘルプ".Multilanguage(21) + "(_H)";
            miAbout.Header = "CREAについて".Multilanguage(22) + "(_A)...";

            core.iCreaNodeTest.ConnectionKeeped += (sender, e) => this.ExecuteInUIThread(() => tbKeepConnection.Text = "常時接続確立(同期未完了)".Multilanguage(277));
            core.iCreaNodeTest.Syncronized += (sender, e) => this.ExecuteInUIThread(() => tbKeepConnection.Text = "常時接続確立(同期完了)".Multilanguage(278));
            core.iCreaNodeTest.NewVersionDetected += (sender, e) =>
            {

            };
            core.iCreaNodeTest.NumOfConnectingNodesChanged += (sender, e) => this.ExecuteInUIThread(() => tbNumOfConnectingNodes.Text = "接続数:".Multilanguage(219) + core.iCreaNodeTest.NumOfConnectingNodes.ToString());
            core.iCreaNodeTest.NumOfNodesChanged += (sender, e) => this.ExecuteInUIThread(() => tbNumOfNodes.Text = "ノード数:".Multilanguage(220) + core.iCreaNodeTest.NumOfNodes.ToString());

            tbKeepConnection.Text = core.iCreaNodeTest.isKeepConnection ? "常時接続確立".Multilanguage(217) : "常時接続未確立".Multilanguage(218);
            tbNumOfConnectingNodes.Text = "接続数:".Multilanguage(219) + core.iCreaNodeTest.NumOfConnectingNodes.ToString();
            tbNumOfNodes.Text = "ノード数:".Multilanguage(220) + core.iCreaNodeTest.NumOfNodes.ToString();

            Action _UpdateserverStatus = () =>
            {
                this.ExecuteInUIThread(() =>
                {
                    if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.NotRunning)
                    {
                        rServerStatus.Fill = System.Windows.Media.Brushes.Red;
                        rServerStatus.ToolTip = "他ノードからの接続を受け入れることができません。".Multilanguage(221);
                    }
                    else if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.RunningButHaventAccepting)
                    {
                        rServerStatus.Fill = System.Windows.Media.Brushes.YellowGreen;
                        rServerStatus.ToolTip = "他ノードからの接続がありません。".Multilanguage(222);
                    }
                    else if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.HaveAccepting)
                    {
                        rServerStatus.Fill = System.Windows.Media.Brushes.Blue;
                        rServerStatus.ToolTip = "他ノードからの接続を確認しました。".Multilanguage(223);
                    }
                });
            };

            core.iCreaNodeTest.ServerStatusChanged += (sender, e) => _UpdateserverStatus();

            _UpdateserverStatus();

            string instanceName = null;
            PerformanceCounter bytesSentPC = null;
            PerformanceCounter bytesReceivedPC = null;
            float bytesSent1 = 0.0F;
            float bytesReceived1 = 0.0F;
            int timeCounter = 0;

            string pidString = _currentProcess.Id.ToString();

            timer = new Timer((obj) =>
            {
                try
                {
                    if (instanceName == null)
                        instanceName = new PerformanceCounterCategory(".NET CLR Networking 4.0.0.0").GetInstanceNames().Where((elem) => elem.Contains(pidString)).FirstOrDefault();

                    if (instanceName == null)
                        return;

                    if (bytesSentPC == null)
                        bytesSentPC = new PerformanceCounter(".NET CLR Networking 4.0.0.0", "Bytes Sent", instanceName, true);
                    if (bytesReceivedPC == null)
                        bytesReceivedPC = new PerformanceCounter(".NET CLR Networking 4.0.0.0", "Bytes Received", instanceName, true);

                    timeCounter++;

                    float bytesSent2 = bytesSentPC.NextValue();
                    float up = bytesSent2 / 1000;
                    float upSpeed = (bytesSent2 - bytesSent1) / 1000;
                    float upSpeedAverage = (bytesSent2 / timeCounter) / 1000;

                    bytesSent1 = bytesSent2;

                    float bytesReceived2 = bytesReceivedPC.NextValue();
                    float down = bytesReceived2 / 1000;
                    float downSpeed = (bytesReceived2 - bytesReceived1) / 1000;
                    float downSpeedAverage = (bytesReceived2 / timeCounter) / 1000;

                    bytesReceived1 = bytesReceived2;

                    this.ExecuteInUIThread(() =>
                    {
                        tbCommunication.Text = string.Format("送速:{0:0.000}KB/s, 送量:{1:0.000}KB, 受速:{2:0.000}KB/s, 受量:{3:0.000}KB".Multilanguage(224), upSpeed, up, downSpeed, down);
                        tbCommunication.ToolTip = string.Format("送信速度:{0:0.000}KB/s, 平均送信速度:{1:0.000}KB/s, 送信量:{2:0.000}KB, 受信速度:{3:0.000}KB/s, 平均受信速度:{4:0.000}KB/s, 受信量:{5:0.000}KB".Multilanguage(225), upSpeed, upSpeedAverage, up, downSpeed, downSpeedAverage, down);
                    });
                }
                catch (Exception)
                {
                    //<未実装>
                }
            }, null, 0, 1000);
        }
Example #2
0
 public CreaNetworkLocalTestApplication(Program.Logger _logger) : base(_logger)
 {
 }
Example #3
0
            public TestWindow(Program.Logger _logger)
            {
                StackPanel sp1 = null;
                StackPanel sp2 = null;

                EventHandler <Program.LogData> _LoggerLogAdded = (sender, e) => ((Action)(() =>
                {
                    TextBlock tb = new TextBlock();
                    tb.Text = e.Text;
                    tb.Foreground = e.Kind == Program.LogData.LogKind.error ? Brushes.Red : Brushes.White;
                    tb.Margin = new Thickness(0.0, 10.0, 0.0, 10.0);

                    sp2.Children.Add(tb);
                })).BeginExecuteInUIThread();

                Loaded += (sender, e) =>
                {
                    Grid grid = new Grid();
                    grid.RowDefinitions.Add(new RowDefinition());
                    grid.RowDefinitions.Add(new RowDefinition());
                    grid.RowDefinitions.Add(new RowDefinition()
                    {
                        Height = GridLength.Auto
                    });
                    grid.ColumnDefinitions.Add(new ColumnDefinition());

                    ScrollViewer sv1 = new ScrollViewer();
                    sv1.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
                    sv1.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
                    sv1.SetValue(Grid.RowProperty, 0);
                    sv1.SetValue(Grid.ColumnProperty, 0);

                    sp1            = new StackPanel();
                    sp1.Background = Brushes.Black;

                    ScrollViewer sv2 = new ScrollViewer();
                    sv2.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
                    sv2.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
                    sv2.SetValue(Grid.RowProperty, 1);
                    sv2.SetValue(Grid.ColumnProperty, 0);

                    sp2            = new StackPanel();
                    sp2.Background = Brushes.Black;

                    sv1.Content = sp1;
                    sv2.Content = sp2;

                    TextBox tb = new TextBox();
                    tb.SetValue(Grid.RowProperty, 2);
                    tb.SetValue(Grid.ColumnProperty, 0);

                    grid.Children.Add(sv1);
                    grid.Children.Add(sv2);
                    grid.Children.Add(tb);

                    Content = grid;

                    Console.SetOut(new TextBlockStreamWriter(sp1));

                    _logger.LogAdded += _LoggerLogAdded;

                    //SimulationWindow sw = new SimulationWindow();
                    //sw.ShowDialog();

                    this.StartTask(string.Empty, string.Empty, () =>
                    {
                        //string testPrivateRsaParameters;
                        //using (RSACryptoServiceProvider rsacsp = new RSACryptoServiceProvider(2048))
                        //    testPrivateRsaParameters = rsacsp.ToXmlString(true);


                        //RealInboundChennel ric = new RealInboundChennel(7777, RsaKeySize.rsa2048, 100);
                        //ric.Accepted += (sender2, e2) =>
                        //{
                        //    this.StartTask("", "", () =>
                        //    {
                        //        e2.WriteBytes(BitConverter.GetBytes(true));

                        //        bool b = BitConverter.ToBoolean(e2.ReadBytes(), 0);

                        //        SessionChannel sc = e2.NewSession();
                        //        sc.WriteBytes(BitConverter.GetBytes(true));
                        //        sc.Close();

                        //        //e2.Close();
                        //    });


                        //    //e2.Close();

                        //    //Console.WriteLine("");
                        //};
                        //ric.RequestAcceptanceStart();


                        //AutoResetEvent are = new AutoResetEvent(false);
                        //SocketChannel socketc = null;

                        //RealOutboundChannel roc = new RealOutboundChannel(IPAddress.Loopback, 7777, RsaKeySize.rsa2048, testPrivateRsaParameters);
                        //roc.Connected += (sender2, e2) =>
                        //{
                        //    socketc = e2;
                        //    socketc.Sessioned += (sender3, e3) =>
                        //    {
                        //        bool b3 = BitConverter.ToBoolean(e3.ReadBytes(), 0);

                        //        Console.WriteLine("");
                        //    };

                        //    are.Set();

                        //    //e2.Close();

                        //    //Console.WriteLine("connected");
                        //};
                        //roc.RequestConnection();

                        //are.WaitOne();

                        //bool b2 = BitConverter.ToBoolean(socketc.ReadBytes(), 0);

                        //socketc.WriteBytes(BitConverter.GetBytes(true));

                        //socketc.Close();


                        //CirculatedInteger ci = new CirculatedInteger(5);

                        //Console.WriteLine(ci.GetForward(0));
                        //Console.WriteLine(ci.GetForward(1));
                        //Console.WriteLine(ci.GetForward(2));
                        //Console.WriteLine(ci.GetForward(3));
                        //Console.WriteLine(ci.GetForward(4));
                        //Console.WriteLine(ci.GetForward(5));
                        //Console.WriteLine(ci.GetForward(6));

                        //Console.WriteLine(ci.GetBackward(0));
                        //Console.WriteLine(ci.GetBackward(1));
                        //Console.WriteLine(ci.GetBackward(2));
                        //Console.WriteLine(ci.GetBackward(3));
                        //Console.WriteLine(ci.GetBackward(4));
                        //Console.WriteLine(ci.GetBackward(5));
                        //Console.WriteLine(ci.GetBackward(6));

                        Secp256k1KeyPair <Sha256Hash> secp256k1KeyPair = new Secp256k1KeyPair <Sha256Hash>(true);

                        Sha256Ripemd160Hash address = new Sha256Ripemd160Hash(secp256k1KeyPair.pubKey.pubKey);

                        TransactionInput ti1 = new TransactionInput();
                        ti1.LoadVersion1(0, 0, 0);

                        TransactionOutput to1 = new TransactionOutput();
                        to1.LoadVersion0(address, new Creacoin(50m));

                        CoinbaseTransaction ct1 = new CoinbaseTransaction();
                        ct1.LoadVersion0(new TransactionOutput[] { to1 });

                        byte[] ctBytes1 = ct1.ToBinary();

                        CoinbaseTransaction ct2 = SHAREDDATA.FromBinary <CoinbaseTransaction>(ctBytes1);

                        TransferTransaction tt1 = new TransferTransaction();
                        tt1.LoadVersion1(new TransactionInput[] { ti1 }, new TransactionOutput[] { to1 });
                        tt1.Sign(new TransactionOutput[] { to1 }, new DSAPRIVKEYBASE[] { secp256k1KeyPair.privKey });

                        byte[] ttBytes1 = tt1.ToBinary();

                        TransferTransaction tt2 = SHAREDDATA.FromBinary <TransferTransaction>(ttBytes1);

                        ResTransactions rt1 = new ResTransactions(new Transaction[] { ct1, tt1 });

                        byte[] rtBytes1 = rt1.ToBinary();

                        ResTransactions rt2 = SHAREDDATA.FromBinary <ResTransactions>(rtBytes1);


                        byte[] test1 = SHAREDDATA.ToBinary <Transaction>(ct2);

                        CoinbaseTransaction ct3 = SHAREDDATA.FromBinary <Transaction>(test1) as CoinbaseTransaction;

                        byte[] test2 = SHAREDDATA.ToBinary <Transaction>(tt2);

                        TransferTransaction tt3 = SHAREDDATA.FromBinary <Transaction>(test2) as TransferTransaction;

                        //string pathBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

                        //New.BlockManagerDB bmdb = new New.BlockManagerDB(pathBase);
                        //New.BlockDB blkdb = new New.BlockDB(pathBase);
                        //New.BlockFilePointersDB bfpdb = new New.BlockFilePointersDB(pathBase);

                        //New.BlockManager bm = new New.BlockManager(bmdb, blkdb, bfpdb);

                        //New.TestBlock block1 = new New.TestBlock(1);

                        //bm.AddMainBlock(block1);
                        //bm.AddMainBlock(block1);


                        //Test10NodesInv();

                        //TestDHT();

                        //bool isFirst = true;
                        //int portNumber = 0;
                        //CreaNode cnlt = null;
                        //tb.KeyDown += (sender2, e2) =>
                        //{
                        //    if (e2.Key != Key.Enter)
                        //        return;

                        //    if (isFirst)
                        //    {
                        //        portNumber = int.Parse(tb.Text);

                        //        FirstNodeInfosDatabase fnidb = new FirstNodeInfosDatabase(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));

                        //        cnlt = new CreaNode((ushort)portNumber, 0, "test", fnidb);
                        //        cnlt.Start();

                        //        cnlt.ReceivedNewChat += (sender3, e3) =>
                        //        {
                        //            this.ConsoleWriteLine(e3.Message);
                        //        };

                        //        isFirst = false;

                        //        return;
                        //    }

                        //    Chat chat = new Chat();
                        //    chat.LoadVersion0(portNumber.ToString(), tb.Text);
                        //    chat.Sign(secp256k1KeyPair.privKey);

                        //    cnlt.DiffuseNewChat(chat);
                        //};
                    });
                };

                Closed += (sender, e) =>
                {
                    _logger.LogAdded -= _LoggerLogAdded;

                    string fileText = string.Empty;
                    foreach (var child in sp1.Children)
                    {
                        fileText += (child as TextBlock).Text + Environment.NewLine;
                    }

                    File.AppendAllText(Path.Combine(new FileInfo(Assembly.GetEntryAssembly().Location).DirectoryName, "LogTest.txt"), fileText);
                };
            }
Example #4
0
 public TestApplication(Program.Logger _logger)
 {
     logger = _logger;
 }