update code
This commit is contained in:
		
							
								
								
									
										832
									
								
								Source/HTML/monitor.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										832
									
								
								Source/HTML/monitor.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,832 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <title>Monitor</title>
 | 
			
		||||
    <meta charset='utf-8' />
 | 
			
		||||
 | 
			
		||||
    <link rel="shortcut icon" href="/HTML/PIC/monitor.png" type="image/png">
 | 
			
		||||
    <link rel="stylesheet" type="text/css" href="../HTML/CSS/style.css">
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    window.RUN_CLIENT=1;
 | 
			
		||||
    window.RUN_SERVER=0;
 | 
			
		||||
    if(typeof global === 'object')
 | 
			
		||||
    {
 | 
			
		||||
        global.RUN_CLIENT=1;
 | 
			
		||||
        global.RUN_SERVER=0;
 | 
			
		||||
    }
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript" src="/HTML/JS/coinlib.js"></script>
 | 
			
		||||
<script type="text/javascript" src="../HTML/JS/client.js"></script>
 | 
			
		||||
<script type="text/javascript" src="../HTML/JS/diagram.js"></script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
 | 
			
		||||
    var bPause;
 | 
			
		||||
    var sessionid;
 | 
			
		||||
    var StatMode;
 | 
			
		||||
 | 
			
		||||
    function SetNewSession(cursessionid)
 | 
			
		||||
    {
 | 
			
		||||
        sessionid=cursessionid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //DIALOG
 | 
			
		||||
    //DIALOG
 | 
			
		||||
    //DIALOG
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function SetPause(SetMode)
 | 
			
		||||
    {
 | 
			
		||||
        if(SetMode===undefined)
 | 
			
		||||
        {
 | 
			
		||||
            bPause=!bPause;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            bPause=SetMode;
 | 
			
		||||
        }
 | 
			
		||||
        var item = document.getElementById("idRun");
 | 
			
		||||
        if(bPause)
 | 
			
		||||
            item.value="Continue view";
 | 
			
		||||
        else
 | 
			
		||||
            item.value="Pause view";
 | 
			
		||||
    }
 | 
			
		||||
    function SetStatMode()
 | 
			
		||||
    {
 | 
			
		||||
        if(!StatMode)
 | 
			
		||||
            StatMode=0;
 | 
			
		||||
        StatMode=(StatMode+1)%2;
 | 
			
		||||
        GetData("SetStatMode",StatMode,function (Data)
 | 
			
		||||
        {
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    function ClearStat()
 | 
			
		||||
    {
 | 
			
		||||
        GetData("ClearStat",{},function (Data)
 | 
			
		||||
        {
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    function SetStatInfo(Data)
 | 
			
		||||
    {
 | 
			
		||||
        var item = document.getElementById("idStatInfo");
 | 
			
		||||
        var button = document.getElementById("idStatButton");
 | 
			
		||||
        StatMode=Data.STAT_MODE;
 | 
			
		||||
        if(StatMode)
 | 
			
		||||
        {
 | 
			
		||||
            item.innerText=" =Stat ON=";
 | 
			
		||||
            button.value="Stop stat"
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            item.innerText=" =Stat OFF=";
 | 
			
		||||
            button.value="Start stat"
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //CHARTS
 | 
			
		||||
    //CHARTS
 | 
			
		||||
    //CHARTS
 | 
			
		||||
 | 
			
		||||
    var DiagramArr=[];
 | 
			
		||||
    var DiagramArrR=
 | 
			
		||||
        [
 | 
			
		||||
            {isLine:true,text:"SYSTEM"},
 | 
			
		||||
            {name:"TIME_IDLE",text:"HEALTH TIME, %",value:0,red:"#24aa47"},
 | 
			
		||||
            {name:"MAX:CPU_SYS_MODE",text:"CPU USER SYS, мс",value:0,red:"#06A"},
 | 
			
		||||
            {name:"MAX:CPU",text:"CPU ALL WORK, ms",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"MAX:CPU_USER_MODE",text:"USER MODE, мс",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"MAX:CPU_IDLE_MODE",text:"USER IDLE, мс",value:0,red:"#0A6"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:MEMORY_USAGE",text:"Mem usage, Mbyte",value:300},
 | 
			
		||||
            {name:"MAX:MEMORY_FREE",text:"Mem free, Mbyte",value:0,red:"#a1c3b9"},
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:POWER-HASH**",text:"Hash Rate, Mh/s",value:0,red:"#95d6b9"},
 | 
			
		||||
            {name:"HASHRATE",text:"Hash Rate, Mh/s",value:0,red:"#95d6b9"},
 | 
			
		||||
            {name:"MAX:POWER",text:"MAX:POWER",value:0,red:"#95d6b9"},
 | 
			
		||||
            {name:"POWER_MY_WIN",text:"POWER MY WIN",value:0,red:"#088a4a"},
 | 
			
		||||
            {name:"POWER_BLOCKCHAIN",text:"POWER Blockchain",value:0,red:"#2b6311"},
 | 
			
		||||
 | 
			
		||||
            {isLine:true,text:"NETWORK"},
 | 
			
		||||
 | 
			
		||||
            {name:"GETDATA(KB)",text:"Packets receive, Kbyte",value:0,red:"#3b8a7f"},
 | 
			
		||||
            {name:"SENDDATA(KB)",text:"Packets send, Kbyte",value:0,red:"#2b1e8a"},
 | 
			
		||||
            {name:"WRITECHAIN_TO_DB_COUNT",text:"Loaded blocks, count",value:0},
 | 
			
		||||
            {name:"MAX:TRANSACTION_COUNT",text:"Count transactions in block",value:0,red:"#2d628a"},
 | 
			
		||||
 | 
			
		||||
            {isLine:true,text:"HEALTH"},
 | 
			
		||||
 | 
			
		||||
            {name:"ERRORS",text:"ERRORS",value:0,red:"#A00"},
 | 
			
		||||
            {name:"MAX:LOADEDCHAINLIST",text:"Loaded chains, count",value:0,red:"#95d6b9"},
 | 
			
		||||
 | 
			
		||||
            {isLine:true,text:"NODES"},
 | 
			
		||||
            {name:"MAX:BUSY_LEVEL",text:"BUSY_LEVEL",value:0,red:"#ff353b"},
 | 
			
		||||
            {name:"STOP_METHOD",text:"STOP_METHOD",value:0,red:"#8a3d74"},
 | 
			
		||||
            {name:"AddToBan",text:"AddToBan",value:0,red:"#8a3d74"},
 | 
			
		||||
            {name:"TRANSFER_TIME_OUT",text:"TRANSFER TIME OUT, count",value:0,red:"#ff353b"},
 | 
			
		||||
            {name:"NETCONFIGURATION",text:"NETCONFIGURATION",value:0,red:"#8a5663"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:ALL_NODES",text:"All nodes count",value:0,red:"#83a3d6"},
 | 
			
		||||
            {name:"MAX:CONNECTED_NODES",text:"Connected nodes count",value:0,red:"#516e80"},
 | 
			
		||||
            {name:"MAX:HASH_OK",text:"Block chain Hash = OK",value:0,red:"#2b6311"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:HOT_NODES",text:"TRANSFER nodes, count",value:0,red:"#063c8a"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:MEDIAN_GLOB_TIME",text:"MEDIAN_GLOB_TIME",value:0,red:"#5e729b",zero:100},
 | 
			
		||||
            {name:"MAX:DISP_MEDIAN_GLOB_TIME",text:"DISP_MEDIAN_GLOB_TIME 90%",value:0,red:"#4a809b"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"MAX:HOT_OK",text:"TRANSFER Accounts Hash - OK",value:0,red:"#2b6311"},
 | 
			
		||||
//            {name:"MAX:HOT_COUNT_LEVELS",text:"TRANSFER Avg Levels count",value:0,red:"#39638a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"MAX:DELTA_TIME_ACTUAL",text:"Avg delta time (to all)",value:0,red:"#51448a"},
 | 
			
		||||
//            {name:"MAX:DELTA_TIME_HOT",text:"Avg delta time (TRANSFER)",value:0,red:"#313f8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    var DiagramArrD=
 | 
			
		||||
        [
 | 
			
		||||
            {isLine:true,text:"Блоки"},
 | 
			
		||||
//            {name:"ROWS_WRITE-TX",text:"ROWS_WRITE-TX",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"ROWS_WRITE_MS-TX",text:"ROWS_WRITE_MS-TX",value:0,red:"#ffb417"},
 | 
			
		||||
            {name:"MAX:DELTA_TX",text:"MAX:DELTA_TX",value:0,red:"#ff4534"},
 | 
			
		||||
 | 
			
		||||
//            {name:"COUNT_BLOCK_TX-TX",text:"COUNT_BLOCK_TX-TX",value:0,red:"#69c2ff"},
 | 
			
		||||
//            {name:"ONWRITEBLOCKFINISH_MS-TX",text:"ONWRITEBLOCKFINISH_MS-TX",value:0,red:"#7081ff"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"BLOCKPROCESS_1-TX",text:"BLOCKPROCESS_1-TX, ms",value:0,red:"#cd72ff"},
 | 
			
		||||
//            {name:"BLOCKPROCESS_2-TX",text:"BLOCKPROCESS_2-TX, ms",value:0,red:"#cd72ff"},
 | 
			
		||||
//            {name:"BLOCKPROCESS_3-TX",text:"BLOCKPROCESS_3-TX, ms",value:0,red:"#cd72ff"},
 | 
			
		||||
//            {name:"BLOCKPROCESS_4-TX",text:"BLOCKPROCESS_4-TX, ms",value:0,red:"#cd72ff"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:TRANSACTION_COUNT",text:"Число транзакций в блоке (макс)",value:0,red:"#02A"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:LOADEDCHAINLIST",text:"Load chains, count",value:0,red:"#95d6b9"},
 | 
			
		||||
 | 
			
		||||
            {name:"TRANSFER_TIME_OUT",text:"TRANSFER TIME OUT, count",value:0,red:"#ff353b"},
 | 
			
		||||
 | 
			
		||||
        {isLine:true,text:"SYSTEM"},
 | 
			
		||||
 | 
			
		||||
            {name:"TIME_IDLE",text:"HEALTH TIME, %",value:0,red:"#24aa47"},
 | 
			
		||||
            {name:"MAX:CPU_SYS_MODE",text:"CPU USER SYS, мс",value:0,red:"#06A"},
 | 
			
		||||
            {name:"MAX:CPU",text:"CPU WORK, мс",value:0,red:"#06A"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:MEMORY_USAGE",text:"Используемая память, Mb",value:300},
 | 
			
		||||
            {name:"MAX:MEMORY_FREE",text:"Mem free, Mbyte",value:0,red:"#a1c3b9"},
 | 
			
		||||
            //            {name:"MAX:CPU_USER_MODE",text:"USER MODE, мс",value:0,red:"#06A"},
 | 
			
		||||
            //            {name:"MAX:CPU_SYS_MODE",text:"USER SYS, мс",value:0,red:"#06A"},
 | 
			
		||||
            //            {name:"MAX:CPU_IDLE_MODE",text:"USER IDLE, мс",value:0,red:"#0A6"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:POWER-HASH**",text:"Hash Rate, Mh/s",value:0,red:"#95d6b9"},
 | 
			
		||||
            {name:"HASHRATE",text:"Hash Rate,Mh/s",value:0,red:"#95d6b9"},
 | 
			
		||||
            //            {name:"MINING-COUNT",text:"MINING-COUNT",value:0,red:"#95d6b9"},
 | 
			
		||||
            {name:"MAX:POWER",text:"MAX:POWER",value:0,red:"#597e6e"},
 | 
			
		||||
 | 
			
		||||
            //{name:"POWER_MY_WIN",text:"POWER MY WIN",value:0,red:"#088a4a"},
 | 
			
		||||
            {name:"POWER_BLOCKCHAIN",text:"POWER Blockchain",value:0,red:"#2b6311"},
 | 
			
		||||
 | 
			
		||||
//            {name:"TIME_USE_PACKET",text:"Время выполнения пакета, мс",value:100},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:MEDIAN_GLOB_TIME",text:"MEDIAN_GLOB_TIME",value:0,red:"#5e729b",zero:100},
 | 
			
		||||
            {name:"MAX:DISP_MEDIAN_GLOB_TIME",text:"DISP_MEDIAN_GLOB_TIME 90%",value:0,red:"#4a809b"},
 | 
			
		||||
 | 
			
		||||
//            {name:"MAX:DELTA_GLOB_TIME",text:"DELTA_GLOB_TIME",value:0,red:"#8b7a9b",zero:100},
 | 
			
		||||
//            {name:"MAX:DISP_DELTA_GLOB_TIME",text:"DISP_DELTA_GLOB_TIME",value:0,red:"#9b747f"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"CORRECT_TIME_UP",text:"CORRECT_TIME_UP",value:0,red:"#449b7e"},
 | 
			
		||||
//            {name:"CORRECT_TIME_DOWN",text:"CORRECT_TIME_DOWN",value:0,red:"#9b8a3a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"MAX:TIME_DELTA",text:"TIME_DELTA",value:0,red:"#4d989b",line:1},
 | 
			
		||||
 | 
			
		||||
//            {name:"MAX:BUSY_LEVEL",text:"BUSY_LEVEL",value:0,red:"#ff353b"},
 | 
			
		||||
//            {name:"STOP_METHOD",text:"STOP_METHOD",value:0,red:"#8a3c40"},
 | 
			
		||||
 | 
			
		||||
            {name:"AddToBan",text:"AddToBan",value:0,red:"#8a3d74"},
 | 
			
		||||
//            {name:"TRANSFER_TIME_OUT",text:"TRANSFER TIME OUT, count",value:0,red:"#ff353b"},
 | 
			
		||||
            {name:"NETCONFIGURATION",text:"NETCONFIGURATION",value:0,red:"#8a5663"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"SEND:ADDLEVELCONNECT",text:"SEND:ADDLEVELCONNECT",value:0,red:"#8a5663"},
 | 
			
		||||
//            {name:"GET:ADDLEVELCONNECT",text:"GET:ADDLEVELCONNECT",value:0,red:"#8a5663"},
 | 
			
		||||
////            {name:"NETCONFIGURATION",text:"NETCONFIGURATION",value:0,red:"#8a5663"},
 | 
			
		||||
////            {name:"NETCONFIGURATION",text:"NETCONFIGURATION",value:0,red:"#8a5663"},
 | 
			
		||||
//
 | 
			
		||||
//            {name:"AddLevelConnect",text:"AddLevelConnect",value:0,red:"#755d8a"},
 | 
			
		||||
//            {name:"DisconnectChild",text:"DisconnectChild",value:0,red:"#755d8a"},
 | 
			
		||||
//            {name:"DeleteLevelConnect",text:"DeleteLevelConnect",value:0,red:"#755d8a"},
 | 
			
		||||
////            {name:"PONG-NotHot",text:"PONG-NotHot",value:0,red:"#755d8a"},
 | 
			
		||||
//
 | 
			
		||||
////            {name:"DISCONNECTHOT",text:"DISCONNECTHOT",value:0,red:"#755d8a"},
 | 
			
		||||
//            {name:"StartCheckConnect",text:"StartCheckConnect",value:0,red:"#755d8a"},
 | 
			
		||||
//
 | 
			
		||||
//        {name:"ClientConnected",text:"ClientConnected",value:0,red:"#755d8a"},
 | 
			
		||||
//        {name:"ClientEnd",text:"ClientEnd",value:0,red:"#755d8a"},
 | 
			
		||||
//        {name:"ClientClose",text:"ClientClose",value:0,red:"#755d8a"},
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {isLine:true,text:"Ноды"},
 | 
			
		||||
            {name:"MAX:CLUSTER_NODE",text:"=RUNNING=",value:0,red:"#83a3d6"},
 | 
			
		||||
            {name:"MAX:CLUSTER_NODE_HASH",text:"=RUNNING OK HASH=",value:0,red:"#658a61"},
 | 
			
		||||
//            {name:"MAX:CLUSTER_NODE_ACC_HASH",text:"=RUNNING ACCOUNT HASH=",value:0,red:"#658a61"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:COUNT_EQ_ADDR",text:"COUNT_EQ_ADDR",value:0,red:"#8a5663"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:ALL_NODES",text:"All nodes count",value:0,red:"#83a3d6"},
 | 
			
		||||
            {name:"MAX:CONNECTED_NODES",text:"Connected nodes count",value:0,red:"#516e80"},
 | 
			
		||||
//            {name:"MAX:AUTOCORRECT",text:"MAX:AUTOCORRECT",value:0,red:"#06A"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:MIN_VERSION",text:"MAX:MIN_VERSION",value:0,red:"#99eeff"},
 | 
			
		||||
            {name:"MAX:HASH_OK",text:"Block chain Hash = OK",value:0,red:"#2b6311"},
 | 
			
		||||
            {name:"MAX:CHECK_POINT_OK",text:"Check point = OK",value:0,red:"#356361"},
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:ACTUAL_OK",text:"Accounts Hash - OK",value:0,red:"#658a61"},
 | 
			
		||||
            {name:"MAX:COUNTLH",text:"Nodes in Load History mode",value:0,red:"#83a3d6"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {name:"MAX:HOT_NODES",text:"TRANSFER nodes, count",value:0,red:"#063c8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:HOT_OK",text:"TRANSFER Accounts Hash - OK",value:0,red:"#2b6311"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:HOT_COUNT_LEVELS",text:"TRANSFER Avg Levels count",value:0,red:"#39638a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"MAX:DELTA_TIME_ACTUAL",text:"Avg delta time (to all)",value:0,red:"#51448a"},
 | 
			
		||||
            //{name:"MAX:DELTA_TIME_HOT",text:"Avg delta time (TRANSFER)",value:0,red:"#313f8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //{name:"GET:TRANSFER",text:"GET:TRANSFER",value:0,red:"#3b5d8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        {isLine:true,text:"NETWORK"},
 | 
			
		||||
 | 
			
		||||
        {name:"GETDATA(KB)",text:"Packets receive, Kbyte",value:0,red:"#3b8a7f"},
 | 
			
		||||
        {name:"SENDDATA(KB)",text:"Packets send, Kbyte",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {isLine:true,text:"Пакеты полученные"},
 | 
			
		||||
            //{name:"TEST_PACKET",text:"TEST_PACKET",value:0,red:"#2b1e8a"},
 | 
			
		||||
            //{name:"GETDATA(KB)",text:"Получено, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
//            {name:"LOADFRAGMENT",text:"Получено фрагментов",value:0,red:"#20728a"},
 | 
			
		||||
//            {name:"LOADPACKET",text:"Получено пакетов",value:0,red:"#7f448a"},
 | 
			
		||||
            {name:"USEPACKET",text:"Исполнено пакетов",value:0,red:"#7f448a"},
 | 
			
		||||
            //{name:"MAX:BUFFE_LOAD_SIZE",text:"Буфер загрузки, кб",value:0,red:"#7f448a"},
 | 
			
		||||
 | 
			
		||||
//            {name:"SKIPFRAGMENTUSE",text:"SKIPFRAGMENTUSE",value:0},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"TIME_USE_PACKET",text:"Время выполнения пакетов, мс",value:100},
 | 
			
		||||
            {name:"MAX:TIMEDOGETDATA",text:"MAX:Время получения пакета, мс",value:100},
 | 
			
		||||
            {name:"MAX:TIME_USE_PACKET",text:"MAX:Время выполнения пакета, мс",value:100},
 | 
			
		||||
 | 
			
		||||
            //{name:"TRANSFER",text:"Обработка пакета TRANSFER, мс",value:90},
 | 
			
		||||
            //{name:"MAX:TimeDoGetData",text:"Макс время обработки полученного пакета, мс",value:25},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            {name:"ERRORS",text:"ERRORS",value:0,red:"#A00"},
 | 
			
		||||
           // {name:"SEND_ERROR",text:"Ожидание статуса сокета",value:0,red:"#500"},
 | 
			
		||||
 | 
			
		||||
//        {isLine:true,text:"Пакеты отправленные"},
 | 
			
		||||
//        {name:"SENDDATA(KB)",text:"Отправлено, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
        //          {name:"SEND_TRAFFIC_FREE",text:"SEND_TRAFFIC_FREE",value:0,red:"#2b1e8a"},
 | 
			
		||||
//            {name:"SEND_DATA_HARD",text:"Отправлено Hard, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//            {name:"SEND_DATA_LIGHT",text:"Отправлено Light, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //{name:"RECALCSENDSTATICTIC",text:"RECALCSENDSTATICTIC",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30000",text:"NODE_TRAFFIC_LIMIT:30000, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30001",text:"NODE_TRAFFIC_LIMIT:30001, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_BUF_WRITE:30000",text:"MAX:NODE_BUF_WRITE:30000, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_SEND_BUF_PACKET_COUNT:30000",text:"MAX:NODE_SEND_BUF_PACKET_COUNT:30000",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30000",text:"LIMIT:30000, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30001",text:"LIMIT:30001, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30006",text:"LIMIT:30006, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_TRAFFIC_LIMIT:30007",text:"LIMIT:30007, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//        {name:"MAX:NODE_SEND_BUF_PACKET_COUNT:30006",text:"MAX:NODE_SEND_BUF_PACKET_COUNT:30006",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"MAX:NODE_BUF_WRITE:30006",text:"MAX:NODE_BUF_WRITE:30006, кбайт",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"SENDFRAGMENT_H",text:"Отправлено H-фрагментов, кбайт",value:0,red:"#20728a"},
 | 
			
		||||
//            {name:"SENDFRAGMENT_L",text:"Отправлено L-фрагментов, кбайт",value:0,red:"#20728a"},
 | 
			
		||||
//            {name:"FRAGMENT_LOST",text:"Потерянные фрагменты",value:0},
 | 
			
		||||
//            {name:"FRAGMENT_OVERFLOW",text:"Переполнение массива отправленных фрагментов",value:0},
 | 
			
		||||
//            {name:"SKIPFRAGMENTSEND",text:"SKIPFRAGMENTSEND",value:0},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
//        {isLine:true,text:"Headers"},
 | 
			
		||||
//        {name:"SEND:GETBLOCKHEADER:30001",text:"SEND:GETBLOCKHEADER:30001",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"GET:RETBLOCKHEADER:30001",text:"GET:RETBLOCKHEADER:30001",value:0,red:"#658a61"},
 | 
			
		||||
//        {name:"SEND:GETBLOCKHEADER:30002",text:"SEND:GETBLOCKHEADER:30002",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"GET:RETBLOCKHEADER:30002",text:"GET:RETBLOCKHEADER:30002",value:0,red:"#658a61"},
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//        {isLine:true,text:"Blocks"},
 | 
			
		||||
//        {name:"SEND:GETBLOCK:30001",text:"SEND:GETBLOCK:30001",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"GET:RETGETBLOCK:30001",text:"GET:RETGETBLOCK:30001",value:0,red:"#658a61"},
 | 
			
		||||
//        {name:"SEND:GETBLOCK:30002",text:"SEND:GETBLOCK:30002",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"GET:RETGETBLOCK:30002",text:"GET:RETGETBLOCK:30002",value:0,red:"#658a61"},
 | 
			
		||||
//        {name:"SEND:GETBLOCK:30003",text:"SEND:GETBLOCK:30003",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"GET:RETGETBLOCK:30003",text:"GET:RETGETBLOCK:30003",value:0,red:"#658a61"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//        {name:"MAX:HIGHT",text:"MAX:HIGHT",value:0,red:"#83a3d6"},
 | 
			
		||||
 | 
			
		||||
//        {name:"NODE_CAN_GET:30000",text:"NODE_CAN_GET: 30000",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"NODE_CAN_GET:30001",text:"NODE_CAN_GET: 30001",value:0,red:"#2b1e8a"},
 | 
			
		||||
//        {name:"NODE_CAN_GET:30006",text:"NODE_CAN_GET: 30006",value:0,red:"#2b1e8a"},
 | 
			
		||||
 | 
			
		||||
            //{name:"BLOCK_SEND",text:"Отдано блоков (план)",value:0,red:"#bea96d"},
 | 
			
		||||
//            {name:"SEND:RETGETBLOCK",text:"Отдано блоков (факт)",value:0,red:"#bea96d"},
 | 
			
		||||
            //{name:"DELETE_OLD_PACKET",text:"Удалено устаревших пакетов",value:0,red:"#bea96d"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//            {name:"BLOCK_SEND_MEM",text:"Отдано блоков из памяти",value:0,red:"#e6e349"},
 | 
			
		||||
 | 
			
		||||
//            {name:"DO_GETNEXTNODE-1",text:"DO_GETNEXTNODE-1",value:0,red:"#bea96d"},
 | 
			
		||||
//            {name:"DO_GETNEXTNODE-2",text:"DO_GETNEXTNODE-2",value:0,red:"#bea96d"},
 | 
			
		||||
//            {name:"SEND:GETBLOCK",text:"Запрошено блоков",value:0,red:"#bea96d"},
 | 
			
		||||
//
 | 
			
		||||
//            {name:"BLOCK_LOADED",text:"Получено блоков",value:0,red:"#95d6b9"},
 | 
			
		||||
//            {name:"DOUBLE_RETGETBLOCK",text:"Получено блоков повторно",value:0,red:"#e6e349"},
 | 
			
		||||
 | 
			
		||||
 //           {name:"WRITECHAIN_TO_DB_COUNT",text:"Загруженные цепочки блоков",value:0},
 | 
			
		||||
//            {name:"WRITECHAIN_TO_DB_TIME",text:"Время записи цепочек, ms",value:0},
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
////            {name:"WRITECHAIN_TO_DB_TIME",text:"Время обработки цепочки блоков, мс",value:90},
 | 
			
		||||
//            {name:"WriteBlockDB",text:"Время записи блоков на диск, мс",value:50},
 | 
			
		||||
//            {name:"MAX:WriteBlockDB",text:"Макс время записи блока на диск, мс",value:50},
 | 
			
		||||
//            {name:"BlockToMemBuf",text:"Время BlockToMemBuf, мс",value:25},
 | 
			
		||||
//            {name:"IsValidTransaction",text:"Время IsValidTransaction, мс",value:25},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 //           {name:"MAX:TimeDoGetData:RETBLOCKHEADER",text:"MAX:TimeDoGetData:RETBLOCKHEADER, мс",value:25},
 | 
			
		||||
 //           {name:"MAX:TimeDoGetData:RETGETBLOCK",text:"MAX:TimeDoGetData:RETGETBLOCK, мс",value:25},
 | 
			
		||||
//            {name:"MAX:TimeDoGetData:TRANSFER",text:"MAX:TimeDoGetData:TRANSFER, мс",value:25},
 | 
			
		||||
            //{name:"MAX:TimeDoGetData:GETBLOCK",text:"MAX:TimeDoGetData:GETBLOCK, мс",value:25},
 | 
			
		||||
 | 
			
		||||
//            {isLine:true,text:"Ключи (индексы)"},
 | 
			
		||||
//            {name:"MAX:CountForFlush",text:"Незаписанные на диск ключи, шт",value:1000},
 | 
			
		||||
//            {name:"MAX:TimeFlush",text:"Макс время записи ключа на диск, мс",value:11},
 | 
			
		||||
//            {name:"MAX:DOUBLE_FIND_KEY",text:"Коллизии хеш функции",value:32},
 | 
			
		||||
//            {name:"SCAN_ROW_KEY",text:"Перебор строк ключей",value:30000},
 | 
			
		||||
//            {name:"SCAN_BODY",text:"Чтение строк содержимого хешей",value:10},
 | 
			
		||||
//            {name:"TimeKeyMove",text:"Время переноса ключей на следующий уровень, мс",value:50},
 | 
			
		||||
//            {name:"MAX:TimeKeyMove",text:"Макс время переноса ключей на следующий уровень, мс",value:10},
 | 
			
		||||
//            {isLine:true,text:"Операции над ключами"},
 | 
			
		||||
//            {name:"OPERATION_KEY_DB_FIND",text:"FIND",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"OPERATION_KEY_DB_MOVEKEY",text:"MOVEKEY",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"OPERATION_KEY_DB_WRITE",text:"WRITE",value:0,red:"#06A"},
 | 
			
		||||
//            {name:"OPERATION_KEY_DB_DELETE",text:"DELETE",value:0,red:"#06A"},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        ];
 | 
			
		||||
    var IsDevelopAccount=0;
 | 
			
		||||
    function InitDiagram()
 | 
			
		||||
    {
 | 
			
		||||
        var ArrSystem;
 | 
			
		||||
        if(IsDevelopAccount)
 | 
			
		||||
        {
 | 
			
		||||
            ArrSystem=DiagramArrD;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            ArrSystem=DiagramArrR;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var StrArr=localStorage["DiagramArr"];
 | 
			
		||||
        if(StrArr && StrArr!=="undefined")
 | 
			
		||||
        {
 | 
			
		||||
            DiagramArr=JSON.parse(StrArr);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            DiagramArr=[].concat(JSON.parse(JSON.stringify(ArrSystem)));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        DiagramArr.push(ExternDiagramItem);
 | 
			
		||||
        DiagramMap[ExternDiagramItem.name]=ExternDiagramItem;
 | 
			
		||||
        DiagramMapId[ExternDiagramItem.id]=ExternDiagramItem;
 | 
			
		||||
        InitDiagramByArr(DiagramArr,1100);
 | 
			
		||||
 | 
			
		||||
        localStorage["ExternSetDiagramArr"]="";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function DeleteDiagram(id)
 | 
			
		||||
    {
 | 
			
		||||
        var Item=DiagramMapId[id];
 | 
			
		||||
        if(Item)
 | 
			
		||||
        {
 | 
			
		||||
            var element2=document.getElementById("B"+id);
 | 
			
		||||
            element2.innerHTML="";
 | 
			
		||||
 | 
			
		||||
            Item.Delete=1;
 | 
			
		||||
            localStorage["DiagramArr"]=JSON.stringify(DiagramArr);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function AddDiagram()
 | 
			
		||||
    {
 | 
			
		||||
        var Name=document.getElementById("idNameDiagram").value.trim();
 | 
			
		||||
        var Item={name:Name,text:Name,value:0,red:"#5681b6"};
 | 
			
		||||
        if(Name.substr(0,1)==="-")
 | 
			
		||||
        {
 | 
			
		||||
            Item.text=Name.substr(1);
 | 
			
		||||
            Item.isLine=1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        AddDiagramToArr(DiagramArr,Item);
 | 
			
		||||
        SetHTMLDiagramItem(Item,1100);
 | 
			
		||||
 | 
			
		||||
        localStorage["DiagramArr"]=JSON.stringify(DiagramArr);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function ResetDiagrams()
 | 
			
		||||
    {
 | 
			
		||||
        var diargams = document.getElementById("diargams");
 | 
			
		||||
        diargams.innerHTML="";
 | 
			
		||||
 | 
			
		||||
        localStorage["DiagramArr"]="";
 | 
			
		||||
        InitDiagram();
 | 
			
		||||
    }
 | 
			
		||||
    function ClearDiagrams()
 | 
			
		||||
    {
 | 
			
		||||
        var diargams = document.getElementById("diargams");
 | 
			
		||||
        diargams.innerHTML="";
 | 
			
		||||
 | 
			
		||||
        localStorage["DiagramArr"]="[]";
 | 
			
		||||
        InitDiagram();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function GetDiagram()
 | 
			
		||||
    {
 | 
			
		||||
        var arrNames=[];
 | 
			
		||||
        for(var i=0;i<DiagramArr.length;i++)
 | 
			
		||||
        {
 | 
			
		||||
            var Str;
 | 
			
		||||
            var Item=DiagramArr[i];
 | 
			
		||||
            if(!Item.isLine)
 | 
			
		||||
            {
 | 
			
		||||
                arrNames.push(Item.name);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        GetData("GetArrStats",arrNames,function (Data)
 | 
			
		||||
        {
 | 
			
		||||
            if(!Data || !Data.result)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            SetStatInfo(Data);
 | 
			
		||||
 | 
			
		||||
            var arr=Data.arr;
 | 
			
		||||
            for(var i=0;i<arr.length;i++)
 | 
			
		||||
            {
 | 
			
		||||
                var ItemServer=arr[i];
 | 
			
		||||
                var ItemClient=DiagramMap[ItemServer.name];
 | 
			
		||||
                if(!ItemClient || ItemClient.Extern)
 | 
			
		||||
                    continue;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                ItemClient.arr=ItemServer.arr;
 | 
			
		||||
                ItemClient.AvgValue=ItemServer.AvgValue;
 | 
			
		||||
                ItemClient.steptime=ItemServer.steptime;
 | 
			
		||||
                //ItemClient.starttime=ItemServer.starttime;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                DrawDiagram(ItemClient);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    function ResizeArr222(arr)
 | 
			
		||||
    {
 | 
			
		||||
        var arr2=[];
 | 
			
		||||
        for(var i=0;i<arr.length/2;i++)
 | 
			
		||||
        {
 | 
			
		||||
            arr2[i]=Math.max(arr[i*2],arr[i*2+1]);
 | 
			
		||||
        }
 | 
			
		||||
        return arr2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //INIT
 | 
			
		||||
    function UpdateData()
 | 
			
		||||
    {
 | 
			
		||||
        if(bPause)
 | 
			
		||||
            return;
 | 
			
		||||
        GetDiagram();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function LoadValues()
 | 
			
		||||
    {
 | 
			
		||||
        if(!localStorage["WasSaveMonitor3"])
 | 
			
		||||
            return;
 | 
			
		||||
        document.getElementById("idBlockNum").value=localStorage["MonitoridBlockNum"];
 | 
			
		||||
        document.getElementById("idBlockCount").value=localStorage["MonitoridBlockCount"];
 | 
			
		||||
        document.getElementById("idMiner").value=localStorage["MonitoridMiner"];
 | 
			
		||||
        document.getElementById("idAdviser").value=localStorage["MonitoridAdviser"];
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    function SaveValues()
 | 
			
		||||
    {
 | 
			
		||||
        localStorage["WasSaveMonitor3"]=1;
 | 
			
		||||
        localStorage["MonitoridBlockNum"]=document.getElementById("idBlockNum").value;
 | 
			
		||||
        localStorage["MonitoridBlockCount"]=document.getElementById("idBlockCount").value;
 | 
			
		||||
        localStorage["MonitoridMiner"]=document.getElementById("idMiner").value;
 | 
			
		||||
        localStorage["MonitoridAdviser"]=document.getElementById("idAdviser").value;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    window.onload=function()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        SetPause(0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        GetData("GetWalletInfo",{}, function (Data)
 | 
			
		||||
        {
 | 
			
		||||
            if(Data && Data.result)
 | 
			
		||||
            {
 | 
			
		||||
                IsDevelopAccount=Data.IsDevelopAccount;
 | 
			
		||||
                InitDiagram();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        setInterval(function ()
 | 
			
		||||
        {
 | 
			
		||||
            if(localStorage["ExternSetDiagramArr"])
 | 
			
		||||
            {
 | 
			
		||||
                InitDiagram();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        },300);
 | 
			
		||||
 | 
			
		||||
        setInterval(UpdateData,900);
 | 
			
		||||
 | 
			
		||||
        //COMMON MOUSE MOVING
 | 
			
		||||
        window.onmousemove = function(event)
 | 
			
		||||
        {
 | 
			
		||||
            SetDiagramMouseX(event);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        window.onkeydown = function (e)
 | 
			
		||||
        {
 | 
			
		||||
            if(e.keyCode===27)
 | 
			
		||||
            {
 | 
			
		||||
                window.close();
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            if(e.keyCode===13)
 | 
			
		||||
            {
 | 
			
		||||
                GetBlockchainStat();
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        LoadValues();
 | 
			
		||||
 | 
			
		||||
        //document.body.className="univers "+localStorage["idSelStyle"];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    var ExternDiagramItem={name:"Blockchain Hash Rate MH/s",text:"-----",value:0,red:"#078a63",Extern:1,id:"idBlockchainStat"}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function GetBlockchainPrev()
 | 
			
		||||
    {
 | 
			
		||||
        var BlockNum=ParseNum(document.getElementById("idBlockNum").value);
 | 
			
		||||
        var Count=ParseNum(document.getElementById("idBlockCount").value);
 | 
			
		||||
        BlockNum-=Count;
 | 
			
		||||
        if(BlockNum<0)
 | 
			
		||||
            BlockNum=0;
 | 
			
		||||
        document.getElementById("idBlockNum").value=BlockNum;
 | 
			
		||||
 | 
			
		||||
        GetBlockchainStat();
 | 
			
		||||
    }
 | 
			
		||||
    function GetBlockchainEnd()
 | 
			
		||||
    {
 | 
			
		||||
        GetData("GetWalletInfo",{}, function (Data)
 | 
			
		||||
        {
 | 
			
		||||
            if(Data && Data.result)
 | 
			
		||||
            {
 | 
			
		||||
                document.getElementById("idBlockNum").value=Data.BlockNumDB;
 | 
			
		||||
                GetBlockchainPrev();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    function GetBlockchainNext()
 | 
			
		||||
    {
 | 
			
		||||
        var BlockNum=ParseNum(document.getElementById("idBlockNum").value);
 | 
			
		||||
        var Count=ParseNum(document.getElementById("idBlockCount").value);
 | 
			
		||||
        BlockNum+=Count;
 | 
			
		||||
        document.getElementById("idBlockNum").value=BlockNum;
 | 
			
		||||
 | 
			
		||||
        GetBlockchainStat();
 | 
			
		||||
    }
 | 
			
		||||
    function GetBlockchainStat()
 | 
			
		||||
    {
 | 
			
		||||
        SaveValues();
 | 
			
		||||
 | 
			
		||||
        var BlockNum=ParseNum(document.getElementById("idBlockNum").value);
 | 
			
		||||
        var Count=ParseNum(document.getElementById("idBlockCount").value);
 | 
			
		||||
        var Miner=ParseNum(document.getElementById("idMiner").value);
 | 
			
		||||
        var Adviser=ParseNum(document.getElementById("idAdviser").value);
 | 
			
		||||
        var bNonce=document.getElementById("idNonce").checked;
 | 
			
		||||
        var bMinerLess=document.getElementById("idMinerLess").checked;
 | 
			
		||||
 | 
			
		||||
        if(document.getElementById("idMiner").value==="")
 | 
			
		||||
            Miner=-1;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        GetData("GetBlockchainStat",{BlockNum:BlockNum,Count:Count,Miner:Miner,bMinerLess:bMinerLess,Adviser:Adviser,bNonce:bNonce}, function (Data)
 | 
			
		||||
        {
 | 
			
		||||
            if(Data && Data.result)
 | 
			
		||||
            {
 | 
			
		||||
                var BlockNum=ParseNum(document.getElementById("idBlockNum").value);
 | 
			
		||||
                var ItemClient=ExternDiagramItem;
 | 
			
		||||
                ItemClient.ArrList=Data.ArrList;
 | 
			
		||||
                ItemClient.AvgValue=Data.AvgValue;
 | 
			
		||||
                ItemClient.steptime=Data.steptime;
 | 
			
		||||
                ItemClient.startnumber=BlockNum;
 | 
			
		||||
 | 
			
		||||
                var bNonce=document.getElementById("idNonce").checked;
 | 
			
		||||
 | 
			
		||||
                if(bNonce)
 | 
			
		||||
                {
 | 
			
		||||
                    var arr=ItemClient.ArrList;
 | 
			
		||||
                    for(var i=0;i<arr.length;i++)
 | 
			
		||||
                    {
 | 
			
		||||
                        arr[i]=arr[i]/10000000;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                DrawDiagram(ItemClient);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style type="text/css">
 | 
			
		||||
    #idBtEnd
 | 
			
		||||
    {
 | 
			
		||||
        font-family: monospace;
 | 
			
		||||
    }
 | 
			
		||||
    .delete
 | 
			
		||||
    {
 | 
			
		||||
        margin: 2px;
 | 
			
		||||
        border: 0px;
 | 
			
		||||
        background: #FFF;
 | 
			
		||||
        color: #cffffa;
 | 
			
		||||
    }
 | 
			
		||||
    .delete:hover
 | 
			
		||||
    {
 | 
			
		||||
        margin: 2px;
 | 
			
		||||
        border: 1px solid #000;
 | 
			
		||||
        color:#000;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<style type="text/css">
 | 
			
		||||
    #topframe
 | 
			
		||||
    {
 | 
			
		||||
        z-index:1000;
 | 
			
		||||
        position:fixed;
 | 
			
		||||
        top:0px;
 | 
			
		||||
        left:0px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        width:600px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #idRun, #idStatButton
 | 
			
		||||
    {
 | 
			
		||||
        width:100px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
<DIV align='center'>
 | 
			
		||||
 | 
			
		||||
    <DIV id="topframe">
 | 
			
		||||
        <INPUT type="button" style="float:left" onclick="SetPause()" id="idRun">
 | 
			
		||||
        <INPUT type="button" style="float:left" onclick="ClearStat()" id="idClearStat" value="Clear stat">
 | 
			
		||||
        <INPUT type="button" style="float:left" onclick="SetStatMode()" id="idStatButton">
 | 
			
		||||
 | 
			
		||||
        <DIV align='left'><B id="idStatInfo"></B></DIV>
 | 
			
		||||
    </DIV>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <BR>
 | 
			
		||||
    <BR>
 | 
			
		||||
    <BR>
 | 
			
		||||
    <DIV style="text-align: center;">Blockchain Power</DIV>
 | 
			
		||||
    Adviser:<INPUT type="search" id="idAdviser" style="width:50px" >
 | 
			
		||||
    Miner:
 | 
			
		||||
    <=<INPUT type="checkbox" id="idMinerLess" style="margin:1px" >
 | 
			
		||||
    <INPUT type="search" id="idMiner" style="width:50px" value="">
 | 
			
		||||
    Nonce:<INPUT type="checkbox" id="idNonce" style="margin:1px" >
 | 
			
		||||
 | 
			
		||||
    Block start:<INPUT type="number" id="idBlockNum" style="width:80px" value="0"> length:<INPUT type="number" id="idBlockCount" style="width:80px" value="3600">
 | 
			
		||||
    <INPUT type="button" onclick="GetBlockchainPrev()" value="Prev">
 | 
			
		||||
    <INPUT type="button" onclick="GetBlockchainNext()" value="Next">
 | 
			
		||||
    <INPUT type="button" onclick="GetBlockchainEnd()" id="idBtEnd" value="->|">
 | 
			
		||||
    <INPUT type="button" onclick="GetBlockchainStat()" value="Update">
 | 
			
		||||
    <!--<DIV style="text-align: center;">Blockchain Hashrate, MH/s</DIV>-->
 | 
			
		||||
    <BR>
 | 
			
		||||
    <canvas  class="DIAGRAM" width='1100' height='200' id='idBlockchainStat'></canvas>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <DIV id="diagr_content" align='center'>
 | 
			
		||||
        <DIV id="diargams" align='center'>
 | 
			
		||||
        </DIV>
 | 
			
		||||
    </DIV>
 | 
			
		||||
 | 
			
		||||
    <BR>
 | 
			
		||||
    <BR>
 | 
			
		||||
    New diagram<INPUT type="string" id="idNameDiagram" style="width:250px" value="">
 | 
			
		||||
    <INPUT type="button" onclick="AddDiagram()" value="Add">
 | 
			
		||||
    <INPUT type="button" onclick="ResetDiagrams()" value="Reset">
 | 
			
		||||
    <INPUT type="button" onclick="ClearDiagrams()" value="Clear">
 | 
			
		||||
 | 
			
		||||
    <BR>
 | 
			
		||||
    <BR>
 | 
			
		||||
    <BR>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</DIV>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user