Complete initial implementation of transaction relaying.

This commit is contained in:
JoelKatz
2012-01-19 15:56:06 -08:00
parent 0b69be862f
commit 06d69888fd
5 changed files with 63 additions and 10 deletions

View File

@@ -6,22 +6,35 @@
// Operations that clients may wish to perform against the network
class Peer;
class NetworkOPs
{
enum Fault
{
{ // exceptions these functions can throw
IO_ERROR=1,
NO_NETWORK=2,
};
enum OperatingMode
{ // how we process transactions or account balance requests
FAULTED=0, // we are unable to process requests (not ready or no network)
FULL_LOCAL=1, // we are in full local sync
PART_LOCAL=2, // we can validate remote data but have to request it
REMOTE=3 // we have to trust remote nodes
};
public:
// context information
OperatingMode getOperatingMode();
// network information
uint64 getNetworkTime();
uint32 getCurrentLedgerID();
// transaction operations
Transaction::pointer processTransaction(Transaction::pointer transaction);
Transaction::pointer processTransaction(Transaction::pointer transaction, Peer* source=NULL);
Transaction::pointer findTransactionByID(const uint256& transactionID);
int findTransactionsBySource(std::list<Transaction::pointer>&, const uint160& sourceAccount,
uint32 minSeq, uint32 maxSeq);