forked from circlecloud/tera
feat: sync process code
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
5cd98ffc49
commit
e693bab5a7
@ -1420,7 +1420,6 @@
|
||||
</DIV>
|
||||
<DIV style="float: left;display: none" id="idMiningParams">
|
||||
<DIV style="float: left; color: blue;">CPU use:<input type="number" min=0 max=100 id="idPercentMining" onchange="SetPercentMining()"/>%</DIV>
|
||||
<DIV style="float: left; margin: 2px 0 0 8px;" id="idStatusMining"></DIV>
|
||||
</DIV>
|
||||
</DIV>
|
||||
<DIV id="idDevelopService" style="display: none">
|
||||
@ -1460,6 +1459,7 @@
|
||||
</DIV>
|
||||
<canvas width='800' height='30' id='idBlockInfo'></canvas>
|
||||
<BR><BR>
|
||||
<DIV style="float: left; font-family: monospace" id="idStatusMining"></DIV>
|
||||
<DIV style="float: left; font-family: monospace">
|
||||
Block:<B id="idCurBlockNum"></B>
|
||||
DB delta:<B id="idDeltaDB" style="min-width: 30px"></B>
|
||||
|
@ -128,8 +128,7 @@ WebApi2.GetTransaction = function(Params) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
if (typeof Params === "object" && Params.BlockNum && Params.TrNum !== undefined) {
|
||||
var Block = global.SERVER.ReadBlockDB(Params.BlockNum);
|
||||
if (Block && Block.arrContent) {
|
||||
@ -327,8 +326,7 @@ function SendTransaction(Body, TR, Wait, F) {
|
||||
if (text === "Not add" || text === "Bad PoW") {
|
||||
CreateNonceAndSend(nonce + 1, NumNext + 1);
|
||||
return;
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (text === "Bad time") {
|
||||
if (DELTA_FOR_TIME_TX < 6) {
|
||||
DELTA_FOR_TIME_TX++;
|
||||
@ -339,8 +337,7 @@ function SendTransaction(Body, TR, Wait, F) {
|
||||
}
|
||||
if (Wait && TR._result) {
|
||||
global.GlobalRunMap[WebID] = F;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
F(TR._result < 1 ? 0 : 1, text);
|
||||
}
|
||||
});
|
||||
|
@ -8,11 +8,10 @@
|
||||
* Telegram: https://t.me/terafoundation
|
||||
*/
|
||||
|
||||
import '../core/constant'
|
||||
global.PROCESS_NAME = "MAIN";
|
||||
import '../core/constant'
|
||||
import * as fs from 'fs'
|
||||
import * as os from 'os'
|
||||
// import path = require('path')
|
||||
import * as crypto from 'crypto';
|
||||
import { secp256k1 } from '../core/library'
|
||||
|
||||
@ -38,8 +37,6 @@ global.glCurNumFindArr = 0;
|
||||
global.ArrReconnect = [];
|
||||
global.ArrConnect = [];
|
||||
var FindList = [
|
||||
{ "ip": "60.12.241.181", "port": 30000 },
|
||||
{ "ip": "60.12.241.181", "port": 30001 },
|
||||
{ "ip": "60.12.241.181", "port": 30002 },
|
||||
{ "ip": "60.12.241.181", "port": 30003 },
|
||||
{ "ip": "60.12.241.181", "port": 30004 },
|
||||
@ -53,18 +50,15 @@ var FindList = [
|
||||
{ "ip": "60.12.241.181", "port": 30012 },
|
||||
{ "ip": "60.12.241.181", "port": 30013 },
|
||||
{ "ip": "60.12.241.181", "port": 30014 },
|
||||
{ "ip": "60.12.241.181", "port": 30015 },
|
||||
{ "ip": "60.12.241.181", "port": 30016 },
|
||||
{ "ip": "60.12.241.181", "port": 30017 },
|
||||
{ "ip": "60.12.241.181", "port": 30018 },
|
||||
];
|
||||
if (global.LOCAL_RUN) {
|
||||
FindList = [{ "ip": "127.0.0.1", "port": 50001 }, { "ip": "127.0.0.1", "port": 50002 }];
|
||||
} else if (global.TEST_NETWORK) {
|
||||
FindList = [{ "ip": "149.154.70.158", "port": 40000 },];
|
||||
}
|
||||
else
|
||||
if (global.TEST_NETWORK) {
|
||||
FindList = [{ "ip": "149.154.70.158", "port": 40000 },];
|
||||
}
|
||||
global.SERVER = undefined;
|
||||
global.NeedRestart = 0;
|
||||
process.on('uncaughtException' as any, function(err: TeraError) {
|
||||
@ -104,8 +98,7 @@ if (global.HTTP_HOSTING_PORT && !global.NWMODE) {
|
||||
if (WebProcess.Worker && WebProcess.Worker.connected) {
|
||||
try {
|
||||
WebProcess.Worker.send({ cmd: "Stat", Name: "MAX:ALL_NODES", Value: global.CountAllNode });
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
WebProcess.Worker = undefined;
|
||||
}
|
||||
}
|
||||
@ -144,7 +137,11 @@ function AddTransactionFromWeb(Params) {
|
||||
var body = global.GetArrFromHex(Params.HexValue);
|
||||
if (global.TX_PROCESS && global.TX_PROCESS.Worker) {
|
||||
var StrHex = global.GetHexFromArr(global.sha3(body));
|
||||
global.TX_PROCESS.Worker.send({ cmd: "FindTX", TX: StrHex, Web: 1, WebID: Params.WebID });
|
||||
global.TX_PROCESS.Worker.send({
|
||||
cmd: "FindTX",
|
||||
TX: StrHex, Web: 1,
|
||||
WebID: Params.WebID
|
||||
});
|
||||
}
|
||||
var Res = global.SERVER.AddTransaction({ body: body }, 1);
|
||||
var text = global.AddTrMap[Res];
|
||||
@ -259,15 +256,18 @@ function StartChildProcess(Item) {
|
||||
if (typeof msg.Params === "object" && msg.Params.F) {
|
||||
global[msg.Name](msg.Params, function(Err, Ret) {
|
||||
if (msg.id && ITEM.Worker)
|
||||
ITEM.Worker.send({ cmd: "retcall", id: msg.id, Err: Err, Params: Ret });
|
||||
ITEM.Worker.send({
|
||||
cmd: "retcall",
|
||||
id: msg.id,
|
||||
Err: Err,
|
||||
Params: Ret
|
||||
});
|
||||
});
|
||||
break;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Ret = global[msg.Name](msg.Params);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Err = 1;
|
||||
Ret = "" + e;
|
||||
}
|
||||
@ -284,7 +284,7 @@ function StartChildProcess(Item) {
|
||||
case "log":
|
||||
global.ToLog(msg.message);
|
||||
break;
|
||||
case "global.ToLogClient":
|
||||
case "ToLogClient":
|
||||
if (WebProcess && WebProcess.Worker) {
|
||||
WebProcess.Worker.send(msg);
|
||||
}
|
||||
@ -333,14 +333,22 @@ function StartChildProcess(Item) {
|
||||
if (F) {
|
||||
GlobalRunID++;
|
||||
try {
|
||||
ITEM.Worker.send({ cmd: "call", id: GlobalRunID, Name: Name, Params: Params });
|
||||
ITEM.Worker.send({
|
||||
cmd: "call",
|
||||
id: GlobalRunID,
|
||||
Name: Name,
|
||||
Params: Params
|
||||
});
|
||||
GlobalRunMap[GlobalRunID] = F;
|
||||
} catch (e) {
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
ITEM.Worker.send({ cmd: "call", id: 0, Name: Name, Params: Params });
|
||||
} else {
|
||||
ITEM.Worker.send({
|
||||
cmd: "call",
|
||||
id: 0,
|
||||
Name: Name,
|
||||
Params: Params
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
@ -413,8 +421,7 @@ function RunStopPOWProcess(Mode) {
|
||||
global.MiningPaused = 1;
|
||||
if (TimeCur >= StartTime && TimeCur <= TimeEnd) {
|
||||
global.MiningPaused = 0;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
StartTime -= 24 * 3600;
|
||||
TimeEnd -= 24 * 3600;
|
||||
if (TimeCur >= StartTime && TimeCur <= TimeEnd) {
|
||||
@ -425,16 +432,13 @@ function RunStopPOWProcess(Mode) {
|
||||
global.ToLog("------------ MINING MUST STOP ON TIME");
|
||||
ClearArrMining();
|
||||
return;
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (!global.ArrMiningWrk.length && !global.MiningPaused) {
|
||||
global.ToLog("*********** MINING MUST START ON TIME");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
global.MiningPaused = 0;
|
||||
}
|
||||
if (!global.USE_MINING || Mode === "STOP") {
|
||||
@ -480,12 +484,10 @@ function RunStopPOWProcess(Mode) {
|
||||
if (msg.cmd === "online") {
|
||||
Worker.bOnline = true;
|
||||
global.ToLog("RUNNING PROCESS:" + Worker.Num + ":" + msg.message);
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (msg.cmd === "POW") {
|
||||
global.SERVER.MiningProcess(msg);
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (msg.cmd === "HASHRATE") {
|
||||
global.ADD_HASH_RATE(msg.CountNonce);
|
||||
}
|
||||
@ -518,9 +520,20 @@ function SetCalcPOW(Block, cmd) {
|
||||
if (!CurWorker.bOnline)
|
||||
continue;
|
||||
CurWorker.send({
|
||||
cmd: cmd, BlockNum: Block.BlockNum, Account: global.GENERATE_BLOCK_ACCOUNT, MinerID: global.GENERATE_BLOCK_ACCOUNT, SeqHash: Block.SeqHash,
|
||||
Hash: Block.Hash, PrevHash: Block.PrevHash, Time: Date.now(), Num: CurWorker.Num, RunPeriod: global.POWRunPeriod, RunCount: global.POW_RUN_COUNT,
|
||||
Percent: global.POW_MAX_PERCENT, CountMiningCPU: global.GetCountMiningCPU(), ProcessMemorySize: ProcessMemorySize,
|
||||
cmd: cmd,
|
||||
BlockNum: Block.BlockNum,
|
||||
Account: global.GENERATE_BLOCK_ACCOUNT,
|
||||
MinerID: global.GENERATE_BLOCK_ACCOUNT,
|
||||
SeqHash: Block.SeqHash,
|
||||
Hash: Block.Hash,
|
||||
PrevHash: Block.PrevHash,
|
||||
Time: Date.now(),
|
||||
Num: CurWorker.Num,
|
||||
RunPeriod: global.POWRunPeriod,
|
||||
RunCount: global.POW_RUN_COUNT,
|
||||
Percent: global.POW_MAX_PERCENT,
|
||||
CountMiningCPU: global.GetCountMiningCPU(),
|
||||
ProcessMemorySize: ProcessMemorySize,
|
||||
});
|
||||
}
|
||||
};
|
||||
@ -567,8 +580,7 @@ function DoConnectToNodes(Arr, Mode) {
|
||||
if (Mode === "CONNECT") {
|
||||
Node.WasAddToConnect = undefined;
|
||||
global.SERVER.StartConnectTry(Node);
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (Mode === "RECONNECT") {
|
||||
Node.WasAddToReconnect = undefined;
|
||||
Node.CreateConnect();
|
||||
|
@ -8,82 +8,132 @@
|
||||
* Telegram: https://t.me/terafoundation
|
||||
*/
|
||||
|
||||
global.PROCESS_NAME = "POW"
|
||||
global.POWPROCESS = 1
|
||||
require("../core/library")
|
||||
require("../core/crypto-library")
|
||||
require("../core/terahashmining");
|
||||
global.PROCESS_NAME = "POW";
|
||||
global.POWPROCESS = 1;
|
||||
import "../core/library"
|
||||
import "../core/crypto-library"
|
||||
import "../core/terahashmining"
|
||||
var PROCESS = process;
|
||||
process.send && !global.DEBUGPROCESS ? process.send({ cmd: "online", message: "OK" }) : PROCESS = global.DEBUGPROCESS;
|
||||
if (process.send && !global.DEBUGPROCESS) {
|
||||
process.send({ cmd: "online", message: "OK" });
|
||||
} else {
|
||||
PROCESS = global.DEBUGPROCESS;
|
||||
}
|
||||
var LastAlive = Date.now();
|
||||
setInterval(CheckAlive, 1e3);
|
||||
var idInterval = void 0, Block: any = {};
|
||||
setInterval(CheckAlive, 1000);
|
||||
var idInterval = undefined;
|
||||
var Block: any = {};
|
||||
PROCESS.on('message', function(msg) {
|
||||
LastAlive = Date.now();
|
||||
if (msg.cmd === "FastCalcBlock") {
|
||||
var FastBlock = msg;
|
||||
StartHashPump(FastBlock);
|
||||
FastBlock.RunCount = 0;
|
||||
try {
|
||||
if (global.CreatePOWVersionX(FastBlock))
|
||||
process.send({
|
||||
cmd: "POW",
|
||||
BlockNum: FastBlock.BlockNum,
|
||||
SeqHash: FastBlock.SeqHash,
|
||||
Hash: FastBlock.Hash,
|
||||
PowHash: FastBlock.PowHash,
|
||||
AddrHash: FastBlock.AddrHash,
|
||||
Num: FastBlock.Num
|
||||
});
|
||||
} catch (e) {
|
||||
global.ToError(e);
|
||||
}
|
||||
} else
|
||||
if (msg.cmd === "SetBlock") {
|
||||
var StartNonce = 1000000 * (1 + msg.Num);
|
||||
if (Block.HashCount) {
|
||||
process.send({ cmd: "HASHRATE", CountNonce: Block.HashCount, Hash: Block.Hash });
|
||||
}
|
||||
Block.HashCount = 0;
|
||||
Block = msg;
|
||||
Block.Time = Date.now();
|
||||
Block.LastNonce = StartNonce;
|
||||
Block.Period = global.CONSENSUS_PERIOD_TIME * Block.Percent / 100;
|
||||
if (Block.Period > 0 && Block.RunPeriod > 0) {
|
||||
CalcPOWHash();
|
||||
if (idInterval !== undefined) {
|
||||
clearInterval(idInterval);
|
||||
}
|
||||
idInterval = setInterval(CalcPOWHash, Block.RunPeriod);
|
||||
}
|
||||
} else
|
||||
if (msg.cmd === "Alive") {
|
||||
} else
|
||||
if (msg.cmd === "Exit") {
|
||||
PROCESS.exit(0);
|
||||
}
|
||||
});
|
||||
|
||||
function CheckAlive() {
|
||||
if (!global.NOALIVE) {
|
||||
var e = Date.now() - LastAlive;
|
||||
Math.abs(e) > global.CHECK_STOP_CHILD_PROCESS && PROCESS.exit(0);
|
||||
if (global.NOALIVE)
|
||||
return;
|
||||
var Delta = Date.now() - LastAlive;
|
||||
if (Math.abs(Delta) > global.CHECK_STOP_CHILD_PROCESS) {
|
||||
PROCESS.exit(0);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
function CalcPOWHash() {
|
||||
if (Block.SeqHash) {
|
||||
if ((new Date as any) - Block.Time > Block.Period)
|
||||
return clearInterval(idInterval), void (idInterval = void 0);
|
||||
try {
|
||||
global.CreatePOWVersionX(Block) && process.send({
|
||||
cmd: "POW", BlockNum: Block.BlockNum, SeqHash: Block.SeqHash, Hash: Block.Hash, PowHash: Block.PowHash,
|
||||
AddrHash: Block.AddrHash, Num: Block.Num
|
||||
if (!Block.SeqHash)
|
||||
return;
|
||||
if ((new Date() as any) - Block.Time > Block.Period) {
|
||||
clearInterval(idInterval);
|
||||
idInterval = undefined;
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (global.CreatePOWVersionX(Block))
|
||||
process.send({
|
||||
cmd: "POW", BlockNum: Block.BlockNum, SeqHash: Block.SeqHash, Hash: Block.Hash, PowHash: Block.PowHash, AddrHash: Block.AddrHash,
|
||||
Num: Block.Num
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
global.ToError(e);
|
||||
}
|
||||
} catch (e) {
|
||||
global.ToError(e);
|
||||
}
|
||||
};
|
||||
PROCESS.on("message", function(e) {
|
||||
if (LastAlive = Date.now(), "FastCalcBlock" === e.cmd) {
|
||||
var o = e;
|
||||
StartHashPump(o), o.RunCount = 0;
|
||||
try {
|
||||
global.CreatePOWVersionX(o) && process.send({
|
||||
cmd: "POW", BlockNum: o.BlockNum, SeqHash: o.SeqHash, Hash: o.Hash, PowHash: o.PowHash, AddrHash: o.AddrHash,
|
||||
Num: o.Num
|
||||
});
|
||||
} catch (e) {
|
||||
global.ToError(e);
|
||||
}
|
||||
} else {
|
||||
if ("SetBlock" === e.cmd) {
|
||||
var a = 1e6 * (1 + e.Num);
|
||||
Block.HashCount && process.send({ cmd: "HASHRATE", CountNonce: Block.HashCount, Hash: Block.Hash }), Block.HashCount = 0, (Block = e).Time = Date.now(),
|
||||
Block.LastNonce = a, Block.Period = global.CONSENSUS_PERIOD_TIME * Block.Percent / 100, 0 < Block.Period && 0 < Block.RunPeriod && (CalcPOWHash(),
|
||||
void 0 !== idInterval && clearInterval(idInterval), idInterval = setInterval(CalcPOWHash, Block.RunPeriod));
|
||||
} else {
|
||||
"Alive" === e.cmd || "Exit" === e.cmd && PROCESS.exit(0);
|
||||
}
|
||||
global.BlockPump = undefined;
|
||||
var idIntervalPump = undefined;
|
||||
|
||||
function StartHashPump(SetBlock) {
|
||||
if (!global.BlockPump || global.BlockPump.BlockNum < SetBlock.BlockNum || global.BlockPump.MinerID !== SetBlock.MinerID || global.BlockPump.Percent !== SetBlock.Percent) {
|
||||
global.BlockPump = {
|
||||
BlockNum: SetBlock.BlockNum,
|
||||
RunCount: SetBlock.RunCount,
|
||||
MinerID: SetBlock.MinerID,
|
||||
Percent: SetBlock.Percent,
|
||||
LastNonce: 0,
|
||||
};
|
||||
}
|
||||
if (!idIntervalPump) {
|
||||
idIntervalPump = setInterval(PumpHash, global.POWRunPeriod);
|
||||
}
|
||||
|
||||
});
|
||||
var idIntervalPump = global.BlockPump = void 0;
|
||||
|
||||
function StartHashPump(e) {
|
||||
(!global.BlockPump || global.BlockPump.BlockNum < e.BlockNum || global.BlockPump.MinerID !== e.MinerID || global.BlockPump.Percent !== e.Percent) && (global.BlockPump = {
|
||||
BlockNum: e.BlockNum,
|
||||
RunCount: e.RunCount, MinerID: e.MinerID, Percent: e.Percent, LastNonce: 0
|
||||
}), idIntervalPump = idIntervalPump || setInterval(PumpHash, global.POWRunPeriod);
|
||||
};
|
||||
var StartTime = 1, EndTime = 0;
|
||||
var StartTime = 1;
|
||||
var EndTime = 0;
|
||||
|
||||
function PumpHash() {
|
||||
if (global.BlockPump) {
|
||||
var e = Date.now();
|
||||
if (EndTime < StartTime) {
|
||||
if (100 * (e - StartTime) / global.CONSENSUS_PERIOD_TIME >= global.BlockPump.Percent)
|
||||
return void (EndTime = e);
|
||||
global.CreatePOWVersionX(global.BlockPump, 1);
|
||||
} else {
|
||||
100 * (e - EndTime) / global.CONSENSUS_PERIOD_TIME > 100 - global.BlockPump.Percent && (StartTime = e);
|
||||
if (!global.BlockPump)
|
||||
return;
|
||||
var CurTime = Date.now();
|
||||
if (StartTime > EndTime) {
|
||||
var Delta = CurTime - StartTime;
|
||||
var PeriodPercent = 100 * Delta / global.CONSENSUS_PERIOD_TIME;
|
||||
if (PeriodPercent >= global.BlockPump.Percent) {
|
||||
EndTime = CurTime;
|
||||
return;
|
||||
}
|
||||
global.CreatePOWVersionX(global.BlockPump, 1);
|
||||
} else {
|
||||
var Delta = CurTime - EndTime;
|
||||
var PeriodPercent = 100 * Delta / global.CONSENSUS_PERIOD_TIME;
|
||||
if (PeriodPercent > 100 - global.BlockPump.Percent) {
|
||||
StartTime = CurTime;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -41,8 +41,7 @@ process.on('message', function(msg) {
|
||||
var Ret;
|
||||
try {
|
||||
Ret = global[msg.Name](msg.Params);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Err = 1;
|
||||
Ret = "" + e;
|
||||
}
|
||||
@ -243,8 +242,7 @@ function GETREST(msg) {
|
||||
global.ToLog("Get bad rest acc hash: " + BlockNumRest + " = " + global.GetHexFromArr(Data.AccHash) + "/" + global.GetHexFromArr(Tree.Root), 2);
|
||||
ArrRest = [];
|
||||
nResult = 0;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
ArrRest = GetArrRest(BlockNumRest, StartAccount, EndAccount);
|
||||
ProofHash = Tree.Root;
|
||||
var RetProof = global.GetMerkleProof(Tree.LevelsHash, StartAccount, EndAccount);
|
||||
@ -254,9 +252,22 @@ function GETREST(msg) {
|
||||
BufLength += ProofArrL.length * 32 + ProofArrR.length * 32 + 32;
|
||||
}
|
||||
}
|
||||
var Data2 = { Result: nResult, Arr: ArrRest, Version: 1, ProofHash: ProofHash, ProofArrL: ProofArrL, ProofArrR: ProofArrR };
|
||||
var Data2 = {
|
||||
Result: nResult,
|
||||
Arr: ArrRest,
|
||||
Version: 1,
|
||||
ProofHash: ProofHash,
|
||||
ProofArrL: ProofArrL,
|
||||
ProofArrR: ProofArrR
|
||||
};
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, global.FORMAT_REST_TRANSFER, BufLength, {});
|
||||
process.send({ cmd: "Send", addrStr: msg.addrStr, Method: "RETREST", Context: msg.Context, Data: BufWrite });
|
||||
process.send({
|
||||
cmd: "Send",
|
||||
addrStr: msg.addrStr,
|
||||
Method: "RETREST",
|
||||
Context: msg.Context,
|
||||
Data: BufWrite
|
||||
});
|
||||
};
|
||||
|
||||
function GETSMART(msg) {
|
||||
@ -278,7 +289,13 @@ function GETSMART(msg) {
|
||||
}
|
||||
var Data2 = { Result: Arr.length ? 1 : 0, Arr: Arr };
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, global.FORMAT_SMART_TRANSFER, BufLength, {});
|
||||
process.send({ cmd: "Send", addrStr: msg.addrStr, Method: "RETSMART", Context: msg.Context, Data: BufWrite });
|
||||
process.send({
|
||||
cmd: "Send",
|
||||
addrStr: msg.addrStr,
|
||||
Method: "RETSMART",
|
||||
Context: msg.Context,
|
||||
Data: BufWrite
|
||||
});
|
||||
};
|
||||
var glMapForHash = {};
|
||||
|
||||
|
@ -26,7 +26,12 @@ if (process.send) {
|
||||
}, 1000);
|
||||
process.send({ cmd: "online", message: "OK" });
|
||||
global.ToLogClient = function(Str, StrKey, bFinal) {
|
||||
process.send({ cmd: "ToLogClient", Str: "" + Str, StrKey: StrKey, bFinal: bFinal });
|
||||
process.send({
|
||||
cmd: "ToLogClient",
|
||||
Str: "" + Str,
|
||||
StrKey: StrKey,
|
||||
bFinal: bFinal
|
||||
});
|
||||
};
|
||||
}
|
||||
process.on('message', function(msg) {
|
||||
@ -42,13 +47,17 @@ process.on('message', function(msg) {
|
||||
var Ret;
|
||||
try {
|
||||
Ret = global[msg.Name](msg.Params);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Err = 1;
|
||||
Ret = "" + e;
|
||||
}
|
||||
if (msg.id)
|
||||
process.send({ cmd: "retcall", id: msg.id, Err: Err, Params: Ret });
|
||||
process.send({
|
||||
cmd: "retcall",
|
||||
id: msg.id,
|
||||
Err: Err,
|
||||
Params: Ret
|
||||
});
|
||||
break;
|
||||
case "FindTX":
|
||||
global.TreeFindTX.SaveValue(msg.TX, msg);
|
||||
@ -234,7 +243,11 @@ function InitTXProcess() {
|
||||
}
|
||||
}
|
||||
global.ToLog("DETECT NEW VER on BlockNum=" + LastBlockNum, 2);
|
||||
global.DApps.Accounts.DBStateTX.Write({ Num: 0, BlockNum: LastBlockNum, BlockNumMin: MinimalValidBlock });
|
||||
global.DApps.Accounts.DBStateTX.Write({
|
||||
Num: 0,
|
||||
BlockNum: LastBlockNum,
|
||||
BlockNumMin: MinimalValidBlock
|
||||
});
|
||||
}
|
||||
StateTX = global.DApps.Accounts.DBStateTX.Read(0);
|
||||
LastBlockNum = StateTX.BlockNum;
|
||||
@ -347,8 +360,7 @@ global.EvalCode = function(Code) {
|
||||
try {
|
||||
var ret = eval(Code);
|
||||
Result = JSON.stringify(ret, undefined, 4);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Result = "" + e;
|
||||
}
|
||||
return Result;
|
||||
|
@ -47,8 +47,7 @@ process.on('message', function(msg) {
|
||||
var Ret;
|
||||
try {
|
||||
Ret = global[msg.Name](msg.Params);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Err = 1;
|
||||
Ret = "" + e;
|
||||
}
|
||||
@ -181,8 +180,7 @@ if (global.HTTPS_HOSTING_DOMAIN) {
|
||||
global.ToError(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
HostingServer = http.createServer(MainHTTPFunction);
|
||||
RunListenServer();
|
||||
}
|
||||
@ -216,16 +214,14 @@ function MainHTTPFunction(request, response) {
|
||||
if (postData && postData.length) {
|
||||
try {
|
||||
Data = JSON.parse(postData);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Response.writeHead(405, { 'Content-Type': 'text/html' });
|
||||
Response.end("Error data parsing");
|
||||
}
|
||||
}
|
||||
DoCommandNew(response, Type, Path, Data);
|
||||
});
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
DoCommandNew(response, Type, Path, Params);
|
||||
}
|
||||
};
|
||||
@ -334,8 +330,7 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
var Ret;
|
||||
try {
|
||||
Ret = F(Params, response, ArrPath);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Ret = { result: 0, text: e.message, text2: e.stack };
|
||||
}
|
||||
if (Ret === null)
|
||||
@ -347,8 +342,7 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
else
|
||||
Str = Ret;
|
||||
response.end(Str);
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
global.ToLog("ERR PATH:" + Path);
|
||||
global.ToLog(e);
|
||||
response.end();
|
||||
@ -395,12 +389,10 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
Name = PrefixPath + Name;
|
||||
global.SendWebFile(response, Name, Path);
|
||||
return;
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (LangPathMap[Method]) {
|
||||
PrefixPath = "./SITE/" + Method;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
var Name2 = WalletFileMap[Name];
|
||||
if (!Name2)
|
||||
PrefixPath = "./SITE";
|
||||
@ -610,8 +602,7 @@ HostingCaller.GetAccountListByKey = function(Params, ppp, bRet) {
|
||||
Data.SmartState = global.BufLib.GetObjectFromBuffer(Data.Value.Data, Data.SmartObj.StateFormat, {});
|
||||
if (typeof Data.SmartState === "object")
|
||||
Data.SmartState.Num = Item.Num;
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
Data.SmartState = {};
|
||||
}
|
||||
}
|
||||
@ -793,11 +784,9 @@ process.RunRPC = function(Name, Params, F) {
|
||||
try {
|
||||
process.send({ cmd: "call", id: global.GlobalRunID, Name: Name, Params: Params });
|
||||
global.GlobalRunMap[global.GlobalRunID] = F;
|
||||
} catch (e) {
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
process.send({ cmd: "call", id: 0, Name: Name, Params: Params });
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user