Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [Dev] Documenting Feathercoin Specific Software settings - Part 2

    Technical Development
    1
    40
    9697
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by wrapper

      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

      Add Implemented ACP and neoscrypt commit
      https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

      src/core.h

      ACP and neoscrypt commit

       +// Copyright (c) 2009-2013 The Bitcoin developers
      

      Bitcoin code replaced?

      +#include "neoscrypt.h"
      
      +#include "chainparams.h"
      
      +// DogeCoin aux chain ID = 0x0062 (98), Feathercoin unused
      

      Code additions

       -    {
       -        uint256 thash;
       -        scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(thash));
       -        return thash;
      

      Bitcoin code removed

       + 		/* Calculates block proof-of-work hash using either NeoScrypt or Scrypt */
       +     uint256 GetPoWHash() const {
       + 				//from 0.8.7 main.h
       + 				int nForkFour = 432000;
       + 				int nTestnetFork   =  600;
       + 				unsigned int nSwitchV2            = 1413936000; // Wed, 22 Oct 2014 00:00:00 GMT
       + 				unsigned int nTestnetSwitchV2     = 1406473140; // Sun, 27 Jul 2014 14:59:00 GMT
       +     	
       +         unsigned int profile = 0x0;
       +         uint256 hash;
       + 
       +         /* All blocks generated up to this time point are Scrypt only */
       +         if((TestNet() && (nTime < nTestnetSwitchV2)) ||
       +           (!TestNet() && (nTime < nSwitchV2))) {
       +             profile = 0x3;
       +         } else {
       +             /* All these blocks must be v2     +  with valid nHeight */
       +             int nHeight = GetBlockHeight();
       +             if(TestNet()) {
       +                 if(nHeight < nTestnetFork)
       +                   profile = 0x3;
       +             } else {
       +                 if(nHeight < nForkFour)
       +                   profile = 0x3;
       +             }
       +         }
       + 				
       + 				if (profile==0x0)
       + 					{
       + 						neoscrypt((unsigned char *) &nVersion, (unsigned char *) &hash, profile);
       + 					}
       + 				if (profile==0x3)
       + 					{
       +         		scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(hash));
       + 					}
       + 				//scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(hash));
       + 					
       +         return(hash);
       }
       }
       
       
       +     /* Extracts block height from v2     +  coin base;
       +      * ignores nVersion because it's unrealiable */
       +     int GetBlockHeight() const {
       +         /* Prevents a crash if called on a block header alone */
       +         if(vtx.size()) {
       +             /* Serialised CScript */
       +             std::vector<unsigned char>::const_iterator scriptsig = vtx[0].vin[0].scriptSig.begin();
       +             unsigned char i, scount = scriptsig[0];
       +             /* Optimise: nTime is 4 bytes always,
       +              * nHeight must be less for a long time;
       +              * check against a threshold when the time comes */
       +             if(scount < 4) {
       +                 int height = 0;
       +                 unsigned char *pheight = (unsigned char *) &height;
       +                 for(i = 0; i < scount; i     +      + )
       +                   pheight[i] = scriptsig[i      +  1];
       +                 /* v2     +  block with nHeight in coin base */
       +                 return(height);
       +             }
       +         }
       +         /* Not found */
       +         return(-1);
       +     }    
       +    
      

      Bitcoin code replaced.

       +    void print() const; 
      

      Position change?

      1 Reply Last reply Reply Quote 0
      • wrapper
        wrapper Moderators last edited by wrapper

        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

        Add Implemented ACP and neoscrypt commit
        https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

        src/db.cpp

        ACP and neoscrypt commit

         -    dbenv.set_lk_max_objects(40000);
        
         +    dbenv.set_lk_max_locks(200000);
        
         +    dbenv.set_lk_max_objects(200000); //from 0.8.7
        

        Bitcoin code replaced.

        1 Reply Last reply Reply Quote 0
        • wrapper
          wrapper Moderators last edited by wrapper

          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

          Add Implemented ACP and neoscrypt commit
          https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

          src/init.cpp

          ACP and neoscrypt commit. 2nd Commit

           + 
           + 		if (mapArgs.count("-checkpointkey")) // ppcoin: checkpoint master priv key
           + 		{
           + 			if (!SetCheckpointPrivKey(GetArg("-checkpointkey", "")))
           + 				return InitError(_("Unable to sign checkpoint, wrong checkpointkey?"));
           + 		}
           + 			
          

          Additional code checkpoints

           +        return InitError(_("Initialization sanity check failed. Feathercoin Core is shutting down."));
          

          Bitcoin code replaced.

          1 Reply Last reply Reply Quote 0
          • wrapper
            wrapper Moderators last edited by wrapper

            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

            Add Implemented ACP and neoscrypt commit
            https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

            src/m4/bitcoin_find_bdb51.m4

            ACP and neoscrypt commit. New file 66 lines.

            [FAQ] What is a .m4 file?

            m4 is a general-purpose macro processor included in all UNIX-like operating systems, and is a component of the POSIX standard.

            The language was designed by Brian Kernighan and Dennis Ritchie for the original versions of UNIX. It is an extension of an earlier macro processor m3, written by Ritchie for the AP-3 minicomputer.[1]

            The macro preprocessor operates as a text-replacement tool. It is employed to re-use text templates, typically in computer programming applications, but also in text editing and text-processing applications. Most users require m4 as a dependency of GNU autoconf.

            https://en.wikipedia.org/wiki/M4_(computer_language)

             + AC_DEFUN([BITCOIN_FIND_BDB51],[
             +   AC_MSG_CHECKING([for Berkeley DB C     +      +  headers])
             +   BDB_CPPFLAGS=
             +   BDB_LIBS=
             +   bdbpath=X
             +   bdb51path=X
             +   bdbdirlist=
             +   for _vn in 5.1 51 5 ''; do
             +     for _pfx in b lib ''; do
             +       bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
             +     done
             +   done
             +   for searchpath in $bdbdirlist ''; do
            

            Start of Additional code

            1 Reply Last reply Reply Quote 0
            • wrapper
              wrapper Moderators last edited by wrapper

              Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

              Add Implemented ACP and neoscrypt commit
              https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

              src/m4/bitcoin_qt.m4

              ACP and neoscrypt commit.

                + AC_MSG_WARN([$1; feathercoin-qt frontend will not be built])
              
               +  AC_MSG_CHECKING(whether to build Feathercoin Core GUI)
              

              Name changes to feathercoin

              1 Reply Last reply Reply Quote 0
              • wrapper
                wrapper Moderators last edited by wrapper

                Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                Add Implemented ACP and neoscrypt commit
                https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                src/main.cpp

                ACP and neoscrypt commit. 2nd commit

                 +#include "checkpointsync.h"
                
                 +unsigned int nTransactionsUpdated = 0;
                 +
                 +int nBaseMaturity = BASE_MATURITY;
                
                 + int nBestHeight = -1;
                 + uint256 nBestChainWork = 0;
                 + uint256 nBestInvalidWork = 0;
                 + uint256 hashBestChain = 0;
                 + CBlockIndex* pindexBest = NULL;
                

                Additional code

                  -// The 1st hard fork
                  -const int nForkOne = 33000;
                  -// The 2nd hard fork
                  -const int nForkTwo = 87948;
                  -// The 3rd hard fork
                  -const int nForkThree = 204639;
                

                Bitcoin fork code removed

                 + static CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); // Feathercoin: starting difficulty is 1 / 2^12
                 + /* The difficulty after switching to NeoScrypt (0.015625) */
                 + static CBigNum bnNeoScryptSwitch(~uint256(0) >> 26);
                 + 
                 + 
                

                Bitcoin code replaced with Neoscrypt code.

                +map<uint256, CBlock*> mapOrphanBlocksA;
                +
                
                 +static CBlockIndex* pblockindexFBBHLast;
                

                Added code

                  +   if(nHeight >= nForkThree || (TestNet()))
                

                Bitcoin fork code replaced

                 -    // Subsidy is cut in half every 2100000 blocks, which will occur approximately every 4 years
                
                • nSubsidy >>= (nHeight / 1799985); // 200,010 blocks at 200FTC and 1,599,975 at 80FTC
                +    // Halving subsidy happens every 2,100,000 blocks. The code below takes account for the
                +    // fact that the first 204,639 blocks took 2.5 minutes and after changed to 1 minute.
                 +    nSubsidy >>= (nHeight + 306960) / 2100000;
                

                Bitcoin code replaced

                   +    return nSubsidy + nFees;
                

                Code moved

                   +// Feathercoin: eHRC at 3rd hard fork
                

                FTC code updated

                 +     /* The 4th hard fork and testnet hard fork */
                 +     if((nHeight >= nForkFour) || (TestNet && (nHeight >= nTestnetFork))) {
                 +         if(!fNeoScrypt) fNeoScrypt = true;
                 +         /* Difficulty reset after the switch */
                 +         if((nHeight == nForkFour) || (TestNet() && (nHeight == nTestnetFork)))
                 +           return(bnNeoScryptSwitch.GetCompact());
                 +     }
                 +         
                

                Fork included

                 -    if (TestNet()) fHardFork = false;
                

                Bitcoin code removed

                 +     bool fHardFork = (nHeight == nForkOne) || (nHeight == nForkTwo) || (nHeight == nForkThree) || (nHeight == nForkFour);
                 +     if(TestNet()) {
                 +         if (nHeight == nTestnetFork) {
                 +             fHardFork = true;
                 +         } else {
                 +             fHardFork = false;
                 +         }
                 +     }    	
                

                Code Added

                  +     // Additional averaging over 4x nInterval window
                 +     if((nHeight >= nForkTwo) && (nHeight < nForkThree)) {
                 +         nInterval *= 4;
                 + 
                 +         const CBlockIndex* pindexFirst = pindexLast;
                 +         for(int i = 0; pindexFirst && i < nInterval; i     +      + )
                 +           pindexFirst = pindexFirst->pprev;
                 + 
                 +         int nActualTimespanLong =
                 +           (pindexLast->GetBlockTime() - pindexFirst->GetBlockTime())/4;
                 + 
                 +         // Average between short and long windows
                 +         int nActualTimespanAvg = (nActualTimespan      +  nActualTimespanLong)/2;
                 + 
                 +         // Apply .25 damping
                 +         nActualTimespan = nActualTimespanAvg      +  3*nTargetTimespan;
                 +         nActualTimespan /= 4;
                 + 
                 +         LogPrintf("RETARGET: nActualTimespanLong = %d, nActualTimeSpanAvg = %d, nActualTimespan (damped) = %d\n",
                 +           nActualTimespanLong, nActualTimespanAvg, nActualTimespan);
                 +     }
                 +   
                

                Code added

                 +    LogPrintf("pindex->GetBlockHash()=%s \n",pindex->GetBlockHash().ToString());
                +    LogPrintf("view.GetBestBlock()=%s \n",view.GetBestBlock().ToString());
                

                Code added

                 +     LogPrintf("ConnectBlock hashPrevBlock=%s \n",hashPrevBlock.ToString());
                 +     LogPrintf("ConnectBlock view.GetBestBlock()=%s \n",view.GetBestBlock().ToString());
                 +     
                

                Code added

                 +     
                 +     if (!IsSyncCheckpointEnforced()) // checkpoint advisory mode    
                 +     {
                 +     	if (pindexBest->pprev && !CheckSyncCheckpoint(pindexBest->GetBlockHash(), pindexBest->pprev))
                 +     		strCheckpointWarning = _("Warning: checkpoint on different blockchain fork, contact developers to resolve the issue");
                 +     	else
                 +     		strCheckpointWarning = "";
                 +     }
                  }
                  }
                

                Checkpointing code added

                 + //0.8.7 ACP code have some problem in 0.9.3,so I delete them. 
                 + bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
                 + {
                 +     return true;
                 + }
                 + 
                

                Checkpointing code added

                 +                              
                 +         // ppcoin: check that the block satisfies synchronized checkpoint
                 +         // checkpoint advisory mode
                 +         if (!IsSyncCheckpointEnforced() && !CheckSyncCheckpoint(hash, pindexPrev))
                 +         	return error("checkpoint AcceptBlock() : rejected by synchronized checkpoint");
                

                Checkpointing code

                +    
                +    // ppcoin: check pending sync-checkpoint
                +    AcceptPendingSyncCheckpoint();
                

                Checkpointing code

                 +    
                 +    // ppcoin: ask for pending sync-checkpoint if any
                 +    if (!IsInitialBlockDownload())
                 +    	AskForPendingSyncCheckpoint(pfrom);
                

                Checkpointing code

                  +     
                 +     // ppcoin: if responsible for sync-checkpoint send it
                 +     if (pfrom && !CSyncCheckpoint::strMasterPrivKey.empty() &&
                 +     	(int)GetArg("-checkpointdepth", -1) >= 0)
                 +     	SendSyncCheckpoint(AutoSelectSyncCheckpoint());
                 +     
                

                Checkpointing code

                 +         
                 +     // ppcoin: load hashSyncCheckpoint
                 +     if (!pblocktree->ReadSyncCheckpoint(hashSyncCheckpoint))
                 +     	 LogPrintf("LoadBlockIndexDB(): synchronized checkpoint not read\n");
                 +     else
                 +     	 LogPrintf("LoadBlockIndexDB(): synchronized checkpoint %s\n", hashSyncCheckpoint.ToString().c_str());
                

                Checkpointing code

                 +                 
                 +             // ppcoin: initialize synchronized checkpoint
                 +             if (!WriteSyncCheckpoint(Params().HashGenesisBlock()))
                 +             	return error("LoadBlockIndex() : failed to init sync checkpoint");
                

                Checkpointing code

                 +     // ppcoin: if checkpoint master key changed must reset sync-checkpoint
                 +     if (!CheckCheckpointPubKey())
                 +     	return error("LoadBlockIndex() : failed to reset checkpoint master pubkey");
                

                Checkpointing code

                 +     // Checkpoint warning
                 +     if (strCheckpointWarning != "")
                 +     {
                 +     	nPriority = 900;
                 +     	strStatusBar = strCheckpointWarning;
                 +     }
                

                Checkpointing code

                 +     
                 +     // ppcoin: if detected invalid checkpoint enter safe mode
                 +     if (hashInvalidCheckpoint != 0)
                 +     {
                 +     		nPriority = 3000;
                 +     		strStatusBar = strRPC = _("WARNING: Inconsistent checkpoint found! Stop enforcing checkpoints and notify developers to resolve the issue.");
                 +     }
                

                Checkpointing

                 +         
                 +         // ppcoin: relay sync-checkpoint
                 +         {
                 +             LOCK(cs_hashSyncCheckpoint);
                 +             if (!checkpointMessage.IsNull())
                 +                 checkpointMessage.RelayTo(pfrom);
                 +         }
                

                Checkpointing

                 +         
                 +         // ppcoin: ask for pending sync-checkpoint if any
                 +         if (!IsInitialBlockDownload())
                 +         	AskForPendingSyncCheckpoint(pfrom);
                

                Checkpointing

                 +     else if (strCommand == "checkpoint") // ppcoin synchronized checkpoint
                 +     {
                 +         CSyncCheckpoint checkpoint;
                 +         vRecv >> checkpoint;
                 + 
                 +         if (checkpoint.ProcessSyncCheckpoint(pfrom))
                 +         {
                 +             // Relay
                 +             pfrom->hashCheckpointKnown = checkpoint.hashCheckpoint;
                 +             LOCK(cs_vNodes);
                 +             BOOST_FOREACH(CNode* pnode, vNodes)
                 +                 checkpoint.RelayTo(pnode);
                 +         }
                 +     }
                

                Checkpointing

                1 Reply Last reply Reply Quote 0
                • wrapper
                  wrapper Moderators last edited by wrapper

                  Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                  Add Implemented ACP and neoscrypt commit
                  https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                  src/main.h

                  ACP and neoscrypt commit. 2nd commit

                   +#include "neoscrypt.h"
                  
                   + /* Maturity threshold for PoW base transactions, in blocks (confirmations) */
                   + extern int nBaseMaturity;
                   + static const int BASE_MATURITY = 100;
                   + 
                  

                  Additional code

                   + // The 1st hard fork
                   + const int nForkOne = 33000;
                   + // The 2nd hard fork
                   + const int nForkTwo = 87948;
                   + // The 3rd hard fork
                   + const int nForkThree = 204639;
                   + // The 4th hard fork
                   + const int nForkFour = 432000;
                   + 
                   + static const int nTestnetFork   =  600;
                   + 
                   + static const unsigned int nSwitchV2            = 1413936000; // Wed, 22 Oct 2014 00:00:00 GMT
                   + static const unsigned int nTestnetSwitchV2     = 1406473140; // Sun, 27 Jul 2014 14:59:00 GMT
                   + 
                   + 
                  

                  Additional code

                   + extern int nBestHeight;
                   + extern uint256 nBestChainWork;
                   + extern uint256 nBestInvalidWork;
                   + extern uint256 hashBestChain;
                   + extern CBlockIndex* pindexBest;
                   + extern unsigned int nTransactionsUpdated;
                  
                   +extern std::map<uint256, CBlock*> mapOrphanBlocksA;  //for checkpointsync.cpp
                  

                  Additional code

                    +/** Connect/disconnect blocks until pindexNew is the new tip of the active block chain */
                   +bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew);
                  

                  Additional code

                   +    // (memory only) pointer to the index of the *active* successor of this block
                   +    CBlockIndex* pnext;
                   +
                  

                  Additional code

                   +        pnext = NULL;
                  
                   +        pnext = NULL;
                  
                   +     
                   +     bool IsInMainChain() const
                   +     {
                   +         return (pnext || this == pindexBest);
                   +     }
                  

                  Additional code

                  1 Reply Last reply Reply Quote 0
                  • wrapper
                    wrapper Moderators last edited by

                    Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                    Add Implemented ACP and neoscrypt commit
                    https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                    src/miner.cpp

                    ACP and neoscrypt commit.

                     + unsigned int profile = fNeoScrypt ? 0x0 : 0x3;
                    

                    Additional code

                       -    char scratchpad[SCRYPT_SCRATCHPAD_SIZE];
                    

                    Bitcoin code removed

                      -                scrypt_1024_1_1_256_sp(BEGIN(pblock->nVersion), BEGIN(thash), scratchpad);
                    

                    Bitcoin code replaced

                     +                //scrypt_1024_1_1_256_sp(BEGIN(pblock->nVersion), BEGIN(thash), scratchpad);
                     +                neoscrypt((unsigned char *) &pblock->nVersion, (unsigned char *) &hash, profile);
                    

                    Bitcoin code replaced

                    1 Reply Last reply Reply Quote 0
                    • wrapper
                      wrapper Moderators last edited by wrapper

                      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                      Add Implemented ACP and neoscrypt commit
                      https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                      src/neoscrypt.c

                      ACP and neoscrypt commit. Large New file

                       /*
                       * Copyright (c) 2009 Colin Percival, 2011 ArtForz
                       * Copyright (c) 2012 Andrew Moon (floodyberry)
                       * Copyright (c) 2012 Samuel Neves <[email protected]>
                       * Copyright (c) 2014 John Doering <[email protected]>
                       * All rights reserved.
                      
                       #include <stdlib.h>
                       #include <stdint.h>
                       #include <string.h>
                      
                       #include "neoscrypt.h"
                      

                      Start of neoscrypt code

                      1 Reply Last reply Reply Quote 0
                      • wrapper
                        wrapper Moderators last edited by wrapper

                        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                        Add Implemented ACP and neoscrypt commit
                        https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                        src/neoscrypt.h

                        ACP and neoscrypt commit. Large New file

                         + #if (__cplusplus)
                         + extern "C" {
                         + #endif
                         + 
                         + void neoscrypt(const unsigned char *input, unsigned char *output, unsigned int profile);
                         + 
                         + #if (__cplusplus)
                         + }
                         + #else
                         + 
                         + #define SCRYPT_BLOCK_SIZE 64
                         + #define SCRYPT_HASH_BLOCK_SIZE 64
                         + #define SCRYPT_HASH_DIGEST_SIZE 32
                         + 
                         + typedef uint8_t hash_digest[SCRYPT_HASH_DIGEST_SIZE];
                        

                        Start of new code.

                        1 Reply Last reply Reply Quote 0
                        • wrapper
                          wrapper Moderators last edited by wrapper

                          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                          Add Implemented ACP and neoscrypt commit
                          https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                          src/neoscrypt_asm.S

                          ACP and neoscrypt commit. Large New file

                            #if (ASM) && (__x86_64__)
                          
                           /* neoscrypt_blkcpy(dst, src, len) = SSE2 based block memcpy();
                            * len must be a multiple of 64 bytes aligned properly */
                           .globl neoscrypt_blkcpy
                           neoscrypt_blkcpy:
                           #if (WIN64)
                              movq	%rdi, %r10
                             movq	%rsi, %r11
                             movq	%rcx, %rdi
                                movq	%rdx, %rsi
                                movq	%r8, %rdx
                           #endif
                          

                          Start of code full file. 735 lines

                          1 Reply Last reply Reply Quote 0
                          • wrapper
                            wrapper Moderators last edited by

                            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                            Add Implemented ACP and neoscrypt commit
                            https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                            src/net.cpp

                            ACP and neoscrypt commit.

                             + void CNode::PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd)
                             + { 
                             +     // main.h:PushGetBlocks(CNode* pnode, CBlockIndex* pindexBegin, uint256 hashEnd);
                             +     // Filter out duplicate requests
                             +     /*if (pindexBegin == pindexLastGetBlocksBegin && hashEnd == hashLastGetBlocksEnd)
                             +         return;
                             +     pindexLastGetBlocksBegin = pindexBegin;
                             +     hashLastGetBlocksEnd = hashEnd;
                             + 		
                             +     PushMessage("getblocks", CBlockLocator(pindexBegin), hashEnd);*/ //'CBlockIndex*' to 'const CBlockLocator&' 
                             + }
                             + 
                            

                            pindex code addition

                             +    for (int nHost = 1; nHost <= 2; nHost++)
                            

                            Bitcoin Code replaced (seen this before?)

                             +         else if (nHost == 2)
                             +         {
                             +             addrConnect = CService("74.208.43.192", 80); // www.showmyip.com
                             + 
                             +             if (nLookup == 1)
                             +             {
                             +                 CService addrIP("www.showmyip.com", 80, true);
                             +                 if (addrIP.IsValid())
                             +                     addrConnect = addrIP;
                             +             }
                             + 
                             +             pszGet = "GET /simple/ HTTP/1.1\r\n"
                             +                      "Host: www.showmyip.com\r\n"
                             +                      "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)\r\n"
                             +                      "Connection: close\r\n"
                             +                      "\r\n";
                             + 
                             +             pszKeyword = NULL; // Returns just IP address
                             +         }
                            

                            Needs review. ACP site?

                            1 Reply Last reply Reply Quote 0
                            • wrapper
                              wrapper Moderators last edited by wrapper

                              Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                              Add Implemented ACP and neoscrypt commit
                              https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                              src/net.h

                              ACP and neoscrypt commit.

                              + /** The maximum number of entries in mapAskFor */
                              + static const size_t MAPASKFOR_MAX_SZ = MAX_INV_SZ;
                              

                              Additional code

                               + struct LocalServiceInfo {
                               +     int nScore;
                               +     int nPort;
                               + };
                               + 
                               + extern CCriticalSection cs_mapLocalHost;
                               + extern map<CNetAddr, LocalServiceInfo> mapLocalHost;
                              

                              Additional code

                               -    std::set<CAddress> setAddrKnown;
                               +    mruset<CAddress> setAddrKnown;
                              

                              Bitcoin code replaced

                               +    uint256 hashCheckpointKnown; //ppcoin: known sent sync-checkpoint
                              

                              Additional checkpoint code

                                -    CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, INIT_PROTO_VERSION)
                                +    CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, INIT_PROTO_VERSION), setAddrKnown(5000)
                              

                              Bitcoin code replaced

                               +    if (mapAskFor.size() > MAPASKFOR_MAX_SZ)
                               +        return;
                              +
                              
                               +		
                               +	  void PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd);
                              

                              Additional code

                              1 Reply Last reply Reply Quote 0
                              • wrapper
                                wrapper Moderators last edited by

                                Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                Add Implemented ACP and neoscrypt commit
                                https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                src/qt/Makefile.am

                                ACP and neoscrypt commit.

                                 +  forms/transactiondescdialog.ui \
                                 +  forms/merchantlist.ui
                                

                                BBitcoin code replaced, new line.

                                 +  moc_walletview.cpp \
                                 +  moc_reportview.cpp \
                                 +  moc_merchantlist.cpp
                                

                                Directory positioning changed? Additional code

                                 +  merchantlist.moc \
                                

                                Additional code

                                 +  winshutdownmonitor.h \
                                 +  reportview.h \
                                 +  merchantlist.h
                                

                                Directory positioning changed? Additional code

                                 +   res/icons/tx_mined.png \
                                 +   res/icons/merchantList.png \
                                 +   res/icons/openurl.png \
                                 +   res/icons/account-report.png
                                

                                Directory positioning changed? Additional code

                                 +   walletview.cpp \
                                 +   reportview.cpp \
                                 +   merchantlist.cpp
                                

                                Directory positioning changed? Additional code

                                 +   res/images/splash_testnet.png \
                                 +   res/images/LOGO.png \
                                 +   res/images/mainbg.png \
                                 +   res/images/about_bitcoin.png \
                                 +   res/images/about.png \
                                 +   res/images/feathercoinmap.png \
                                 +   res/images/bitcoinbazaar.co.uk.png \
                                 +   res/images/pockio.png \
                                 +   res/images/btc-e.png \
                                 +   res/images/bter.png \
                                 +   res/images/cm.png \
                                 +   res/images/cryptsy.png \
                                 +   res/images/ct.png \
                                 +   res/images/mc.png
                                

                                Bitcoin Directory positioning changed? Additional code

                                1 Reply Last reply Reply Quote 0
                                • wrapper
                                  wrapper Moderators last edited by wrapper

                                  Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                  Add Implemented ACP and neoscrypt commit
                                  https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                  src/rpcserver.cpp

                                  ACP and neoscrypt commit.

                                   +    if (dAmount <= 0.0 || dAmount > 21000000*16)
                                  

                                  Bitcoin code replaced

                                   +     /* Wallet-ACP */
                                   +     { "getcheckpoint",          &getcheckpoint,          true,      false,      true },
                                   +     { "sendcheckpoint",         &sendcheckpoint,         true,      false,      true },
                                   +     { "enforcecheckpoint",      &enforcecheckpoint,      true,      false,      true },
                                  

                                  Additional code checkpoints

                                  1 Reply Last reply Reply Quote 0
                                  • wrapper
                                    wrapper Moderators last edited by

                                    Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                    Add Implemented ACP and neoscrypt commit
                                    https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                    src/rpcserver.h

                                    ACP and neoscrypt commit.

                                    + extern json_spirit::Value getcheckpoint(const json_spirit::Array& params, bool fHelp); // in checkpointsync.cpp
                                    + extern json_spirit::Value sendcheckpoint(const json_spirit::Array& params, bool fHelp);
                                    + extern json_spirit::Value enforcecheckpoint(const json_spirit::Array& params, bool fHelp);
                                    

                                    Add checkpoint code

                                     + extern json_spirit::Value getblockchaininfo(const json_spirit::Array& params, bool fHelp);
                                     + extern json_spirit::Value getnetworkinfo(const json_spirit::Array& params, bool fHelp);
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • wrapper
                                      wrapper Moderators last edited by wrapper

                                      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                      Add Implemented ACP and neoscrypt commit
                                      https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                      src/txdb.cpp

                                      ACP and neoscrypt commit.

                                       +  return error("%s : Deserialize or I/O error - %s", __func__, e.what());
                                      

                                      Bitcoin code replaced

                                       +  return error("%s : Deserialize or I/O error - %s", __func__, e.what());
                                      

                                      Bitcoin code replaced

                                       + 
                                       + bool CBlockTreeDB::ReadSyncCheckpoint(uint256& hashCheckpoint)
                                       + {
                                       +     return Read(string("hashSyncCheckpoint"), hashCheckpoint);
                                       + }
                                       + 
                                       + bool CBlockTreeDB::WriteSyncCheckpoint(uint256 hashCheckpoint)
                                       + {
                                       +     return Write(string("hashSyncCheckpoint"), hashCheckpoint);
                                       + }
                                       + 
                                       + bool CBlockTreeDB::ReadCheckpointPubKey(string& strPubKey)
                                       + {
                                       +     return Read(string("strCheckpointPubKey"), strPubKey);
                                       + }
                                       + 
                                       + bool CBlockTreeDB::WriteCheckpointPubKey(const string& strPubKey)
                                       + {
                                       +     return Write(string("strCheckpointPubKey"), strPubKey);
                                       + } 
                                      

                                      Additional checkpoint code.

                                      1 Reply Last reply Reply Quote 0
                                      • wrapper
                                        wrapper Moderators last edited by wrapper

                                        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                        Add Implemented ACP and neoscrypt commit
                                        https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                        src/txdb.h

                                        ACP and neoscrypt commit.

                                         + 
                                         +     // ppcoin sync checkpoint related data
                                         +     bool ReadSyncCheckpoint(uint256& hashCheckpoint);
                                         +     bool WriteSyncCheckpoint(uint256 hashCheckpoint);
                                         +     bool ReadCheckpointPubKey(std::string& strPubKey);
                                         +     bool WriteCheckpointPubKey(const std::string& strPubKey);
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • wrapper
                                          wrapper Moderators last edited by wrapper

                                          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                          Add Implemented ACP and neoscrypt commit
                                          https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                          src/uint256.h

                                          ACP and neoscrypt commit.

                                          + typedef long long  int64;
                                          + typedef unsigned long long  uint64;
                                          +
                                          

                                          Additional variables.

                                          1 Reply Last reply Reply Quote 0
                                          • wrapper
                                            wrapper Moderators last edited by

                                            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                            Add Implemented ACP and neoscrypt commit
                                            https://github.com/FeatherCoin/Feathercoin/commit/c8ca4c906144910c62acd34e23a4ed624c0fbf7d

                                            src/util.cpp

                                            ACP and neoscrypt commit.

                                               +bool fNeoScrypt = false;
                                            

                                            Addition neoscrypt variable.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post