Skip to content

Commit

Permalink
1.1.8.5-Mandatory Upgrade
Browse files Browse the repository at this point in the history
- Release candidate - Release POG to production (for heat mining rewards
only, PODC is still live) at block 100,001
- After block 100,000 minimum transaction relay fees increase (to
correct the absurdly low fees)
- At block 106,150 we vote to retire or not retire PODC (making the POG
budget bigger)
  • Loading branch information
biblepay committed Jan 27, 2019
1 parent 91125e1 commit d53d04f
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 93 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MINOR, 1)
define(_CLIENT_VERSION_REVISION, 8)
define(_CLIENT_VERSION_BUILD, 4)
define(_CLIENT_VERSION_BUILD, 5)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2018)
AC_INIT([biblepay Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/biblepaypay/biblepay/issues],[biblepaycore])
Expand Down
2 changes: 1 addition & 1 deletion src/clientversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const std::string CLIENT_NAME("Biblepay Core");
const int BIBLEPAY_VERSION_MAJOR = 1;
const int BIBLEPAY_VERSION_MINOR = 1;
const int BIBLEPAY_VERSION_REVISION = 8;
const int BIBLEPAY_VERSION_BUILD = 4;
const int BIBLEPAY_VERSION_BUILD = 5;


const int BIBLE_VERSION = 1000000 * BIBLEPAY_VERSION_MAJOR
Expand Down
6 changes: 1 addition & 5 deletions src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1124,8 +1124,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
SANCTUARY_COLLATERAL = 1550001;
fRetirementAccountsEnabled = false;
fProofOfLoyaltyEnabled = false;
fPOGEnabled = false;
fPOGPaymentsEnabled = false;
fPOGEnabled = true;
if (GetAdjustedTime() > 1550260145)
{
// After February 15th, 2019
Expand All @@ -1147,16 +1146,13 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
fRetirementAccountsEnabled = false;
fProofOfLoyaltyEnabled = false;
fPOGEnabled = true;
fPOGPaymentsEnabled = true;
DEFAULT_MIN_RELAY_TX_FEE = 10000;

strTemplePubKey = "04240caae65370e2ec32eaec8f27bce34e6ada9601b6a805c10b3e839e100ce3f369fdfbc1bb906d3dd442bd145e51d23a4eda247608b5dc33afc1fbf87c270f47";
}
else if (chainparams.NetworkIDString()=="regtest")
{
cblockGenesis = CreateGenesisBlock(1496347864, 18, 0x207fffff, 1, 50 * COIN);
fPOGEnabled = true;
fPOGPaymentsEnabled = true;
SANCTUARY_COLLATERAL = 500000;
targetGenesisHash = hashGenesisRegressionNet;
DEFAULT_MIN_RELAY_TX_FEE = 10000;
Expand Down
53 changes: 12 additions & 41 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,6 @@ bool fDistributedComputingCycle = false;
bool fDistributedComputingCycleDownloading = false;
bool fInternalRequestedShutdown = false;
bool fPOGEnabled = false;
bool fPOGPaymentsEnabled = false;

int nDistributedComputingCycles = 0;

int64_t nGlobalPOLWeight;
Expand Down Expand Up @@ -2190,7 +2188,7 @@ CAmount GetBlockSubsidy(const CBlockIndex* pindexPrev, int nPrevBits, int nPrevH
double dDiff = 0;
CAmount nSubsidyBase;
bool fIsPogSuperblock = CSuperblock::IsPOGSuperblock(nPrevHeight + 1);
bool fPogActive = (fPOGEnabled && ((nPrevHeight > FPOG_CUTOVER_HEIGHT_PROD && fProd) || (nPrevHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd)));
bool fPogActive = ((nPrevHeight > FPOG_CUTOVER_HEIGHT_PROD && fProd) || (nPrevHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd));
if (fPogActive && fIsPogSuperblock)
{
nPrevBits = Get24HourAvgBits(pindexPrev, nPrevBits);
Expand Down Expand Up @@ -2298,7 +2296,7 @@ CAmount GetMasternodePayment(int nHeight, CAmount blockValue)
// http://forum.biblepay.org/index.php?topic=33.0
// Final Distribution: 10% Charity, 2.5% PR, 2.5% P2P, 5% for IT
CAmount ret = 0;
bool fPogActive = (fPOGEnabled && ((nHeight > FPOG_CUTOVER_HEIGHT_PROD && fProd) || (nHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd)));
bool fPogActive = ((nHeight > FPOG_CUTOVER_HEIGHT_PROD && fProd) || (nHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd));
bool fIsPogSuperblock = CSuperblock::IsPOGSuperblock(nHeight);

int nSpork8Height = fProd ? SPORK8_HEIGHT : SPORK8_HEIGHT_TESTNET;
Expand Down Expand Up @@ -3441,7 +3439,6 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
static int nLastPogHeight = 0;
int nPogSize = (pindex->nHeight % 10) == 0 ? BLOCKS_PER_DAY : 1;
if ((nLastPogHeight + 1) != pindex->nHeight) nPogSize = BLOCKS_PER_DAY;
// nPogSize = BLOCKS_PER_DAY; // TODO: Remove this in the next testnet version
InitializePogPool(pindex, nPogSize, block);
nLastPogHeight = pindex->nHeight;

Expand Down Expand Up @@ -4480,7 +4477,6 @@ bool CheckPOGPoolRecipients(const Consensus::Params& params, int nHeight, const
int nPoolHeight = pindexPrev->nHeight - 10;
CBlockIndex* pindexPay = FindBlockByHeight(nPoolHeight);
CPoolObject cPool = GetPoolVector(pindexPay, 0);
LogPrintf(" CheckPOGPoolRecipients::Check_Height %f ", pindexPay->nHeight);

CAmount nBlockReward = 0;
for (unsigned int i = 0; i < block.vtx[0].vout.size(); i++)
Expand Down Expand Up @@ -4599,47 +4595,22 @@ bool ContextualCheckBlock(const CBlock& block, CValidationState& state, CBlockIn
}

// Rob A. - BiblePay - 12/3/2018
if (fPOGEnabled && !fReindex)
if (POGEnabled(nHeight, block.GetBlockTime()) && !fReindex)
{
if ((nHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd) || (fProd && nHeight > FPOG_CUTOVER_HEIGHT_PROD))
bool fIsPogSuperblock = CSuperblock::IsPOGSuperblock(nHeight);
if (fIsPogSuperblock)
{
int64_t nAge = GetAdjustedTime() - block.GetBlockTime();
bool fRecent = nAge < (60 * 60 * 2) ? true : false;
int64_t nAgeOfPriorBlock = GetAdjustedTime() - pindexPrev->nTime;
CAmount nBlockTotal = block.vtx[0].GetValueOut();
// The idea here is if we ever have a situation in prod where the chain freezes for more than 2 hours (because of an unaccepted POG superblock), we will allow the next block to pass if the subsidy < 20,000 BBP, but no POG recipients will be paid.
// This is not normally allowed if the prior block was solved within 2 hours however (so in reality this should never happen if our chain keeps moving).
// This is for emergency purposes only if our chain gets stuck, the devs can mine the block manually.
// In all other cases (for a block that was solved within 2 hours, and is a POG superblock, we require all of the POG pool recipients to be present, and all of the payment values to match.
if (nAgeOfPriorBlock > (60 * 60 * 2) && nBlockTotal < (MAX_BLOCK_SUBSIDY * COIN)) fRecent = false;
bool fIsPogSuperblock = CSuperblock::IsPOGSuperblock(nHeight);
if (fIsPogSuperblock && fRecent)
bool fVerified = CheckPOGPoolRecipients(consensusParams, nHeight, block, pindexPrev);
double dVersion = GetBlockVersion(block.vtx[0]);
if (!fVerified)
{
bool fVerified = CheckPOGPoolRecipients(consensusParams, nHeight, block, pindexPrev);
double dVersion = GetBlockVersion(block.vtx[0]);
if (!fVerified)
{
std::string sErr = "ContextualCheckBlock::ERROR! - POG Recipients invalid at height " + RoundToString(nHeight, 0) + " version " + RoundToString(dVersion, 0);
LogPrintf("\n%s", sErr.c_str());
double nPogRecipLevel = GetSporkDouble("checkpogrecipients", 0);
if (nPogRecipLevel == 0)
{
return state.DoS(10, error(sErr.c_str()), REJECT_INVALID, "pog-recipients-invalid");
}
else if (nPogRecipLevel == 1)
{
LogPrintf("\n%s", sErr.c_str());
}
else if (nPogRecipLevel == 2)
{
// No d-dos, but reject block
return false;
}
}
std::string sErr = "ContextualCheckBlock::ERROR! - POG Recipients invalid at height " + RoundToString(nHeight, 0) + " version " + RoundToString(dVersion, 0);
LogPrintf("\n%s", sErr.c_str());
return state.DoS(10, error(sErr.c_str()), REJECT_INVALID, "pog-recipients-invalid");
}
}
}
else if (PODCEnabled(nHeight))
else if (!fPOGEnabled && PODCEnabled(nHeight))
{
bool fGrandfather = ((nHeight < F14000_CUTOVER_HEIGHT_PROD && fProd) || (!fProd && nHeight < F14000_CUTOVER_HEIGHT_TESTNET));
if (!fGrandfather)
Expand Down
15 changes: 3 additions & 12 deletions src/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ static const int F13000_CUTOVER_HEIGHT_TESTNET = 16600;
static const int F14000_CUTOVER_HEIGHT_PROD = 77000; // October 14th, 2018
static const int F14000_CUTOVER_HEIGHT_TESTNET = 54300; // Sep. 1, 2018
static const int FPOG_CUTOVER_HEIGHT_TESTNET = 95945; // Dec. 23rd, 2018
static const int FPOG_CUTOVER_HEIGHT_PROD = 9100001; // Feb 7th, 2019 (100,001)
static const int PODC_LAST_BLOCK_PROD = 9106150; // March 8th, 2019 (106,150)
static const int PODC_LAST_BLOCK_TESTNET = 9106150;
static const int FPOG_CUTOVER_HEIGHT_PROD = 100001; // Feb 7th, 2019 (100,001)
static const int PODC_LAST_BLOCK_PROD = 106150; // March 8th, 2019 (106,150)
static const int PODC_LAST_BLOCK_TESTNET = 126150;
static const int MINIMUM_EMAIL_LENGTH = 5; // 3 character domain + . + 1 character name
/** Default for -maxorphantx, maximum number of orphan transactions kept in memory */
static const unsigned int DEFAULT_MAX_ORPHAN_TRANSACTIONS = 100;
Expand Down Expand Up @@ -247,14 +247,11 @@ extern SecureString msEncryptedString;
extern bool fCheckedPODCUnlock;
extern bool fWalletLoaded;
extern std::string msGithubVersion;

extern int PRAYER_MODULUS;
extern std::string strTemplePubKey;
extern int mnPODCTried;
extern int mnPODCSent;
extern double mnPODCAmountSent;


extern int64_t nHPSTimerStart;
extern int64_t nHashCounter;
extern std::string sGlobalPoolURL;
Expand All @@ -267,19 +264,15 @@ extern bool fDistributedComputingCycle;
extern int nDistributedComputingCycles;
extern bool fInternalRequestedShutdown;
extern bool fPOGEnabled;
extern bool fPOGPaymentsEnabled;
extern bool fDistributedComputingCycleDownloading;

extern int64_t nLastTradingActivity;
extern int64_t nBibleMinerPulse;
extern int64_t SANCTUARY_COLLATERAL;
extern int64_t TEMPLE_COLLATERAL;
extern int64_t MAX_BLOCK_SUBSIDY;
extern int64_t MAX_MESSAGE_LENGTH;

extern bool fProd;
extern bool fMineSlow;

extern double dHashesPerSec;
extern std::map<std::string, double> mvBlockVersion;
extern int SIN_MODULUS;
Expand All @@ -291,8 +284,6 @@ extern bool fPoolMiningMode;
extern bool fPoolMiningUseSSL;
extern bool fCommunicatingWithPool;
extern int64_t nLastDCContractSubmitted;


extern std::map<uint256, int64_t> mapRejectedBlocks;

/** Best header we've seen so far (used for getheaders queries' starting points). */
Expand Down
8 changes: 4 additions & 4 deletions src/masternode-payments.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ void CMasternodePayments::PayPOGRecipients(CBlockIndex* pindexPrev, CMutableTran
InitializePogPool(pindexPrev, BLOCKS_PER_DAY, cblock);
}

if (fPOGPaymentsEnabled)
if (fPOGEnabled)
{
int nPoolHeight = nBlockHeight - 11;
CBlockIndex* pindexPay = FindBlockByHeight(nPoolHeight);
Expand Down Expand Up @@ -375,7 +375,7 @@ void CMasternodePayments::PayPOGRecipients(CBlockIndex* pindexPrev, CMutableTran
bStamped = true; //ToDo: In Evolution we want to set one bit value here to denote a POG coinbase; for now we still use XML
txNew.vout[0].sTxOutMessage += "<POG></POG>";
}
LogPrintf(" Creating Pool Payment for Amount %f to %s \n", (double)caPoolPayment/COIN, oTithe.Address.c_str());
if (fDebugMaster) LogPrintf(" Creating Pool Payment for Amount %f to %s \n", (double)caPoolPayment/COIN, oTithe.Address.c_str());
}
}
}
Expand Down Expand Up @@ -411,7 +411,7 @@ void CMasternodePayments::FillBlockPayee(CBlockIndex* pindexPrev, CMutableTransa
// ...and we can't calculate it on our own
if (fDebugMaster) LogPrint("mnpayments","CMasternodePayments::FillBlockPayee -- Failed to detect masternode to pay\n");
// Pay the POG Pool
if (fPOGEnabled && fPOGPaymentsEnabled && fIsPogSuperblock) PayPOGRecipients(pindexPrev, txNew, nBlockHeight, blockRewardWithoutFee);
if (fIsPogSuperblock) PayPOGRecipients(pindexPrev, txNew, nBlockHeight, blockRewardWithoutFee);
return;
}
// fill payee with locally calculated winner and hope for the best
Expand All @@ -430,7 +430,7 @@ void CMasternodePayments::FillBlockPayee(CBlockIndex* pindexPrev, CMutableTransa
CBitcoinAddress address2(address1);
LogPrint("mnpayments","CMasternodePayments::FillBlockPayee -- Masternode payment %f to %s\n", (double)masternodePayment, address2.ToString().c_str());
// Pay the POG Pool
if (fPOGEnabled && fPOGPaymentsEnabled && fIsPogSuperblock) PayPOGRecipients(pindexPrev, txNew, nBlockHeight, blockRewardWithoutFee);
if (fIsPogSuperblock) PayPOGRecipients(pindexPrev, txNew, nBlockHeight, blockRewardWithoutFee);
}


Expand Down
4 changes: 2 additions & 2 deletions src/miner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -857,7 +857,7 @@ void static BibleMiner(const CChainParams& chainparams, int iThreadID, int iFeat
// UpdateHashesPerSec(nHashesDone);
goto recover;
}
if ((!sErr.empty()) || (sFullSignature.empty() && fPOGEnabled == false))
if ((!sErr.empty()) || (sFullSignature.empty() && PODCEnabled(chainActive.Tip()->nHeight)))
{
std::string sMsg = "Unable to mine... Cant sign block template with CPID " + msGlobalCPID + " - Error " + sErr;
nHashesDone++;
Expand Down Expand Up @@ -954,7 +954,7 @@ void static BibleMiner(const CChainParams& chainparams, int iThreadID, int iFeat
// Found a solution
SetThreadPriority(THREAD_PRIORITY_NORMAL);
bool bAccepted = ProcessBlockFound(pblock, chainparams);
if (!bAccepted && !fPOGPaymentsEnabled)
if (!bAccepted && !fPOGEnabled)
{
std::string sCPIDSignature = ExtractXML(pblock->vtx[0].vout[0].sTxOutMessage, "<cpidsig>","</cpidsig>");
std::string sCPID = GetElement(sCPIDSignature, ";", 0);
Expand Down
11 changes: 3 additions & 8 deletions src/qt/bitcoingui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1567,14 +1567,9 @@ void BitcoinGUI::showEvent(QShowEvent *event)
TheLordsPrayerAction->setEnabled(true);
TheApostlesCreedAction->setEnabled(true);
TheNiceneCreedAction->setEnabled(true);

if (!fProd)
{
openChatGeneralAction->setEnabled(true);
openChatPMAction->setEnabled(true);
pogLeaderboardListMenuAction->setEnabled(true);
}

openChatGeneralAction->setEnabled(true);
openChatPMAction->setEnabled(true);
pogLeaderboardListMenuAction->setEnabled(true);
TheTenCommandmentsAction->setEnabled(true);
JesusConciseCommandmentsAction->setEnabled(true);
ReadBibleAction->setEnabled(true);
Expand Down
14 changes: 1 addition & 13 deletions src/rpcblockchain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1935,18 +1935,6 @@ UniValue exec(const UniValue& params, bool fHelp)
CBlock block;
if (!DecodeHexBlk(block, sBlockHex))
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed");
/*
std::string sTxHex = params[2].get_str();
CTransaction tx;
if (!DecodeHexTx(tx, sTxHex))
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
if (block.vtx[0].GetHash().GetHex() != tx.GetHash().GetHex())
{
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Coinbase TX not in block");
}
*/

if (block.vtx.size() < 1)
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Deserialization Error");

Expand Down Expand Up @@ -1980,7 +1968,7 @@ UniValue exec(const UniValue& params, bool fHelp)
int64_t nHeaderAge = GetAdjustedTime() - block.GetBlockTime();
bool bActiveRACCheck = nHeaderAge < (60 * 15) ? true : false;

if (bActiveRACCheck)
if (bActiveRACCheck && PODCEnabled(pindexPrev->nHeight))
{
if (fSigValid)
{
Expand Down
23 changes: 17 additions & 6 deletions src/rpcpog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1317,18 +1317,14 @@ std::string GetSporkValue(std::string sKey)

double GetDifficultyN(const CBlockIndex* blockindex, double N)
{
if (fPOGEnabled)
{
return GetDifficulty(blockindex)*N;
}
else if (PODCEnabled(blockindex->nHeight))
if (PODCEnabled(blockindex->nHeight))
{
if (chainActive.Tip() == NULL) return 1;
int nHeight = (blockindex == NULL) ? chainActive.Tip()->nHeight : blockindex->nHeight;
double nBlockMagnitude = GetBlockMagnitude(nHeight);
return nBlockMagnitude;
}

// Returns Difficulty * N (Most likely this will be used to display the Diff in the wallet, since the BibleHash is much harder to solve than an ASIC hash)
if ((blockindex && !fProd && blockindex->nHeight >= 1) || (blockindex && fProd && blockindex->nHeight >= 7000))
{
Expand Down Expand Up @@ -2083,8 +2079,12 @@ void InitializePogPool(const CBlockIndex* pindexSource, int nSize, const CBlock&
const CBlockIndex *pindexLast = pindexSource;

if (pindexLast == NULL || pindexLast->nHeight == 0) return;
bool fPogActive = (!fProd && pindexSource->nHeight > FPOG_CUTOVER_HEIGHT_TESTNET) || (fProd && pindexSource->nHeight > FPOG_CUTOVER_HEIGHT_PROD);
if (!fPogActive) return;

int64_t nAge = GetAdjustedTime() - pindexLast->GetBlockTime();
if (nAge > (60 * 60 * 36) && nSize < (BLOCKS_PER_DAY+1)) return;
if (nAge > (60 * 60 * 24 * 30)) return;

if (nSize==1)
{
Expand Down Expand Up @@ -2171,3 +2171,14 @@ bool PODCEnabled(int nHeight)
return fDC;
}

bool POGEnabled(int nHeight, int64_t nTime)
{
bool fPOG = ((nHeight > FPOG_CUTOVER_HEIGHT_TESTNET && !fProd) || (fProd && nHeight > FPOG_CUTOVER_HEIGHT_PROD));
if (nTime > 0)
{
int64_t nAge = GetAdjustedTime() - nTime;
bool fRecent = nAge < (60 * 60 * 2) ? true : false;
if (!fRecent) return false;
}
return fPOG;
}
1 change: 1 addition & 0 deletions src/rpcpog.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,5 @@ std::string GetPOGBusinessObjectList(std::string sType, std::string sFields);
bool CopyFile(std::string sSrc, std::string sDest);
CAmount R20(CAmount amount);
bool PODCEnabled(int nHeight);
bool POGEnabled(int nHeight, int64_t nTime);
#endif

5 comments on commit d53d04f

@fogoat
Copy link
Contributor

@fogoat fogoat commented on d53d04f Jan 29, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for all your hard work in PoG.

This is all contigent on a vote to disable PoDC is passed.

If you're open to this idea, my thought is:

As more people join Proof of Giving (PoG) pool, the PoDC payment is reduced and given to PoG. This way, the payout percentage (200% of donation?) continues until PoDC payment goes to 0. For example, if there are 10 pool members, PoG uses 10% of PoDC budget. If there are 90 PoG members, then PoG uses 90% of the PoDC's current budget. At some point, there is a cutover to PoG regardless of the number of people in the pool. I feel like this would give early PoG participants a longer "honeymoon" period and the dilution of payment takes longer.

@biblepay
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a fine idea, and its not that I am not open to doing this, its that it requires too much time and planning and is very dangerous, and I dont think the risks outweigh the rewards. It could potentially not work and cause a network failure, and the upside is we appease a few people for a few days longer. (You realize what you are asking is something that takes 20 hours of work, testing, a testnet round and a mandatory?)

I think if the vote passes to retire PODC, we will need to do a one shot direct cut off (as we dont have unlimited time and resources to do things) - IE some things may be done some things will drop, etc.

But I surely believe we should vote early (around block 106,000) to ensure the community wants to retire PODC.

We also need to start a baseline (of POG users) right @ block 100,000 to see if we are impressed by the results, IE if any growth occurs in the first 30 days (as compared to our prior baseline with PODC).

@fogoat
Copy link
Contributor

@fogoat fogoat commented on d53d04f Feb 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the new tx fee? Could not find in the code.

@biblepay
Copy link
Owner Author

@biblepay biblepay commented on d53d04f Feb 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sunk818, Its int DEFAULT_MIN_RELAY_TX_FEE = 10000;, I raised it 100* higher starting on Feb 15th, 2019.
(This brings it in-line with the normal fees charged by Dash, etc).

The change is in init.cpp line 1131.

@fogoat
Copy link
Contributor

@fogoat fogoat commented on d53d04f Feb 15, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/biblepay/biblepay/releases/tag/1.1.8.5

You mentioned binary downloads would be available for mandatory on GitHub.

Please sign in to comment.