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.*

      FTC reports, ACP and Neoscrypt commits

      https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

      src/qt/bitcoingui.h

      Add MerchantListView FTC reports commit

      + // Copyright (c) 2013-2014 The Feathercoin developers
      

      Copyright update

      +   QAction *merchantListAction;
      
      +    /** Switch to merchant list page */
      +    void gotoMerchantListPage();
      +        
         /** Show open dialog */
      

      Additional code for merchant list

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

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

        https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

        src/qt/feathercoin.qrc

        Add MerchantListView FTC reports commit

        Note : 2nd commit?

         +        <file alias="merchantList">res/icons/merchantList.png</file>
        
         +  <file alias="merchant_map">res/images/feathercoinmap.png</file>
         +  <file alias="merchant_e">res/images/btc-e.png</file>
         +  <file alias="merchant_c">res/images/cryptsy.png</file>
         +  <file alias="merchant_bter">res/images/bter.png</file>
         +  <file alias="merchant_ct">res/images/ct.png</file>
         +  <file alias="merchant_cm">res/images/cm.png</file>
         +  <file alias="merchant_mc">res/images/mc.png</file>
         +  <file alias="merchant_bitcoinbazaar">res/images/bitcoinbazaar.co.uk.png</file>
         +  <file alias="merchant_pockio">res/images/pockio.png</file>
        

        Feathercoin code added.

        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.*

          https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

          src/qt/forms/merchantlist.ui

          Appears to be a new file for reports. Defines ui, update through Qt?. Add MerchantListView FTC reports commit

              +<?xml version="1.0" encoding="UTF-8"?>
           +<ui version="4.0">
           + <class>MerchantListView</class>
           + <widget class="QWidget" name="MerchantListView">
           +  <property name="geometry">
           +   <rect>
           +    <x>0</x>
           +    <y>0</y>
           +    <width>790</width>
           +    <height>419</height>
           +   </rect>
           +  </property>
           +  <property name="windowTitle">
           +   <string>Form</string>
           +  </property>
          

          First part of ui definitions, 300 lines of 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.*

            https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

            src/qt/guiutil.cpp

            Add MerchantListView FTC reports commit

             +    if(!uri.isValid() || uri.scheme() != QString("feathercoin"))
            

            Name change 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.*

              https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

              src/qt/merchantlist.cpp

              New file for reports. Add MerchantListView FTC reports commit

                 +// Copyright (c) 2013-2014 The Feathercoin developers
               +// from overviewpage
               +
               +#include "merchantlist.h"
               +#include "ui_merchantlist.h"
               +
               +#include "bitcoinunits.h"
               +#include "clientmodel.h"
               +#include "guiconstants.h"
               +#include "guiutil.h"
               +#include "optionsmodel.h"
               +#include "transactionfilterproxy.h"
               +#include "transactiontablemodel.h"
               +#include "walletmodel.h"
               +
               +#include <QAbstractItemDelegate>
               +#include <QPainter>
               +#include <QDesktopServices>
               +#include <QUrl>
               +
               +#define DECORATION_SIZE 64
               +#define NUM_ITEMS 3
               +
               +class MerViewDelegate : public QAbstractItemDelegate
              

              Initial code 250 lines added file

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

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

                https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                src/qt/merchantlist.h

                New file for FTC reports. Add MerchantListView FTC reports commit

                 +// Copyright (c) 2013-2014 The Feathercoin developers
                 +// Distributed under the MIT/X11 software license, see the accompanying
                 +// file COPYING or http://www.opensource.org/licenses/mit-license.php.
                 +
                 +#ifndef MERCHANTLISTVIEW_H
                 +#define MERCHANTLISTVIEW_H
                 +
                 +#include <QWidget>
                 +
                 +class ClientModel;
                 +class TransactionFilterProxy;
                 +class MerViewDelegate;
                 +class WalletModel;
                 +
                 +namespace Ui {
                 +	class MerchantListView;
                

                Initial code then, 64 lines of code in new file.

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

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

                  https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                  src/qt/reportview.h

                  Add MerchantListView FTC reports commit

                  +// Copyright (c) 2013-2014 The Feathercoin developers
                  

                  Copyright.

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

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

                    https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                    src/qt/transactionview.cpp

                    Updates to account for new FTC reports. Add MerchantListView FTC reports commit

                     +#include <QDesktopServices>
                    
                     +#include <QSignalMapper>
                    
                     +#include <QUrl>
                    

                    Additional code, scrypt interface

                     +    dateWidget->addItem(tr("Yesterday"), Yesterday);
                    
                     +    dateWidget->addItem(tr("Last week"), LastWeek);
                    

                    FTC report requirement?

                     +    totalWidget= new QLabel(tr("Total:"),this);
                     +    vlayout->addWidget(totalWidget); 
                    

                    Totalisation added code for FTC reports?

                    +    QAction *showTotalAction = new QAction(tr("Show transaction total"), this);
                    

                    report code

                     +    contextMenu->addAction(showTotalAction);
                     +
                     +    mapperThirdPartyTxUrls = new QSignalMapper(this);
                    
                    
                     // Connect actions
                     +    connect(mapperThirdPartyTxUrls, SIGNAL(mapped(QString)), this, SLOT(openThirdPartyTxUrl(QString)));
                     +
                    

                    Additional code FTC reports

                     +    connect(showTotalAction, SIGNAL(triggered()), this, SLOT(showTotal()));
                    
                      +
                      +   if (model->getOptionsModel())
                      +   {
                      +       // Add third party transaction URLs to context menu
                      +       QStringList listUrls = model->getOptionsModel()->getThirdPartyTxUrls().split("|", QString::SkipEmptyParts);
                      +       for (int i = 0; i < listUrls.size(); ++i)
                      +       {
                      +           QString host = QUrl(listUrls[i].trimmed(), QUrl::StrictMode).host();
                      +           if (!host.isEmpty())
                      +           {
                      +               QAction *thirdPartyTxUrlAction = new QAction(host, this); // use host as menu item label
                      +               if (i == 0)
                      +                   contextMenu->addSeparator();
                      +               contextMenu->addAction(thirdPartyTxUrlAction);
                      +               connect(thirdPartyTxUrlAction, SIGNAL(triggered()), mapperThirdPartyTxUrls, SLOT(map()));
                      +               mapperThirdPartyTxUrls->setMapping(thirdPartyTxUrlAction, listUrls[i].trimmed());
                      +           }
                      +       }
                      +   }
                      +   
                      +   connect(transactionView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(showTotal()));         
                      +   showTotal();
                    

                    Block of added code for FTC reports

                     +    case Yesterday:{
                     +    	  QDate startOfDay = current.addDays(-1);
                     +   transactionProxyModel->setDateRange(
                     +           QDateTime(startOfDay),
                     +           QDateTime(current));
                     +   } break;
                    

                    Additional FTC report code block

                     +    case LastWeek: {
                     +    	  //from Monday to Sunday
                     +   QDate startOfWeek = current.addDays(-(current.dayOfWeek()+6));
                     +   QDate endOfWeek = current.addDays(-(current.dayOfWeek()-1));
                     +   transactionProxyModel->setDateRange(
                     +           QDateTime(startOfWeek),
                     +           QDateTime(endOfWeek));
                     +   } break;        
                    

                    Additional FTC report code block

                     +    showTotal(); 
                    

                    Show title is called a number of times dependent on if statements which define the type of filter being applied.

                     + void TransactionView::showTotal()
                     + {
                     + 	  float fTotal=0;
                     + 	  for (int i=0;i<=transactionProxyModel->rowCount();i     +      + )
                     + 	  	fTotal     + =transactionProxyModel->data(transactionProxyModel->index(i,4)).toFloat();
                     + 
                     +     totalWidget->setText(tr("Date:")     + dateWidget->currentText()     + " "     + tr("Type:")     + typeWidget->currentText()     + " "     + tr("Total:")     + QObject::tr("%1").arg(fTotal)     + " FTC");
                     + }
                     + 
                     + void TransactionView::openThirdPartyTxUrl(QString url)
                     + {
                     +     if(!transactionView || !transactionView->selectionModel())
                     +         return;
                     +     QModelIndexList selection = transactionView->selectionModel()->selectedRows(0);
                     +     if(!selection.isEmpty())
                     +          QDesktopServices::openUrl(QUrl::fromUserInput(url.replace("%s", selection.at(0).data(TransactionTableModel::TxHashRole).toString())));
                     + }
                     + 
                    

                    Block of additional FTC report code

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

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

                      https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                      src/qt/transactionview.h

                      Updates to account for / add new FTC reports. Add MerchantListView FTC reports commit

                       +class QSignalMapper;
                      

                      Include class

                         +    Yesterday,
                         +    LastWeek,
                      

                      Include addition time domains for reports

                       +    QLabel *totalWidget;
                      
                       +    QSignalMapper *mapperThirdPartyTxUrls;
                      
                       +    void openThirdPartyTxUrl(QString url);
                       +    void showTotal();
                      

                      Additions for FTC reports.

                      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.*

                        https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                        src/qt/walletframe.cpp

                        Updates to account for / add new FTC reports. Add MerchantListView FTC reports commit

                         + void WalletFrame::gotoMerchantListPage()
                         + {
                         +     QMap<QString, WalletView*>::const_iterator i;
                         +     for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd();      +      + i)
                         +         i.value()->gotoMerchantListPage();
                         + }
                         +
                        
                        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.*

                          https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                          src/qt/walletframe.h

                          Add MerchantListView FTC reports commit

                           +    /** Switch to merchant list page */
                           +    void gotoMerchantListPage();
                          

                          Additions for FTC reports

                          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.*

                            https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                            src/qt/walletview.cpp

                            Add MerchantListView FTC reports commit

                             +#include "merchantlist.h"
                            
                            +    merchantlistPage = new MerchantListView();
                            
                            +    addWidget(merchantlistPage);
                            
                            +    overviewPage->setWalletModel(walletModel);
                            +    merchantlistPage->setWalletModel(walletModel);
                            

                            Additions for reports

                             -    overviewPage->setWalletModel(walletModel);
                            

                            Bitcoin code removed

                             + void WalletView::gotoMerchantListPage()
                             + {
                             +     setCurrentWidget(merchantlistPage); 
                             + }
                             + 
                            

                            Additions for FTC reports

                            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.*

                              https://github.com/FeatherCoin/Feathercoin/commit/516a78744d2eac208b61a864f81d59dc9055568d

                              src/qt/walletview.h

                              Add MerchantListView FTC reports commit

                               +class MerchantListView;
                              

                              FTC report interface change

                               +    /** Switch to merchant list page */
                               +    void gotoMerchantListPage();
                              
                              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

                                configure.ac

                                ACP and neoscrypt commit (2?)

                                 +AM_PROG_AS
                                

                                Additional code

                                 +  bdb_prefix=`$BREW --prefix berkeley-db5`
                                

                                Database updated

                                 - BITCOIN_FIND_BDB48
                                

                                Code replaced.

                                 + BITCOIN_FIND_BDB51
                                

                                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/Makefile.am

                                  ACP and neoscrypt commit

                                   +  bin_PROGRAMS += feathercoind
                                  
                                   +  bin_PROGRAMS += feathercoin-cli
                                  

                                  Name change.

                                   +  auxpow.h \
                                  
                                   +  checkpointsync.h \
                                  
                                   +  scrypt.h \
                                   +  neoscrypt.h \
                                  

                                  auxilliary proof of work, scrypt, neoscrpt headers added

                                   +  auxpow.cpp \
                                  
                                   +  base58.cpp \
                                  
                                   +  scrypt.cpp \
                                   +  neoscrypt.c \
                                   +  neoscrypt_asm.S \
                                  

                                  Add cpp file references

                                   + if GLIBC_BACK_COMPAT
                                   + libbitcoin_common_a_SOURCES   += compat/glibc_compat.cpp
                                   + libbitcoin_common_a_SOURCES   += compat/glibcxx_compat.cpp
                                   + endif
                                   + 
                                  

                                  Additional code

                                   +# feathercoind binary #
                                   +feathercoind_LDADD = \
                                  

                                  Bitcoin code replaced

                                   +feathercoind_LDADD += libbitcoin_wallet.a
                                  
                                   +feathercoind_SOURCES = feathercoind.cpp
                                   
                                   +feathercoind_SOURCES += feathercoind-res.rc
                                  
                                   +feathercoind_LDADD += $(BOOST_LIBS) $(BDB_LIBS)
                                  
                                   +# feathercoin-cli binary #
                                   +feathercoin_cli_LDADD = \
                                  
                                  +feathercoin_cli_SOURCES = feathercoin-cli.cpp
                                  
                                  +feathercoin_cli_SOURCES += feathercoin-cli-res.rc
                                  

                                  Interface change to feathercoin name change.

                                  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/checkpoints.cpp

                                    ACP and neoscrypt commit, (2nd commit?)

                                     +     
                                     +     uint256 GetLatestHardenedCheckpoint()
                                     +     {
                                     +         const MapCheckpoints& checkpoints = *Checkpoints().mapCheckpoints;
                                     +         return (checkpoints.rbegin()->second);
                                     +     }  
                                    

                                    Additional code for 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/checkpoints.h

                                      ACP and neoscrypt commit, (2nd commit?)

                                      +    // Returns the block hash of latest hardened checkpoint
                                      +    uint256 GetLatestHardenedCheckpoint();
                                      

                                      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/checkpointsync.cpp

                                        Additional file for checkpoints. Large.

                                        ACP and neoscrypt commit,

                                         + // Copyright (c) 2012-2013 PPCoin developers
                                         + // Copyright (c) 2013 Primecoin developers
                                         + // Distributed under conditional MIT/X11 software license,
                                         + // see the accompanying file COPYING
                                         + //
                                         + // The synchronized checkpoint system is first developed by Sunny King for
                                         + // ppcoin network in 2012, giving cryptocurrency developers a tool to gain
                                         + // additional network protection against 51% attack.
                                         + //
                                         + // Primecoin also adopts this security mechanism, and the enforcement of
                                         + // checkpoints is explicitly granted by user, thus granting only temporary
                                         + // consensual central control to developer at the threats of 51% attack.
                                         + //
                                         + // Concepts
                                         + //
                                         + // In the network there can be a privileged node known as 'checkpoint master'.
                                         + // This node can send out checkpoint messages signed by the checkpoint master
                                         + // key. Each checkpoint is a block hash, representing a block on the blockchain
                                         + // that the network should reach consensus on.
                                         + //
                                         + // Besides verifying signatures of checkpoint messages, each node also verifies
                                         + // the consistency of the checkpoints. If a conflicting checkpoint is received,
                                         + // it means either the checkpoint master key is compromised, or there is an
                                         + // operator mistake. In this situation the node would discard the conflicting
                                         + // checkpoint message and display a warning message. This precaution controls
                                         + // the damage to network caused by operator mistake or compromised key.
                                         + //
                                         + // Operations
                                         + //
                                         + // Checkpoint master key can be established by using the 'makekeypair' command
                                         + // The public key in source code should then be updated and private key kept
                                         + // in a safe place.
                                         + //
                                         + // Any node can be turned into checkpoint master by setting the 'checkpointkey'
                                         + // configuration parameter with the private key of the checkpoint master key.
                                         + // Operator should exercise caution such that at any moment there is at most
                                         + // one node operating as checkpoint master. When switching master node, the
                                         + // recommended procedure is to shutdown the master node and restart as
                                         + // regular node, note down the current checkpoint by 'getcheckpoint', then
                                         + // compare to the checkpoint at the new node to be upgraded to master node.
                                         + // When the checkpoint on both nodes match then it is safe to switch the new
                                         + // node to checkpoint master.
                                         + //
                                         + // The configuration parameter 'checkpointdepth' specifies how many blocks
                                         + // should the checkpoints lag behind the latest block in auto checkpoint mode.
                                         + // A depth of 0 is the strongest auto checkpoint policy and offers the greatest
                                         + // protection against 51% attack. A negative depth means that the checkpoints
                                         + // should not be automatically generated by the checkpoint master, but instead
                                         + // be manually entered by operator via the 'sendcheckpoint' command. The manual
                                         + // mode is also the default mode (default value -1 for checkpointdepth).
                                         + //
                                         + // Command 'enforcecheckpoint' and configuration parameter 'checkpointenforce'
                                         + // are for the users to explicitly consent to enforce the checkpoints issued
                                         + // from checkpoint master. To enforce checkpoint, user needs to either issue
                                         + // command 'enforcecheckpoint true', or set configuration parameter
                                         + // checkpointenforce=1. The current enforcement setting can be queried via
                                         + // command 'getcheckpoint', where 'subscribemode' displays either 'enforce'
                                         + // or 'advisory'. The 'enforce' mode of subscribemode means checkpoints are
                                         + // enforced. The 'advisory' mode of subscribemode means checkpoints are not
                                         + // enforced but a warning message would be displayed if the node is on a 
                                         + // different blockchain fork from the checkpoint, and this is the default mode.
                                         + //
                                         + 
                                        

                                        Documentation. for checkpoints code. New file 530 lines of 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/checkpointsync.h

                                          Additional file for checkpoints. Large.

                                          ACP and neoscrypt commit

                                           + // Copyright (c) 2011-2013 PPCoin developers
                                           + // Copyright (c) 2013 Primecoin developers
                                           + // Distributed under conditional MIT/X11 open source software license
                                           + // see the accompanying file COPYING
                                           + #ifndef PRIMECOIN_CHECKPOINTSYNC_H
                                           + #define  PRIMECOIN_CHECKPOINTSYNC_H
                                           + 
                                           + #include "net.h"
                                           + #include "util.h"
                                           + 
                                           + class uint256;
                                           + class CBlock;
                                           + class CBlockIndex;
                                           + class CSyncCheckpoint;
                                          

                                          Add new file 129 lines 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/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
                                            • First post
                                              Last post