1
0
forked from circlecloud/tera

feat: alpine 0.0.1 version complate

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2019-07-11 13:35:16 +08:00
parent 63536569cf
commit 13607ba157
38 changed files with 1376 additions and 1064 deletions

View File

@@ -9,6 +9,7 @@
*/
"use strict";
import CBlock from './block-loader'
require('./library');
require('./crypto-library');
const TX_PROCESS_TIME = 100;
@@ -38,14 +39,14 @@ var FORMAT_DATA_TRANSFER = "{\
NoSendTx:uint,\
}";
const WorkStructSend = {};
module.exports = class CConsensus extends require("./block-loader")
{
export default class CConsensus extends CBlock {
CurrentBlockNum
SendBlockID
RelayMode
TreeSendPacket
idBlockChainTimer
OwnBlockCount
LevelNodes
constructor(SetKeyPair, RunIP, RunPort, UseRNDHeader, bVirtual) {
super(SetKeyPair, RunIP, RunPort, UseRNDHeader, bVirtual)
this.CurrentBlockNum = 0
@@ -175,9 +176,9 @@ module.exports = class CConsensus extends require("./block-loader")
}
Transfer.WasGet = true
if (global.DoTxLog && Data.TicketArray.length)
global.ToLog("TRANSFER BlockNum:" + Block.BlockNum + " TicketArray=" + Data.TicketArray.length + " from " + NodeName(Node))
global.ToLog("TRANSFER BlockNum:" + Block.BlockNum + " TicketArray=" + Data.TicketArray.length + " from " + global.NodeName(Node))
if (global.DoTxLog && Data.TxArray.length)
global.ToLog("TRANSFER BlockNum:" + Block.BlockNum + " TxArray=" + Data.TxArray.length + " from " + NodeName(Node))
global.ToLog("TRANSFER BlockNum:" + Block.BlockNum + " TxArray=" + Data.TxArray.length + " from " + global.NodeName(Node))
this.ToMaxPOWList(Data.MaxPOW)
this.ToMaxSumList(this.GetMaxSumListFromID(Node, Data.MaxSumID, Data.BlockList))
//var WasNewAdd = 0;
@@ -343,7 +344,7 @@ module.exports = class CConsensus extends require("./block-loader")
Arr = Arr2
}
if (global.DoTxLog)
global.ToLog("SEND TRANSFER BlockNum:" + Block.BlockNum + " Arr=" + Arr.length + " to " + NodeName(Item.Node))
global.ToLog("SEND TRANSFER BlockNum:" + Block.BlockNum + " Arr=" + Arr.length + " to " + global.NodeName(Item.Node))
var BufData = this.CreateTransferBuffer(Arr, arrPow, arrSum, Block, Item.Node);
this.Send(Item.Node, { "Method": "TRANSFER", "Context": {}, "Data": BufData }, 1)
if (!Block.JobListTX)
@@ -351,6 +352,9 @@ module.exports = class CConsensus extends require("./block-loader")
Block.JobListTX.push({ Node: Item.Node, TreeLevel: Item.TreeLevel, Time: Date.now() })
}
}
Send(Node, Info, TypeData?) {
// defiend in server.ts
}
TRANSFERTX(Info, CurTime) {
var Data = this.DataFromF(Info);
var Node = Info.Node;
@@ -359,7 +363,7 @@ module.exports = class CConsensus extends require("./block-loader")
return;
}
if (global.DoTxLog)
global.ToLog("TRANSFERTX BlockNum:" + Block.BlockNum + " Array=" + Data.Array.length + " from " + NodeName(Node))
global.ToLog("TRANSFERTX BlockNum:" + Block.BlockNum + " Array=" + Data.Array.length + " from " + global.NodeName(Node))
for (var i = 0; i < Data.Array.length; i++) {
this.AddTrToBlockQuote(Block, Data.Array[i], 1)
}
@@ -434,7 +438,7 @@ module.exports = class CConsensus extends require("./block-loader")
return;
}
if (global.DoTxLog)
global.ToLog("RETTRANSFERTX BlockNum:" + Block.BlockNum + " Array=" + Data.Array.length + " from " + NodeName(Node))
global.ToLog("RETTRANSFERTX BlockNum:" + Block.BlockNum + " Array=" + Data.Array.length + " from " + global.NodeName(Node))
for (var i = 0; i < Data.Array.length; i++) {
var Tr = Data.Array[i];
this.CheckCreateTransactionObject(Tr)
@@ -464,7 +468,7 @@ module.exports = class CConsensus extends require("./block-loader")
if (!Arr.length)
return;
if (global.DoTxLog)
global.ToLog("DoJobListTX BlockNum:" + Block.BlockNum + " Arr=" + Arr.length + " to " + NodeName(JobItem.Node))
global.ToLog("DoJobListTX BlockNum:" + Block.BlockNum + " Arr=" + Arr.length + " to " + global.NodeName(JobItem.Node))
var SendData = { "Method": "TRANSFERTX", "Context": {}, "Data": { BlockNum: Block.BlockNum, Array: Arr, } };
this.SendF(JobItem.Node, SendData, global.MAX_BLOCK_SIZE + 1000)
}
@@ -570,7 +574,7 @@ module.exports = class CConsensus extends require("./block-loader")
for (var n = 0; n < ArrNodesArr.length; n++) {
var ElArr = ArrNodesArr[n];
if (global.DoTxLog)
global.ToLog("CheckTxExchange BlockNum:" + Block.BlockNum + " Array=" + ElArr.Arr.length + " to " + NodeName(ElArr.Node))
global.ToLog("CheckTxExchange BlockNum:" + Block.BlockNum + " Array=" + ElArr.Arr.length + " to " + global.NodeName(ElArr.Node))
var SendData = { "Method": "GETTRANSFERTX", "Context": {}, "Data": { BlockNum: Block.BlockNum, TicketArray: ElArr.Arr, } };
this.SendF(ElArr.Node, SendData, ElArr.Arr.length * global.TR_TICKET_HASH_LENGTH + 1000)
}
@@ -865,7 +869,25 @@ module.exports = class CConsensus extends require("./block-loader")
}
return arr;
}
CheckPrioritetTx(Tr) {
if (Tr.Prioritet === undefined) {
var Body = Tr.body;
Tr.Prioritet = global.MAX_LENGTH_SENDER_MAP
var App = global.DAppByType[Body[0]];
if (App) {
Tr.SenderNum = App.GetSenderNum(Tr.num, Body)
if (Tr.SenderNum && Tr.SenderNum > 0) {
Tr.Prioritet = this.GetSenderPrioritet(Tr.num, Tr.SenderNum)
Tr.TimePow = Tr.Prioritet + Tr.power
}
}
}
}
GetSenderPrioritet(BlockNum, SenderNum) {
//defiend in transaction-validator.ts(CSmartContract)
}
AddToQuote(Tree, Tr) {
this.CheckPrioritetTx(Tr)
var Tr0 = Tree.find(Tr);
if (Tr0) {
return 3;
@@ -881,6 +903,15 @@ module.exports = class CConsensus extends require("./block-loader")
return 1;
}
}
IsValidTicket(Tr, BlockNum): any {
// defiend in transaction-validator.ts(CSmartContract)
}
IsValidTransaction(Tr, BlockNum): any {
// defiend in transaction-validator.ts(CSmartContract)
}
AddDAppTransactions(BlockNum, Arr) {
// defiend in transaction-validator.ts(CSmartContract)
}
AddTicketToBlockQuote(Block, Tr) {
if (Block.PowTicketTree) {
var Res = this.IsValidTicket(Tr, Block.BlockNum);
@@ -1267,14 +1298,14 @@ module.exports = class CConsensus extends require("./block-loader")
}
}
var MaxNumBlockDB = this.GetMaxNumBlockDB();
if (CURRENTBLOCKNUM + global.BLOCK_PROCESSING_LENGTH2 > MaxNumBlockDB)
if (CURRENTBLOCKNUM + global.BLOCK_PROCESSING_LENGTH2 > MaxNumBlockDB && CURRENTBLOCKNUM - global.BLOCK_PROCESSING_LENGTH2 < MaxNumBlockDB)
for (var BlockNum = CURRENTBLOCKNUM - global.BLOCK_PROCESSING_LENGTH2; BlockNum > global.BLOCK_PROCESSING_LENGTH2 && BlockNum < start_save; BlockNum++) {
var Block = this.GetBlock(BlockNum);
if (Block && !Block.bSave && Block.TrCount && Block.TreeHash && !global.IsZeroArr(Block.TreeHash) && !Block.WasSaveDataTree) {
this.PreSaveDataTreeToDB(Block)
Block.WasSaveDataTree = 1
global.AddInfoBlock(Block, "*PRESAVE DATA TREE*")
global.ToLog("PRESAVE DATA: " + Block.BlockNum)
global.ToLog("PRESAVE DATA: " + Block.BlockNum, 2)
}
}
this.RelayMode = !bWasSave