Documentation
¶
Index ¶
- Constants
- Variables
- func NewAnnounceP2PStateURIsTask(interval time.Duration, treeProto *treeProtocol) *announceP2PStateURIsTask
- func NewAnnounceStateURIsTask(interval time.Duration, treeProto *treeProtocol) *announceStateURIsTask
- func NewPruneTxsTask(interval time.Duration, store Store) *pruneTxsTask
- func NewStore(db *state.DBTree) (*store, error)
- func NewTreeProtocol(transports []swarm.Transport, hushProto protohush.HushProtocol, ...) *treeProtocol
- type ACL
- type AckReceivedCallback
- type BaseTreeTransport
- func (t *BaseTreeTransport) HandleAckReceived(stateURI string, txID state.Version, peerConn TreePeerConn)
- func (t *BaseTreeTransport) HandleP2PStateURIReceived(stateURI string, peerConn TreePeerConn)
- func (t *BaseTreeTransport) HandlePrivateTxReceived(encryptedTx EncryptedTx, peerConn TreePeerConn)
- func (t *BaseTreeTransport) HandleTxReceived(tx tree.Tx, peerConn TreePeerConn)
- func (t *BaseTreeTransport) HandleWritableSubscriptionOpened(req SubscriptionRequest, writeSubImplFactory WritableSubscriptionImplFactory) (<-chan struct{}, error)
- func (t *BaseTreeTransport) OnAckReceived(handler AckReceivedCallback)
- func (t *BaseTreeTransport) OnP2PStateURIReceived(handler P2PStateURIReceivedCallback)
- func (t *BaseTreeTransport) OnPrivateTxReceived(handler PrivateTxReceivedCallback)
- func (t *BaseTreeTransport) OnTxReceived(handler TxReceivedCallback)
- func (t *BaseTreeTransport) OnWritableSubscriptionOpened(handler WritableSubscriptionOpenedCallback)
- type DefaultACL
- type EncryptedTx
- type FetchHistoryOpts
- type P2PStateURIReceivedCallback
- type PrivateTxReceivedCallback
- type ReadableSubscription
- type StateURISubscription
- type StateURIType
- type Store
- type SubscriptionMsg
- type SubscriptionRequest
- type SubscriptionType
- type TreePeerConn
- type TreeProtocol
- type TreeTransport
- type TxReceivedCallback
- type WritableSubscription
- type WritableSubscriptionImpl
- type WritableSubscriptionImplFactory
- type WritableSubscriptionOpenedCallback
Constants ¶
View Source
const ProtocolName = "prototree"
Variables ¶
View Source
var DefaultACLMembersKeypath = state.Keypath("Members")
Functions ¶
func NewPruneTxsTask ¶
func NewTreeProtocol ¶
Types ¶
type AckReceivedCallback ¶
type AckReceivedCallback func(stateURI string, txID state.Version, peerConn TreePeerConn)
type BaseTreeTransport ¶
type BaseTreeTransport struct {
// contains filtered or unexported fields
}
func (*BaseTreeTransport) HandleAckReceived ¶
func (t *BaseTreeTransport) HandleAckReceived(stateURI string, txID state.Version, peerConn TreePeerConn)
func (*BaseTreeTransport) HandleP2PStateURIReceived ¶
func (t *BaseTreeTransport) HandleP2PStateURIReceived(stateURI string, peerConn TreePeerConn)
func (*BaseTreeTransport) HandlePrivateTxReceived ¶
func (t *BaseTreeTransport) HandlePrivateTxReceived(encryptedTx EncryptedTx, peerConn TreePeerConn)
func (*BaseTreeTransport) HandleTxReceived ¶
func (t *BaseTreeTransport) HandleTxReceived(tx tree.Tx, peerConn TreePeerConn)
func (*BaseTreeTransport) HandleWritableSubscriptionOpened ¶
func (t *BaseTreeTransport) HandleWritableSubscriptionOpened(req SubscriptionRequest, writeSubImplFactory WritableSubscriptionImplFactory) (<-chan struct{}, error)
func (*BaseTreeTransport) OnAckReceived ¶
func (t *BaseTreeTransport) OnAckReceived(handler AckReceivedCallback)
func (*BaseTreeTransport) OnP2PStateURIReceived ¶
func (t *BaseTreeTransport) OnP2PStateURIReceived(handler P2PStateURIReceivedCallback)
func (*BaseTreeTransport) OnPrivateTxReceived ¶
func (t *BaseTreeTransport) OnPrivateTxReceived(handler PrivateTxReceivedCallback)
func (*BaseTreeTransport) OnTxReceived ¶
func (t *BaseTreeTransport) OnTxReceived(handler TxReceivedCallback)
func (*BaseTreeTransport) OnWritableSubscriptionOpened ¶
func (t *BaseTreeTransport) OnWritableSubscriptionOpened(handler WritableSubscriptionOpenedCallback)
type DefaultACL ¶
type DefaultACL struct {
ControllerHub tree.ControllerHub
}
func (DefaultACL) HasReadAccess ¶
func (DefaultACL) TypeOf ¶
func (acl DefaultACL) TypeOf(stateURI string) StateURIType
type EncryptedTx ¶
type EncryptedTx = protohush.GroupMessage
type FetchHistoryOpts ¶
type P2PStateURIReceivedCallback ¶
type P2PStateURIReceivedCallback func(stateURI string, peerConn TreePeerConn)
type PrivateTxReceivedCallback ¶
type PrivateTxReceivedCallback func(encryptedTx EncryptedTx, peerConn TreePeerConn)
type ReadableSubscription ¶
type ReadableSubscription interface { Read() (SubscriptionMsg, error) Close() error }
type StateURISubscription ¶
type StateURIType ¶
type StateURIType int
const ( StateURIType_Invalid StateURIType = iota StateURIType_DeviceLocal // StateURIType_UserLocal StateURIType_Private StateURIType_Public )
func (StateURIType) String ¶
func (t StateURIType) String() string
type Store ¶
type Store interface { SubscribedStateURIs() types.Set[string] AddSubscribedStateURI(stateURI string) error RemoveSubscribedStateURI(stateURI string) error OnNewSubscribedStateURI(handler func(stateURI string)) (unsubscribe func()) MaxPeersPerSubscription() uint64 SetMaxPeersPerSubscription(max uint64) error TxSeenByPeer(deviceUniqueID, stateURI string, txID state.Version) bool MarkTxSeenByPeer(deviceUniqueID, stateURI string, txID state.Version) error PruneTxSeenRecordsOlderThan(threshold time.Duration) error EncryptedTx(stateURI string, txID state.Version) (EncryptedTx, error) SaveEncryptedTx(stateURI string, txID state.Version, etx EncryptedTx) error DebugPrint() }
type SubscriptionMsg ¶
type SubscriptionRequest ¶
type SubscriptionRequest struct { StateURI string Keypath state.Keypath Type SubscriptionType FetchHistoryOpts *FetchHistoryOpts Addresses types.Set[types.Address] }
type SubscriptionType ¶
type SubscriptionType uint8
const ( SubscriptionType_Txs SubscriptionType = 1 << iota SubscriptionType_States )
func (SubscriptionType) Includes ¶
func (t SubscriptionType) Includes(x SubscriptionType) bool
func (SubscriptionType) MarshalText ¶
func (t SubscriptionType) MarshalText() ([]byte, error)
func (SubscriptionType) String ¶
func (t SubscriptionType) String() string
func (*SubscriptionType) UnmarshalText ¶
func (t *SubscriptionType) UnmarshalText(bs []byte) error
type TreePeerConn ¶
type TreePeerConn interface { swarm.PeerConn Subscribe(ctx context.Context, stateURI string) (ReadableSubscription, error) SendTx(ctx context.Context, tx tree.Tx) error SendPrivateTx(ctx context.Context, encryptedTx EncryptedTx) (err error) Ack(stateURI string, txID state.Version) error AnnounceP2PStateURI(ctx context.Context, stateURI string) error }
type TreeProtocol ¶
type TreeProtocol interface { process.Interface ProvidersOfStateURI(ctx context.Context, stateURI string) <-chan TreePeerConn Subscribe(ctx context.Context, stateURI string) error InProcessSubscription(ctx context.Context, stateURI string, subscriptionType SubscriptionType, keypath state.Keypath, fetchHistoryOpts *FetchHistoryOpts) (ReadableSubscription, error) Unsubscribe(stateURI string) error SubscribeStateURIs() (StateURISubscription, error) SendTx(ctx context.Context, tx tree.Tx) error }
type TreeTransport ¶
type TreeTransport interface { swarm.Transport ProvidersOfStateURI(ctx context.Context, stateURI string) (<-chan TreePeerConn, error) AnnounceStateURIs(ctx context.Context, stateURIs types.Set[string]) OnTxReceived(handler TxReceivedCallback) OnPrivateTxReceived(handler PrivateTxReceivedCallback) OnAckReceived(handler AckReceivedCallback) OnWritableSubscriptionOpened(handler WritableSubscriptionOpenedCallback) OnP2PStateURIReceived(handler P2PStateURIReceivedCallback) }
type TxReceivedCallback ¶
type TxReceivedCallback func(tx tree.Tx, peerConn TreePeerConn)
type WritableSubscription ¶
type WritableSubscriptionImplFactory ¶
type WritableSubscriptionImplFactory func() (WritableSubscriptionImpl, error)
type WritableSubscriptionOpenedCallback ¶
type WritableSubscriptionOpenedCallback func(req SubscriptionRequest, writeSubImplFactory WritableSubscriptionImplFactory) (<-chan struct{}, error)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.