mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Begin implementing continuous ledger close.
Pretty much all remaining changes should be to LedgerConsensus.cpp
This commit is contained in:
@@ -7,8 +7,9 @@
|
||||
#include "Application.h"
|
||||
#include "HashPrefixes.h"
|
||||
|
||||
LedgerProposal::LedgerProposal(const uint256& pLgr, uint32 seq, const uint256& tx, const NewcoinAddress& naPeerPublic) :
|
||||
mPreviousLedger(pLgr), mCurrentHash(tx), mProposeSeq(seq)
|
||||
LedgerProposal::LedgerProposal(const uint256& pLgr, uint32 seq, const uint256& tx, uint64 closeTime,
|
||||
const NewcoinAddress& naPeerPublic) :
|
||||
mPreviousLedger(pLgr), mCurrentHash(tx), mCloseTime(closeTime), mProposeSeq(seq)
|
||||
{
|
||||
mPublicKey = naPeerPublic;
|
||||
// XXX Validate key.
|
||||
@@ -20,28 +21,30 @@ LedgerProposal::LedgerProposal(const uint256& pLgr, uint32 seq, const uint256& t
|
||||
}
|
||||
|
||||
|
||||
LedgerProposal::LedgerProposal(const NewcoinAddress& naSeed, const uint256& prevLgr, const uint256& position) :
|
||||
mPreviousLedger(prevLgr), mCurrentHash(position), mProposeSeq(0)
|
||||
LedgerProposal::LedgerProposal(const NewcoinAddress& naSeed, const uint256& prevLgr,
|
||||
const uint256& position, uint64 closeTime) :
|
||||
mPreviousLedger(prevLgr), mCurrentHash(position), mCloseTime(closeTime), mProposeSeq(0)
|
||||
{
|
||||
mPublicKey = NewcoinAddress::createNodePublic(naSeed);
|
||||
mPrivateKey = NewcoinAddress::createNodePrivate(naSeed);
|
||||
mPeerID = mPublicKey.getNodeID();
|
||||
}
|
||||
|
||||
LedgerProposal::LedgerProposal(const uint256& prevLgr, const uint256& position) :
|
||||
mPreviousLedger(prevLgr), mCurrentHash(position), mProposeSeq(0)
|
||||
LedgerProposal::LedgerProposal(const uint256& prevLgr, const uint256& position, uint64 closeTime) :
|
||||
mPreviousLedger(prevLgr), mCurrentHash(position), mCloseTime(closeTime), mProposeSeq(0)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
uint256 LedgerProposal::getSigningHash() const
|
||||
{
|
||||
Serializer s(72);
|
||||
Serializer s((32 + 32 + 256 + 256 + 64) / 8);
|
||||
|
||||
s.add32(sHP_Proposal);
|
||||
s.add32(mProposeSeq);
|
||||
s.add256(mPreviousLedger);
|
||||
s.add256(mCurrentHash);
|
||||
s.add64(mCloseTime);
|
||||
|
||||
return s.getSHA512Half();
|
||||
}
|
||||
@@ -51,9 +54,10 @@ bool LedgerProposal::checkSign(const std::string& signature, const uint256& sign
|
||||
return mPublicKey.verifyNodePublic(signingHash, signature);
|
||||
}
|
||||
|
||||
void LedgerProposal::changePosition(const uint256& newPosition)
|
||||
void LedgerProposal::changePosition(const uint256& newPosition, uint64 closeTime)
|
||||
{
|
||||
mCurrentHash = newPosition;
|
||||
mCloseTime = closeTime;
|
||||
++mProposeSeq;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user