refactor: rewrite rpc server client

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2019-07-20 13:12:21 +08:00
parent fd1b23a4c3
commit b05a00f87d
18 changed files with 315 additions and 298 deletions

View File

@@ -12,7 +12,7 @@
import CBlock from './block-loader'
import { RBTree } from './library'
import { STreeBuffer } from './base';
import { SendToWebClient } from '../rpc/server'
import { teraManager } from '../rpc/manager'
require('./library');
require('./crypto-library');
const TX_PROCESS_TIME = 100;
@@ -1352,16 +1352,16 @@ export default class CConsensus extends CBlock {
MiningProcess(msg) {
var BlockMining = this.GetBlock(msg.BlockNum);
if (!BlockMining) {
SendToWebClient({
teraManager.SendToWebClient({
msg: msg,
errror: '!BlockMining'
error: '!BlockMining'
})
return;
}
if (!BlockMining.StartMining || BlockMining.bSave) {
SendToWebClient({
teraManager.SendToWebClient({
msg: msg,
errror: `!BlockMining.StartMining ${BlockMining.StartMining} || BlockMining.bSave ${BlockMining.bSave}`
error: `!BlockMining.StartMining ${BlockMining.StartMining} || BlockMining.bSave ${BlockMining.bSave}`
})
return;
}
@@ -1404,19 +1404,19 @@ export default class CConsensus extends CBlock {
setTimeout(() => {
let webmsg: any = { BlockNum: msg.BlockNum }
webmsg.Mining = {
SeqHash: global.GetHexFromArr(BlockMining.SeqHash),
AddrHash: global.GetHexFromArr(BlockMining.AddrHash),
PrevHash: global.GetHexFromArr(BlockMining.PrevHash),
TreeHash: global.GetHexFromArr(BlockMining.TreeHash),
Hash: global.GetHexFromArr(BlockMining.Hash),
SeqHash: global.GetHexFromArr(BlockMining.Hash)
}
webmsg.New = {
Hash: global.GetHexFromArr(ValueNew.Hash),
PowHash: global.GetHexFromArr(ValueNew.PowHash)
PowHash: global.GetHexFromArr(BlockMining.PowHash)
}
Object.assign(webmsg, {
HashCount,
Power,
Num: msg.Num
Num: msg.NodeNum
})
SendToWebClient(webmsg)
teraManager.SendToWebClient(webmsg)
}, 1)
}
}

View File

@@ -1193,10 +1193,19 @@ global.HTTPCaller.GetHistoryTransactions = function(Params) {
function GetCopyBlock(Block) {
var Result: any = {
BlockNum: Block.BlockNum, bSave: Block.bSave, TreeHash: global.GetHexFromAddres(Block.TreeHash), AddrHash: global.GetHexFromAddres(Block.AddrHash),
PrevHash: global.GetHexFromAddres(Block.PrevHash), SumHash: global.GetHexFromAddres(Block.SumHash), SumPow: Block.SumPow, TrDataPos: Block.TrDataPos,
TrDataLen: Block.TrDataLen, SeqHash: global.GetHexFromAddres(Block.SeqHash), Hash: global.GetHexFromAddres(Block.Hash), Power: global.GetPowPower(Block.PowHash),
TrCount: Block.TrCount, arrContent: Block.arrContent,
BlockNum: Block.BlockNum,
bSave: Block.bSave,
TreeHash: global.GetHexFromAddres(Block.TreeHash),
AddrHash: global.GetHexFromAddres(Block.AddrHash),
PrevHash: global.GetHexFromAddres(Block.PrevHash),
SumHash: global.GetHexFromAddres(Block.SumHash),
SumPow: Block.SumPow, TrDataPos: Block.TrDataPos,
TrDataLen: Block.TrDataLen,
SeqHash: global.GetHexFromAddres(Block.SeqHash),
Hash: global.GetHexFromAddres(Block.Hash),
Power: global.GetPowPower(Block.PowHash),
TrCount: Block.TrCount,
arrContent: Block.arrContent,
};
return Result;
};

View File

@@ -13,6 +13,16 @@ import "./library"
import * as net from "net"
import { secp256k1, RBTree } from '../core/library'
var ConnectIDCount = 1;
export class TeraSocket extends net.Socket {
ConnectToServer: boolean;
Node: CNode;
ConnectID: string;
WasClose: number;
SocketStatus: number;
Buf: Buffer;
SocketNum: number;
SocketPrioritet: number;
}
export default class CNode {
addrStr
ip
@@ -72,7 +82,7 @@ export default class CNode {
CanHardTraffic
BufWriteLength
BufWrite
SendPacket
SendPacket: RBTree<any>
ConnectCount
TrafficArr
SendTrafficCurrent
@@ -80,11 +90,11 @@ export default class CNode {
ErrCount
ErrCountAll
SendPacketNum
Socket
Socket2
Socket: TeraSocket
Socket2: TeraSocket
ReconnectFromServer
SecretForReconnect
Self
Self: boolean
addrStrTemp
DoubleConnection
PubKey
@@ -191,7 +201,7 @@ export default class CNode {
NODE.Socket.ConnectToServer = true
SetSocketStatus(NODE.Socket, 2)
}
})
}) as TeraSocket
SetSocketStatus(NODE.Socket, 1)
NODE.Socket.Node = NODE
NODE.Socket.ConnectID = "~C" + ConnectIDCount
@@ -210,7 +220,7 @@ export default class CNode {
NODE.Socket2.ConnectToServer = true
SetSocketStatus(NODE.Socket2, 2)
}
})
}) as TeraSocket
SetSocketStatus(NODE.Socket2, 1)
NODE.Socket2.Node = NODE
NODE.Socket2.ConnectID = "~R" + ConnectIDCount
@@ -286,7 +296,7 @@ export default class CNode {
}
else
if (Str === "SELF") {
NODE.Self = 1
NODE.Self = true
}
else
if (Str === "DOUBLE") {
@@ -395,7 +405,7 @@ export default class CNode {
Node.addrArr = Buf.addrArr
Node.addrStr = addrStr
if (global.CompareArr(global.SERVER.addrArr, Node.addrArr) === 0) {
Node.Self = 1
Node.Self = true
return 0;
}
var Hash = global.shaarr2(Buf.addrArr, Buf.HashRND);

View File

@@ -16,6 +16,7 @@ import { secp256k1, RBTree } from "./library"
import "./crypto-library"
import CConnect from './connect'
import { STreeBuffer } from './base';
import CNode, { TeraSocket } from './node';
const HARD_PACKET_PERIOD = 20;
global.BUF_TYPE = 1;
global.STR_TYPE = 2;
@@ -409,7 +410,7 @@ export default class CTransport extends CConnect {
GetHashFromData(Info) {
return global.shaarr(Info.Method + Info.Length + "-" + (Info.NodeTime - 0));
}
OnGetFromTCP(Node, Socket, Buf) {
OnGetFromTCP(Node: CNode, Socket: TeraSocket, Buf) {
if (!Node)
return;
if (!Node.Socket)