Browse Source

Update PascalCoin core with AbstractMem v1.4

PascalCoin 3 years ago
parent
commit
c85522c6ab

+ 1 - 0
src/core/UAccounts.pas

@@ -4196,6 +4196,7 @@ begin
   end;
 end;
 
+
 class function TPCSafeBox.ValidAccountName(const new_name: TRawBytes; var errors : String): Boolean;
   { Note:
     This function is case senstive, and only lower case chars are valid.

+ 2 - 2
src/core/UNetProtocol.pas

@@ -3405,7 +3405,7 @@ var responseStream, accountsStream : TMemoryStream;
   pubKey : TAccountKey;
   sbakl : TSafeboxPubKeysAndAccounts;
   ocl : TAccountsNumbersList;
-  LAccountsList : TList<Integer>;
+  LAccountsList : TList<Int64>;
 begin
   {
   This call is used to obtain Accounts used by a Public key
@@ -3452,7 +3452,7 @@ begin
     if Assigned(sbakl) then begin
       ocl := sbakl.GetAccountsUsingThisKey(pubKey);
       if Assigned(ocl) then begin
-        LAccountsList := TList<Integer>.Create;
+        LAccountsList := TList<Int64>.Create;
         try
           ocl.FillList(start,max,LAccountsList);
           for i := 0 to LaccountsList.Count-1 do begin

+ 1 - 1
src/core/UNode.pas

@@ -801,7 +801,7 @@ function TNode.TryFindPublicSaleAccount(AMaximumPrice: Int64; APreventRaceCondit
   // Finds an account at or below argument purchase price (or returns false)
   // APreventRaceCondition: When True will return a random account in valid range price
   // Limitations: Account must be >0
-var LtempAccNumber : Integer;
+var LtempAccNumber : Int64;
   LLastValidAccount, LCurrAccount : TAccount;
   LContinueSearching : Boolean;
 begin

+ 1 - 1
src/core/UPCAbstractMem.pas

@@ -503,7 +503,7 @@ begin
 
   FCheckingThread := Nil;
   FLockAbstractMem := TPCCriticalSection.Create(Self.ClassName);
-  FAccountCache := TAccountCache.Create(10000,_AccountCache_Comparision);
+  FAccountCache := TAccountCache.Create(50000,_AccountCache_Comparision);
   FSavingNewSafeboxMode := False;
 
   FAggregatedHashrate := TBigNum.Create(0);

+ 3 - 3
src/core/UPCAbstractMemAccountKeys.pas

@@ -10,7 +10,7 @@ uses Classes, SysUtils,
   SyncObjs,
   UAbstractMem, UFileMem, UAbstractMemTList,
   UAbstractBTree, UAbstractAVLTree,
-  UPCDataTypes, UBaseTypes, UAVLCache, UAbstractMemBTree,
+  UPCDataTypes, UBaseTypes, UAVLCache, UAbstractMemBTree, UOrderedList,
   {$IFNDEF FPC}System.Generics.Collections,System.Generics.Defaults{$ELSE}Generics.Collections,Generics.Defaults{$ENDIF};
 
 type
@@ -262,7 +262,7 @@ end;
 procedure TPCAbstractMemAccountKeys.GetAccountsUsingKey(
   const AAccountKey: TAccountKey; const AList: TList<Cardinal>);
 var Lautk : TAccountsUsingThisKey;
-  i : Integer;
+  i : TAbstractMemPosition;
 begin
   AList.Clear;
   FAccountKeysLock.Acquire;
@@ -539,7 +539,7 @@ begin
 end;
 
 function TAccountsUsingThisKey.Get(Index: Integer): Cardinal;
-var i : Integer;
+var i : TAbstractMemPosition;
 begin
   if Not FindIndex(Index,i) then raise Exception.Create(Format('Accounts using this key index %d not found',[Index]));
   Result := i;

+ 1 - 1
src/core/UPCAbstractMemAccounts.pas

@@ -38,7 +38,7 @@ type
 
 implementation
 
-uses UAccounts;
+uses UAccounts, UOrderedList;
 
 { TPCAbstractMemListAccounts }
 

+ 10 - 4
src/core/UPCAccountsOrdenations.pas

@@ -28,7 +28,7 @@ uses Classes, SysUtils,
   UAbstractMem,
   UAbstractMemBTree,
   UAbstractBTree,
-  UPCDataTypes, UBaseTypes,
+  UPCDataTypes, UBaseTypes, UOrderedList,
   {$IFNDEF FPC}System.Generics.Collections,System.Generics.Defaults{$ELSE}Generics.Collections,Generics.Defaults{$ENDIF};
 
 type
@@ -41,7 +41,7 @@ type
       TAccounstByUpdatedBlockBTree = Class({$IFDEF USE_ABSTRACTMEM}TAbstractMemBTree{$ELSE}TMemoryBTree<Integer>{$ENDIF})
       protected
         FCallReturnAccount : TCallReturnAccount;
-        FSearching_AccountNumber : Integer;
+        FSearching_AccountNumber : Int64;
         FSearching_UpdatedBlock : Integer;
         function DoCompareData(const ALeftData, ARightData: TAbstractMemPosition): Integer; override;
       public
@@ -105,22 +105,28 @@ begin
 end;
 
 function TAccountsOrderedByUpdatedBlock.First(var AAccountNumber : Integer) : Boolean;
+var i : Int64;
 begin
   FBTree.Lock;
   Try
     FBTree.FSearching_AccountNumber := -1;
-    Result := FBTree.FindLowest(AAccountNumber);
+    i := AAccountNumber;
+    Result := FBTree.FindLowest(i);
+    AAccountNumber := i;
   Finally
     FBTree.Unlock;
   End;
 end;
 
 function TAccountsOrderedByUpdatedBlock.Next(var AAccountNumber : Integer): Boolean;
+var i : Int64;
 begin
   FBTree.Lock;
   Try
     FBTree.FSearching_AccountNumber := -1;
-    Result := FBTree.FindSuccessor(AAccountNumber,AAccountNumber);
+    i := AAccountNumber;
+    Result := FBTree.FindSuccessor(i,i);
+    AAccountNumber := i;
   Finally
     FBTree.Unlock;
   End;

+ 2 - 3
src/core/UPCRPCFileUtils.pas

@@ -86,7 +86,7 @@ class function TRPCFileUtils.AbstractMemStats(const ASender: TRPCProcess;
   const AMethodName: String; AInputParams, AJSONResponse: TPCJSONObject;
   var AErrorNum: Integer; var AErrorDesc: String): Boolean;
 var LStrings, LReport : TStrings;
-   LTotalUsedSize, LTotalUsedBlocksCount, LTotalLeaksSize, LTotalLeaksBlocksCount : Integer;
+   LTotalUsedSize, LTotalUsedBlocksCount, LTotalLeaksSize, LTotalLeaksBlocksCount : Int64;
    i, nMax : Integer;
    Lobj : TPCJSONObject;
    Larray : TPCJSONArray;
@@ -101,7 +101,7 @@ begin
     if AInputParams.GetAsVariant('report').AsBoolean(False) then LReport := LStrings
     else LReport := Nil;
     Lobj := AJSONResponse.GetAsObject('result').GetAsObject('abstractmem');
-    if TNode.Node.Bank.SafeBox.PCAbstractMem.AbstractMem.CheckConsistency(LReport, Nil, LTotalUsedSize, LTotalUsedBlocksCount, LTotalLeaksSize, LTotalLeaksBlocksCount) then begin
+    if TNode.Node.Bank.SafeBox.PCAbstractMem.AbstractMem.CheckConsistency(LReport,Nil, LTotalUsedSize, LTotalUsedBlocksCount, LTotalLeaksSize, LTotalLeaksBlocksCount) then begin
       Lobj.GetAsVariant('checkconsistency').Value := True;
     end else begin
       Lobj.GetAsVariant('checkconsistency').Value := False;
@@ -121,7 +121,6 @@ begin
         dec(nMax);
       end;
     end;
-
     Result := True;
   Finally
     LStrings.Free;

+ 2 - 2
src/core/UPCRPCFindAccounts.pas

@@ -152,7 +152,7 @@ var
   LAccPubKey : TAccountKey;
   LOutput : TPCJSONArray;
   LStartsWith : TOrderedRawList;
-  LAccountsList : TList<Integer>;
+  LAccountsList : TList<Int64>;
 begin
   // Get Parameters
   Result := False;
@@ -279,7 +279,7 @@ begin
   end else begin
     // Search by type-forSale-balance
     if (LSearchByPubkey) then begin
-      LAccountsList := TList<Integer>.Create;
+      LAccountsList := TList<Int64>.Create;
       try
         LAccountsNumbersList.FillList(LStart,LEnd-LStart+1,LAccountsList);
         for i := 0 to LAccountsList.Count-1 do begin

+ 5 - 5
src/core/URPC.pas

@@ -2991,7 +2991,7 @@ Var c,c2,c3 : Cardinal;
   jsonarr : TPCJSONArray;
   jso : TPCJSONObject;
   LRPCProcessMethod : TRPCProcessMethod;
-  LAccountsList : TList<Integer>;
+  LAccountsList : TList<Int64>;
 begin
   _ro := Nil;
   _ra := Nil;
@@ -3053,7 +3053,7 @@ begin
       Lanl := _RPCServer.WalletKeys.AccountsKeyList.AccountKeyList[i];
       k := params.AsInteger('max',100);
       l := params.AsInteger('start',0);
-      LAccountsList := TList<Integer>.Create;
+      LAccountsList := TList<Int64>.Create;
       Try
         Lanl.FillList(l,k,LAccountsList);
         for j := 0 to LAccountsList.Count - 1 do begin
@@ -3070,7 +3070,7 @@ begin
       c := 0;
       for i:=0 to _RPCServer.WalletKeys.AccountsKeyList.Count-1 do begin
         Lanl := _RPCServer.WalletKeys.AccountsKeyList.AccountKeyList[i];
-        LAccountsList := TList<Integer>.Create;
+        LAccountsList := TList<Int64>.Create;
         Try
           Lanl.FillList(0,Lanl.Count,LAccountsList);
           for j := 0 to LAccountsList.Count - 1 do begin
@@ -3140,7 +3140,7 @@ begin
       Lanl := _RPCServer.WalletKeys.AccountsKeyList.AccountKeyList[i];
       account.balance := 0;
 
-      LAccountsList := TList<Integer>.Create;
+      LAccountsList := TList<Int64>.Create;
       Try
         Lanl.FillList(0,Lanl.Count,LAccountsList);
         for j := 0 to LAccountsList.Count - 1 do begin
@@ -3159,7 +3159,7 @@ begin
       for i:=0 to _RPCServer.WalletKeys.AccountsKeyList.Count-1 do begin
         Lanl := _RPCServer.WalletKeys.AccountsKeyList.AccountKeyList[i];
 
-        LAccountsList := TList<Integer>.Create;
+        LAccountsList := TList<Int64>.Create;
         Try
           Lanl.FillList(0,Lanl.Count,LAccountsList);
           for j := 0 to LAccountsList.Count - 1 do begin