r3prototyping / protocols

Package protocols

Types

FetchAttachmentsProtocol class FetchAttachmentsProtocol : FetchDataProtocol<Attachment, ByteArray>

Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded attachments are saved to local storage automatically.

FetchDataProtocol abstract class FetchDataProtocol<T : NamedByHash, W : Any> : ProtocolLogic<Result<T>>

An abstract protocol for fetching typed data from a remote peer.

FetchTransactionsProtocol class FetchTransactionsProtocol : FetchDataProtocol<SignedTransaction, SignedTransaction>

Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.

ResolveTransactionsProtocol class ResolveTransactionsProtocol : ProtocolLogic<Unit>

This protocol fetches each transaction identified by the given hashes from either disk or network, along with all their dependencies, and verifies them together using a single TransactionGroup. If no exception is thrown, then all the transactions have been successfully verified and inserted into the local database.

TimestampingProtocol class TimestampingProtocol : ProtocolLogic<LegallyIdentifiable>

The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a ProtocolLogic, meaning it can either be a sub-protocol of some other protocol, or be driven independently.

TwoPartyTradeProtocol object TwoPartyTradeProtocol

This asset trading protocol implements a "delivery vs payment" type swap. It has two parties (B and S for buyer and seller) and the following steps: