When a message is shared, share its transitive dependencies

Like other recursive operations on the dependency graph, this is
not done in a single transaction to prevent an attacker from creating
arbitrary large transactions.

So at startup, the `ValidationManager` finds and resumes any
unfinished operations, by looking for shared messages with unshared
dependencies.
This commit is contained in:
Torsten Grote
2016-08-31 13:15:59 -03:00
parent 7a0db798d1
commit d058172429
19 changed files with 480 additions and 76 deletions

View File

@@ -55,8 +55,9 @@ public interface ValidationManager {
/**
* Called once for each incoming message that passes validation.
* @return whether or not this message should be shared
*/
void incomingMessage(Transaction txn, Message m, Metadata meta)
boolean incomingMessage(Transaction txn, Message m, Metadata meta)
throws DbException;
}
}