parent
f8b5c6fb72
commit
d2e29a1b6d
|
@ -118,7 +118,7 @@ export default class CDB extends CCode {
|
||||||
CheckBlocksOnStartReverse(StartNum: number) {
|
CheckBlocksOnStartReverse(StartNum: number) {
|
||||||
var delta = 1;
|
var delta = 1;
|
||||||
var Count = 0;
|
var Count = 0;
|
||||||
var PrevBlock;
|
var PrevBlock: TeraBlock;
|
||||||
for (var num = StartNum; num >= this.BlockNumDBMin + global.BLOCK_PROCESSING_LENGTH2; num -= delta) {
|
for (var num = StartNum; num >= this.BlockNumDBMin + global.BLOCK_PROCESSING_LENGTH2; num -= delta) {
|
||||||
var Block = this.ReadBlockHeaderDB(num);
|
var Block = this.ReadBlockHeaderDB(num);
|
||||||
if (!Block || global.IsZeroArr(Block.SumHash)) {
|
if (!Block || global.IsZeroArr(Block.SumHash)) {
|
||||||
|
@ -242,7 +242,7 @@ export default class CDB extends CCode {
|
||||||
WriteBodyResultDB(Block: TeraBlock) {
|
WriteBodyResultDB(Block: TeraBlock) {
|
||||||
var arrTr = Block.arrContentResult;
|
var arrTr = Block.arrContentResult;
|
||||||
if (Block.TrDataPos && Block.TrDataLen && Block.VersionBody && arrTr && arrTr.length) {
|
if (Block.TrDataPos && Block.TrDataLen && Block.VersionBody && arrTr && arrTr.length) {
|
||||||
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, 1);
|
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, true);
|
||||||
var FD = FileItem.fd;
|
var FD = FileItem.fd;
|
||||||
var Size = arrTr.length * 6;
|
var Size = arrTr.length * 6;
|
||||||
var Position = Block.TrDataPos + Block.TrDataLen - Size;
|
var Position = Block.TrDataPos + Block.TrDataLen - Size;
|
||||||
|
@ -263,7 +263,7 @@ export default class CDB extends CCode {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
WriteBodyDB(Block: TeraBlock) {
|
WriteBodyDB(Block: TeraBlock) {
|
||||||
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, 1);
|
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, true);
|
||||||
var FD = FileItem.fd;
|
var FD = FileItem.fd;
|
||||||
var Position = FileItem.size;
|
var Position = FileItem.size;
|
||||||
Block.TrDataPos = Position
|
Block.TrDataPos = Position
|
||||||
|
@ -333,7 +333,7 @@ export default class CDB extends CCode {
|
||||||
this.TruncateBufMap(BlockNum)
|
this.TruncateBufMap(BlockNum)
|
||||||
Block.VersionDB = global.DB_VERSION
|
Block.VersionDB = global.DB_VERSION
|
||||||
BufWrite = global.BufLib.GetBufferFromObject(Block, FORMAT_STREAM_HEADER, 200, WorkStructStreamHeader)
|
BufWrite = global.BufLib.GetBufferFromObject(Block, FORMAT_STREAM_HEADER, 200, WorkStructStreamHeader)
|
||||||
FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, 1)
|
FileItem = global.BlockDB.OpenDBFile(FILE_NAME_BODY, true)
|
||||||
if (!Block.FilePos) {
|
if (!Block.FilePos) {
|
||||||
if (!FileItem.size)
|
if (!FileItem.size)
|
||||||
FileItem.size = 100
|
FileItem.size = 100
|
||||||
|
@ -347,7 +347,7 @@ export default class CDB extends CCode {
|
||||||
if (Block.FilePos >= FileItem.size) {
|
if (Block.FilePos >= FileItem.size) {
|
||||||
FileItem.size = Block.FilePos + BufWrite.length
|
FileItem.size = Block.FilePos + BufWrite.length
|
||||||
}
|
}
|
||||||
FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, 1)
|
FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, true)
|
||||||
var Position = BlockNum * global.BLOCK_HEADER_SIZE2;
|
var Position = BlockNum * global.BLOCK_HEADER_SIZE2;
|
||||||
BufWrite = global.BufLib.GetBufferFromObject(Block, FORMAT_HEADER_VERSION2, global.BLOCK_HEADER_SIZE2, WorkStructHeader2)
|
BufWrite = global.BufLib.GetBufferFromObject(Block, FORMAT_HEADER_VERSION2, global.BLOCK_HEADER_SIZE2, WorkStructHeader2)
|
||||||
written = fs.writeSync(FileItem.fd, BufWrite, 0, BufWrite.length, Position)
|
written = fs.writeSync(FileItem.fd, BufWrite, 0, BufWrite.length, Position)
|
||||||
|
@ -365,7 +365,7 @@ export default class CDB extends CCode {
|
||||||
WriteBufHeaderToFile1(BufWrite: Buffer, BlockNum: number) {
|
WriteBufHeaderToFile1(BufWrite: Buffer, BlockNum: number) {
|
||||||
BlockNum = Math.trunc(BlockNum)
|
BlockNum = Math.trunc(BlockNum)
|
||||||
this.TruncateBufMap(BlockNum)
|
this.TruncateBufMap(BlockNum)
|
||||||
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, 1);
|
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, true);
|
||||||
var Position = BlockNum * global.BLOCK_HEADER_SIZE;
|
var Position = BlockNum * global.BLOCK_HEADER_SIZE;
|
||||||
var written = fs.writeSync(FileItem.fd, BufWrite, 0, BufWrite.length, Position);
|
var written = fs.writeSync(FileItem.fd, BufWrite, 0, BufWrite.length, Position);
|
||||||
if (Position >= FileItem.size) {
|
if (Position >= FileItem.size) {
|
||||||
|
@ -468,7 +468,7 @@ export default class CDB extends CCode {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
BlockNum = Math.trunc(BlockNum)
|
BlockNum = Math.trunc(BlockNum)
|
||||||
var Block, BufRead, FileItem, bytesRead, Position;
|
var Block: TeraBlock, BufRead: Buffer, FileItem, bytesRead: number, Position: number;
|
||||||
BufRead = global.BufLib.GetNewBuffer(global.BLOCK_HEADER_SIZE)
|
BufRead = global.BufLib.GetNewBuffer(global.BLOCK_HEADER_SIZE)
|
||||||
Position = BlockNum * global.BLOCK_HEADER_SIZE
|
Position = BlockNum * global.BLOCK_HEADER_SIZE
|
||||||
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER);
|
var FileItem = global.BlockDB.OpenDBFile(FILE_NAME_HEADER);
|
||||||
|
@ -556,11 +556,11 @@ export default class CDB extends CCode {
|
||||||
TruncateBlockDBInner(LastBlock: TeraBlock) {
|
TruncateBlockDBInner(LastBlock: TeraBlock) {
|
||||||
var FItem1, size;
|
var FItem1, size;
|
||||||
if (global.DB_VERSION === 2) {
|
if (global.DB_VERSION === 2) {
|
||||||
FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, 1)
|
FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, true)
|
||||||
size = (LastBlock.BlockNum + 1) * global.BLOCK_HEADER_SIZE2
|
size = (LastBlock.BlockNum + 1) * global.BLOCK_HEADER_SIZE2
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, 1)
|
FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, true)
|
||||||
size = (LastBlock.BlockNum + 1) * global.BLOCK_HEADER_SIZE
|
size = (LastBlock.BlockNum + 1) * global.BLOCK_HEADER_SIZE
|
||||||
}
|
}
|
||||||
if (size < 0)
|
if (size < 0)
|
||||||
|
@ -575,13 +575,13 @@ export default class CDB extends CCode {
|
||||||
ClearDataBase() {
|
ClearDataBase() {
|
||||||
if (global.TX_PROCESS && global.TX_PROCESS.RunRPC)
|
if (global.TX_PROCESS && global.TX_PROCESS.RunRPC)
|
||||||
global.TX_PROCESS.RunRPC("ClearDataBase", {})
|
global.TX_PROCESS.RunRPC("ClearDataBase", {})
|
||||||
var FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, 1);
|
var FItem1 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER, true);
|
||||||
FItem1.size = 0
|
FItem1.size = 0
|
||||||
fs.ftruncateSync(FItem1.fd, FItem1.size)
|
fs.ftruncateSync(FItem1.fd, FItem1.size)
|
||||||
var FItem12 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, 1);
|
var FItem12 = global.BlockDB.OpenDBFile(FILE_NAME_HEADER2, true);
|
||||||
FItem12.size = 0
|
FItem12.size = 0
|
||||||
fs.ftruncateSync(FItem12.fd, FItem12.size)
|
fs.ftruncateSync(FItem12.fd, FItem12.size)
|
||||||
var FItem2 = global.BlockDB.OpenDBFile(FILE_NAME_BODY, 1);
|
var FItem2 = global.BlockDB.OpenDBFile(FILE_NAME_BODY, true);
|
||||||
FItem2.size = 0
|
FItem2.size = 0
|
||||||
fs.ftruncateSync(FItem2.fd, FItem2.size)
|
fs.ftruncateSync(FItem2.fd, FItem2.size)
|
||||||
this.DBHeader100.Truncate(- 1)
|
this.DBHeader100.Truncate(- 1)
|
||||||
|
|
|
@ -13,17 +13,16 @@ import * as fs from 'fs'
|
||||||
import Db from './db'
|
import Db from './db'
|
||||||
|
|
||||||
export default class DBRow extends Db {
|
export default class DBRow extends Db {
|
||||||
FileName;
|
FileName: string;
|
||||||
DataSize;
|
DataSize: number;
|
||||||
Format;
|
Format: string;
|
||||||
WorkStruct;
|
WorkStruct: {};
|
||||||
FileNameFull;
|
FileNameFull: fs.PathLike;
|
||||||
LastHash;
|
LastHash: Buffer;
|
||||||
WasUpdate;
|
BufMap: { [x: string]: any; };
|
||||||
BufMap;
|
BufMapCount: number;
|
||||||
BufMapCount;
|
|
||||||
|
|
||||||
constructor(FileName, DataSize, Format, bReadOnly) {
|
constructor(FileName: string, DataSize: number, Format: string, bReadOnly: boolean) {
|
||||||
super()
|
super()
|
||||||
this.FileName = FileName
|
this.FileName = FileName
|
||||||
this.DataSize = DataSize
|
this.DataSize = DataSize
|
||||||
|
@ -55,7 +54,7 @@ export default class DBRow extends Db {
|
||||||
this.DeleteMap(Data.Num)
|
this.DeleteMap(Data.Num)
|
||||||
var BufWrite = global.BufLib.GetBufferFromObject(Data, this.Format, this.DataSize, this.WorkStruct, 1);
|
var BufWrite = global.BufLib.GetBufferFromObject(Data, this.Format, this.DataSize, this.WorkStruct, 1);
|
||||||
var Position = Data.Num * this.DataSize;
|
var Position = Data.Num * this.DataSize;
|
||||||
var FI = this.OpenDBFile(this.FileName, 1);
|
var FI = this.OpenDBFile(this.FileName, true);
|
||||||
var written = fs.writeSync(FI.fd, BufWrite, 0, BufWrite.length, Position);
|
var written = fs.writeSync(FI.fd, BufWrite, 0, BufWrite.length, Position);
|
||||||
if (written !== BufWrite.length) {
|
if (written !== BufWrite.length) {
|
||||||
global.TO_ERROR_LOG("DB-ROW", 10, "Error write to file:" + written + " <> " + BufWrite.length)
|
global.TO_ERROR_LOG("DB-ROW", 10, "Error write to file:" + written + " <> " + BufWrite.length)
|
||||||
|
@ -116,7 +115,7 @@ export default class DBRow extends Db {
|
||||||
var Position = (LastNum + 1) * this.DataSize;
|
var Position = (LastNum + 1) * this.DataSize;
|
||||||
if (Position < 0)
|
if (Position < 0)
|
||||||
Position = 0
|
Position = 0
|
||||||
var FI = this.OpenDBFile(this.FileName, 1);
|
var FI = this.OpenDBFile(this.FileName, true);
|
||||||
if (Position < FI.size) {
|
if (Position < FI.size) {
|
||||||
this.LastHash = undefined
|
this.LastHash = undefined
|
||||||
this.WasUpdate = 1
|
this.WasUpdate = 1
|
||||||
|
|
|
@ -14,8 +14,8 @@ import * as fs from 'fs'
|
||||||
export default class Db {
|
export default class Db {
|
||||||
DBMap;
|
DBMap;
|
||||||
LastHash;
|
LastHash;
|
||||||
WasUpdate;
|
WasUpdate: number;
|
||||||
WasCheckPathDB;
|
WasCheckPathDB: boolean;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.DBMap = {}
|
this.DBMap = {}
|
||||||
|
@ -24,7 +24,7 @@ export default class Db {
|
||||||
var Path = global.GetDataPath("DB");
|
var Path = global.GetDataPath("DB");
|
||||||
global.CheckCreateDir(Path)
|
global.CheckCreateDir(Path)
|
||||||
}
|
}
|
||||||
CloseDBFile(name, bdelete?) {
|
CloseDBFile(name: string, bdelete?: boolean) {
|
||||||
this.LastHash = undefined
|
this.LastHash = undefined
|
||||||
this.WasUpdate = 1
|
this.WasUpdate = 1
|
||||||
var Item = this.DBMap[name];
|
var Item = this.DBMap[name];
|
||||||
|
@ -47,7 +47,7 @@ export default class Db {
|
||||||
delete this.DBMap[name]
|
delete this.DBMap[name]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OpenDBFile(name, bWrite?, bExist?) {
|
OpenDBFile(name: string, bWrite?: boolean, bExist?: boolean) {
|
||||||
if (bWrite && global.READ_ONLY_DB) {
|
if (bWrite && global.READ_ONLY_DB) {
|
||||||
global.ToLogTrace("CANNOT WRITE - DB IN READ_ONLY MODE!!!")
|
global.ToLogTrace("CANNOT WRITE - DB IN READ_ONLY MODE!!!")
|
||||||
process.exit()
|
process.exit()
|
||||||
|
|
|
@ -178,7 +178,7 @@ export default class CMessages extends CSmartContract {
|
||||||
if (!Tr.ToAll)
|
if (!Tr.ToAll)
|
||||||
return;
|
return;
|
||||||
var CurTime = global.GetCurrentTime(0) - 0;
|
var CurTime = global.GetCurrentTime(0) - 0;
|
||||||
var Count;
|
var Count: number;
|
||||||
if (global.GrayConnect())
|
if (global.GrayConnect())
|
||||||
Count = Math.trunc(global.MAX_GRAY_CONNECTIONS_TO_SERVER / 2)
|
Count = Math.trunc(global.MAX_GRAY_CONNECTIONS_TO_SERVER / 2)
|
||||||
else
|
else
|
||||||
|
|
|
@ -100,6 +100,11 @@ export interface TeraJobTx {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TeraBlock {
|
export interface TeraBlock {
|
||||||
|
Hash2?: Buffer;
|
||||||
|
Hash1?: Buffer;
|
||||||
|
MinerName?: string;
|
||||||
|
Miner?: number;
|
||||||
|
Num?: number;
|
||||||
NodeNum?: number;
|
NodeNum?: number;
|
||||||
TransferNodesCount?: number;
|
TransferNodesCount?: number;
|
||||||
StartMining?: boolean;
|
StartMining?: boolean;
|
||||||
|
|
Loading…
Reference in New Issue