Documentation ¶
Index ¶
- Constants
- Variables
- func AccountRepoExists(baseRepoPath string, accountAddress string) bool
- func ConvertHeadersToCorsOptions(headers config.HTTPHeaders) cors.Options
- func FeedItemType(item *pb.FeedItem) (pb.Block_BlockType, error)
- func GetRandomPort() string
- func InitRepo(conf InitConfig) error
- func MigrateRepo(conf MigrateConfig) error
- func RepoExists(repoPath string) bool
- type AddFileConfig
- type BlockDownloads
- type BlockOutbox
- type CafeError
- type CafeInbox
- type CafeOutbox
- type CafeOutboxHandler
- type CafeRequestOption
- type CafeRequestSettings
- type CafeService
- func (h *CafeService) CheckMessages(cafeId string) error
- func (h *CafeService) DeleteMessages(cafeId string) error
- func (h *CafeService) Deregister(cafeId string) error
- func (h *CafeService) Flush()
- func (h *CafeService) Handle(env *pb.Envelope, pid peer.ID) (*pb.Envelope, error)
- func (h *CafeService) HandleStream(env *pb.Envelope, pid peer.ID) (chan *pb.Envelope, chan error, chan interface{})
- func (h *CafeService) Ping(pid peer.ID) (service.PeerStatus, error)
- func (h *CafeService) Protocol() protocol.ID
- func (h *CafeService) PublishPeer(peer *pb.Peer, cafeId string) error
- func (h *CafeService) Register(cafeId string, token string) (*pb.CafeSession, error)
- func (h *CafeService) Search(query *pb.Query, cafeId string, reply func(*pb.QueryResult), ...) error
- func (h *CafeService) Start()
- type FeedItemPayload
- type InitConfig
- type MigrateConfig
- type RunConfig
- type Textile
- func (t *Textile) AcceptExternalInvite(id string, key []byte) (mh.Multihash, error)
- func (t *Textile) AcceptInvite(id string) (mh.Multihash, error)
- func (t *Textile) AcceptInviteViaNotification(id string) (mh.Multihash, error)
- func (t *Textile) Account() *keypair.Full
- func (t *Textile) AccountContact() *pb.Contact
- func (t *Textile) AccountThread() *Thread
- func (t *Textile) AddContact(card *pb.Contact) error
- func (t *Textile) AddExternalInvite(threadId string) (*pb.ExternalInvite, error)
- func (t *Textile) AddFileIndex(mill m.Mill, conf AddFileConfig) (*pb.FileIndex, error)
- func (t *Textile) AddInvite(threadId string, address string) error
- func (t *Textile) AddNodeFromDirs(dirs *pb.DirectoryList) (ipld.Node, *pb.Keys, error)
- func (t *Textile) AddNodeFromFiles(files []*pb.FileIndex) (ipld.Node, *pb.Keys, error)
- func (t *Textile) AddOrUpdateThread(thread *pb.Thread) error
- func (t *Textile) AddPeer(peer *pb.Peer) error
- func (t *Textile) AddSchema(jsonstr string, name string) (*pb.FileIndex, error)
- func (t *Textile) AddThread(conf pb.AddThreadConfig, sk libp2pc.PrivKey, initiator string, join bool, ...) (*Thread, error)
- func (t *Textile) Avatar() string
- func (t *Textile) Block(id string) (*pb.Block, error)
- func (t *Textile) BlockByParent(parent string) (*pb.Block, error)
- func (t *Textile) BlockView(id string) (*pb.Block, error)
- func (t *Textile) Blocks(offset string, limit int, query string) *pb.BlockList
- func (t *Textile) BlocksByTarget(target string) *pb.BlockList
- func (t *Textile) CafeApiAddr() string
- func (t *Textile) CafeInfo() *pb.Cafe
- func (t *Textile) CafeRequestThreadsContent(cafe string) error
- func (t *Textile) CafeSession(id string) (*pb.CafeSession, error)
- func (t *Textile) CafeSessions() *pb.CafeSessionList
- func (t *Textile) CafeTokens() ([]string, error)
- func (t *Textile) CheckCafeMessages() error
- func (t *Textile) CloseChns()
- func (t *Textile) Comment(blockId string) (*pb.Comment, error)
- func (t *Textile) Comments(target string) (*pb.CommentList, error)
- func (t *Textile) Config() *config.Config
- func (t *Textile) Contact(address string) *pb.Contact
- func (t *Textile) ContactThreads(address string) (*pb.ThreadList, error)
- func (t *Textile) Contacts() *pb.ContactList
- func (t *Textile) CountUnreadNotifications() int
- func (t *Textile) CreateCafeToken(token string, store bool) (string, error)
- func (t *Textile) DataAtPath(path string) ([]byte, error)
- func (t *Textile) Datastore() repo.Datastore
- func (t *Textile) Decrypt(input []byte) ([]byte, error)
- func (t *Textile) DeregisterCafe(id string) error
- func (t *Textile) DoneCh() <-chan struct{}
- func (t *Textile) Encrypt(input []byte) ([]byte, error)
- func (t *Textile) Feed(req *pb.FeedRequest) (*pb.FeedItemList, error)
- func (t *Textile) File(blockId string) (*pb.Files, error)
- func (t *Textile) FileContent(hash string) (io.ReadSeeker, *pb.FileIndex, error)
- func (t *Textile) FileIndexContent(file *pb.FileIndex) (io.ReadSeeker, error)
- func (t *Textile) FileMeta(hash string) (*pb.FileIndex, error)
- func (t *Textile) Files(offset string, limit int, threadId string) (*pb.FilesList, error)
- func (t *Textile) FlushBlocks()
- func (t *Textile) FlushCafes()
- func (t *Textile) GetMedia(reader io.Reader) (string, error)
- func (t *Textile) GetMillMedia(reader io.Reader, mill m.Mill) (string, error)
- func (t *Textile) IgnoreInvite(id string) error
- func (t *Textile) IgnoreInviteViaNotification(id string) error
- func (t *Textile) Inbox() *CafeInbox
- func (t *Textile) InviteView(invite *pb.Invite) *pb.InviteView
- func (t *Textile) Invites() *pb.InviteViewList
- func (t *Textile) Ipfs() *core.IpfsNode
- func (t *Textile) Like(blockId string) (*pb.Like, error)
- func (t *Textile) Likes(target string) (*pb.LikeList, error)
- func (t *Textile) LinksAtPath(path string) ([]*ipld.Link, error)
- func (t *Textile) Message(blockId string) (*pb.Text, error)
- func (t *Textile) Messages(offset string, limit int, threadId string) (*pb.TextList, error)
- func (t *Textile) Mobile() bool
- func (t *Textile) Name() string
- func (t *Textile) NotificationCh() <-chan *pb.Notification
- func (t *Textile) NotificationView(note *pb.Notification) *pb.Notification
- func (t *Textile) Notifications(offset string, limit int) *pb.NotificationList
- func (t *Textile) Online() bool
- func (t *Textile) OnlineCh() <-chan struct{}
- func (t *Textile) PeerId() (peer.ID, error)
- func (t *Textile) PeerUser(id string) *pb.User
- func (t *Textile) Ping(pid peer.ID) (service.PeerStatus, error)
- func (t *Textile) Profile() *pb.Peer
- func (t *Textile) Publish(payload []byte, topic string) error
- func (t *Textile) PublishPeer() error
- func (t *Textile) ReadAllNotifications() error
- func (t *Textile) ReadNotification(id string) error
- func (t *Textile) RefreshCafeSession(id string) (*pb.CafeSession, error)
- func (t *Textile) RegisterCafe(id string, token string) (*pb.CafeSession, error)
- func (t *Textile) RemoveCafeToken(token string) error
- func (t *Textile) RemoveContact(address string) error
- func (t *Textile) RemoveThread(id string) (mh.Multihash, error)
- func (t *Textile) RenameThread(id string, name string) error
- func (t *Textile) RepoPath() string
- func (t *Textile) SearchContacts(query *pb.ContactQuery, options *pb.QueryOptions) (<-chan *pb.QueryResult, <-chan error, *broadcast.Broadcaster, error)
- func (t *Textile) SearchThreadSnapshots(query *pb.ThreadSnapshotQuery, options *pb.QueryOptions) (<-chan *pb.QueryResult, <-chan error, *broadcast.Broadcaster, error)
- func (t *Textile) Server() bool
- func (t *Textile) SetAvatar() error
- func (t *Textile) SetLogLevel(level *pb.LogLevel, color bool) error
- func (t *Textile) SetName(name string) error
- func (t *Textile) Sign(input []byte) ([]byte, error)
- func (t *Textile) SnapshotThreads() error
- func (t *Textile) Start() error
- func (t *Textile) Started() bool
- func (t *Textile) Stop() error
- func (t *Textile) Summary() *pb.Summary
- func (t *Textile) SyncAccount(options *pb.QueryOptions) (*broadcast.Broadcaster, error)
- func (t *Textile) TargetNodeKeys(node ipld.Node) (*pb.Keys, error)
- func (t *Textile) Thread(id string) *Thread
- func (t *Textile) ThreadByKey(key string) *Thread
- func (t *Textile) ThreadPeers(id string) (*pb.PeerList, error)
- func (t *Textile) ThreadUpdateListener() *broadcast.Listener
- func (t *Textile) ThreadView(id string) (*pb.Thread, error)
- func (t *Textile) Threads() []*Thread
- func (t *Textile) UpdateCh() <-chan *pb.AccountUpdate
- func (t *Textile) UpdatePeerInboxes() error
- func (t *Textile) ValidateCafeToken(token string) (bool, error)
- func (t *Textile) Verify(input []byte, sig []byte) error
- func (t *Textile) WaitAdd(delta int, src string)
- func (t *Textile) WaitDone(src string)
- func (t *Textile) Writer() io.Writer
- type Thread
- func (t *Thread) AddComment(target string, body string) (mh.Multihash, error)
- func (t *Thread) AddExternalInvite() (mh.Multihash, []byte, error)
- func (t *Thread) AddFiles(node ipld.Node, target string, caption string, keys map[string]string) (mh.Multihash, error)
- func (t *Thread) AddFlag(block string) (mh.Multihash, error)
- func (t *Thread) AddIgnore(block string) (mh.Multihash, error)
- func (t *Thread) AddInvite(p *pb.Peer) (mh.Multihash, error)
- func (t *Thread) AddLike(target string) (mh.Multihash, error)
- func (t *Thread) AddMessage(target string, body string) (mh.Multihash, error)
- func (t *Thread) Annouce(msg *pb.ThreadAnnounce) (mh.Multihash, error)
- func (t *Thread) Decrypt(data []byte) ([]byte, error)
- func (t *Thread) Encrypt(data []byte) ([]byte, error)
- func (t *Thread) Heads() ([]string, error)
- func (t *Thread) LatestFiles() *pb.Block
- func (t *Thread) Peers() []pb.ThreadPeer
- func (t *Thread) UpdateSchema(hash string) error
- type ThreadConfig
- type ThreadsService
- func (h *ThreadsService) Handle(env *pb.Envelope, pid peer.ID) (*pb.Envelope, error)
- func (h *ThreadsService) HandleStream(env *pb.Envelope, pid peer.ID) (chan *pb.Envelope, chan error, chan interface{})
- func (h *ThreadsService) NewEnvelope(threadId string, node []byte, block []byte, sig []byte) (*pb.Envelope, error)
- func (h *ThreadsService) NewEnvelopeAck(sig []byte) (*pb.Envelope, error)
- func (h *ThreadsService) Ping(pid peer.ID) (service.PeerStatus, error)
- func (h *ThreadsService) Protocol() protocol.ID
- func (h *ThreadsService) SendMessage(ctx context.Context, peerId string, env *pb.Envelope) error
- func (h *ThreadsService) SendPubSubMessage(msg pb.BlockMessage) error
- func (h *ThreadsService) Start()
Constants ¶
const CafeApiVersion = "v1"
CafeApiVersion is the cafe api version
const ContentLinkName = "content"
const MetaLinkName = "meta"
Variables ¶
var ErrAccountRequired = fmt.Errorf("account required")
common errors
var ErrBlockNotFound = fmt.Errorf("block not found")
ErrBlockNotFound indicates a block was not found in the index
var ErrBlockWrongType = fmt.Errorf("block type is not the type requested")
ErrBlockWrongType indicates a block was requested as a type other than its own
var ErrContactNotFound = fmt.Errorf("contact not found")
ErrContactNotFound indicates a local contact was not found
var ErrFileNotFound = fmt.Errorf("file not found")
var ErrInvalidFileNode = fmt.Errorf("invalid files node")
ErrInvalidFileNode indicates files where added via a nil ipld node
var ErrInvalidNode = fmt.Errorf("thread node is not valid")
ErrInvalidNode indicates the thread node is not valid
var ErrInvalidThreadBlock = fmt.Errorf("invalid thread block")
ErrInvalidThreadBlock is a catch all error for malformed / invalid blocks
var ErrJsonSchemaRequired = fmt.Errorf("thread schema does not allow json files")
ErrJsonSchemaRequired indicates json files where added without a json schema
var ErrMissingContentLink = fmt.Errorf("content link not in node")
var ErrMissingMetaLink = fmt.Errorf("meta link not in node")
var ErrMissingRepoConfig = fmt.Errorf("you must specify InitConfig.RepoPath or InitConfig.BaseRepoPath and InitConfig.Account")
var ErrNotAnnotatable = fmt.Errorf("thread is not annotatable")
ErrNotAnnotatable indicates the thread is not annotatable (comments/likes)
var ErrNotReadable = fmt.Errorf("thread is not readable")
ErrNotReadable indicates the thread is not readable
ErrNotShareable indicates the thread does not allow invites, at least for _you_
var ErrNotWritable = fmt.Errorf("thread is not writable")
ErrNotWritable indicates the thread is not writable (files/messages)
var ErrOffline = fmt.Errorf("node is offline")
var ErrStarted = fmt.Errorf("node is started")
var ErrStopped = fmt.Errorf("node is stopped")
var ErrThreadInviteNotFound = fmt.Errorf("thread invite not found")
ErrThreadInviteNotFound indicates thread invite is not found
var ErrThreadLoaded = fmt.Errorf("thread is loaded")
ErrThreadLoaded indicates the thread is already loaded from the datastore
var ErrThreadNotFound = fmt.Errorf("thread not found")
ErrThreadNotFound indicates thread is not found in the loaded list
var ErrThreadSchemaRequired = fmt.Errorf("thread schema required to add files")
ErrThreadSchemaRequired indicates files where added without a thread schema
var ValidContentLinkNames = []string{"content", "d"}
var ValidMetaLinkNames = []string{"meta", "f"}
Functions ¶
func AccountRepoExists ¶ added in v0.7.4
AccountRepoExists return whether or not the repo at repoPath exists
func ConvertHeadersToCorsOptions ¶ added in v0.1.14
func ConvertHeadersToCorsOptions(headers config.HTTPHeaders) cors.Options
ConvertHeadersToCorsOptions converts http headers into the format that cors options accepts
func FeedItemType ¶ added in v0.1.10
func FeedItemType(item *pb.FeedItem) (pb.Block_BlockType, error)
func GetRandomPort ¶ added in v0.1.10
func GetRandomPort() string
GetRandomPort returns a port within the acceptable range
func InitRepo ¶ added in v0.1.10
func InitRepo(conf InitConfig) error
InitRepo initializes a new node repo
func MigrateRepo ¶ added in v0.1.10
func MigrateRepo(conf MigrateConfig) error
MigrateRepo runs _all_ repo migrations, including major
func RepoExists ¶ added in v0.7.4
RepoExists return whether or not the repo at repoPath exists
Types ¶
type AddFileConfig ¶ added in v0.1.10
type BlockDownloads ¶ added in v0.4.1
type BlockDownloads struct {
// contains filtered or unexported fields
}
BlockDownloads manages a queue of pending downloads
func NewBlockDownloads ¶ added in v0.4.1
func NewBlockDownloads(node func() *core.IpfsNode, datastore repo.Datastore, getThread func(id string) *Thread) *BlockDownloads
NewBlockDownloads creates a new download queue
func (*BlockDownloads) Add ¶ added in v0.4.1
func (q *BlockDownloads) Add(download *pb.Block) error
Add queues a download, starting it if flush is not active
func (*BlockDownloads) Flush ¶ added in v0.4.1
func (q *BlockDownloads) Flush()
Flush processes pending messages
type BlockOutbox ¶ added in v0.1.10
type BlockOutbox struct {
// contains filtered or unexported fields
}
BlockOutbox queues and processes outbound thread messages
func NewBlockOutbox ¶ added in v0.1.10
func NewBlockOutbox( service func() *ThreadsService, node func() *core.IpfsNode, datastore repo.Datastore, cafeOutbox *CafeOutbox) *BlockOutbox
NewBlockOutbox creates a new outbox queue
func (*BlockOutbox) Add ¶ added in v0.1.10
func (q *BlockOutbox) Add(peerId string, env *pb.Envelope) error
Add adds an outbound message
func (*BlockOutbox) Flush ¶ added in v0.1.10
func (q *BlockOutbox) Flush()
Flush processes pending messages
type CafeError ¶ added in v0.7.0
type CafeError struct {
Error string `json:"error"`
}
CafeError represents a cafe request error
type CafeInbox ¶ added in v0.1.10
type CafeInbox struct {
// contains filtered or unexported fields
}
CafeInbox queues and processes downloaded cafe messages
func NewCafeInbox ¶ added in v0.1.10
func NewCafeInbox( service func() *CafeService, threadsService func() *ThreadsService, node func() *core.IpfsNode, datastore repo.Datastore, ) *CafeInbox
NewCafeInbox creates a new inbox queue
func (*CafeInbox) Add ¶ added in v0.1.10
func (q *CafeInbox) Add(msg *pb.CafeMessage) error
Add adds an inbound message
func (*CafeInbox) CheckMessages ¶ added in v0.1.10
CheckMessages asks each active cafe session for new messages
type CafeOutbox ¶ added in v0.1.10
type CafeOutbox struct {
// contains filtered or unexported fields
}
CafeOutbox queues and processes outbound cafe requests
func NewCafeOutbox ¶ added in v0.1.10
func NewCafeOutbox( node func() *core.IpfsNode, datastore repo.Datastore, handler CafeOutboxHandler, flushBlocks func()) *CafeOutbox
NewCafeOutbox creates a new outbox queue
func (*CafeOutbox) Add ¶ added in v0.1.10
func (q *CafeOutbox) Add(target string, rtype pb.CafeRequest_Type, opts ...CafeRequestOption) error
Add adds a request for each active cafe session
func (*CafeOutbox) AddForInbox ¶ added in v0.1.12
AddForInbox adds a request for a peer's inbox(es)
func (*CafeOutbox) Flush ¶ added in v0.1.10
func (q *CafeOutbox) Flush(skipBlocks bool)
Flush processes pending requests
type CafeOutboxHandler ¶ added in v0.1.12
type CafeOutboxHandler interface {
Flush()
}
CafeOutboxHandler is fullfilled by the layer responsible for cafe network requests
Desktop and Server => CafeService over libp2p Mobile => Objc and Java SDKs
type CafeRequestOption ¶ added in v0.1.12
type CafeRequestOption func(*CafeRequestSettings)
CafeRequestOption returns a request setting from an option
func (CafeRequestOption) Cafe ¶ added in v0.3.0
func (CafeRequestOption) Cafe(val string) CafeRequestOption
Cafe limits the request to a single cafe
func (CafeRequestOption) Group ¶ added in v0.1.12
func (CafeRequestOption) Group(val string) CafeRequestOption
Group sets the request's group field
func (CafeRequestOption) Size ¶ added in v0.1.12
func (CafeRequestOption) Size(val int) CafeRequestOption
Size sets the request's size in bytes
func (CafeRequestOption) SyncGroup ¶ added in v0.3.0
func (CafeRequestOption) SyncGroup(val string) CafeRequestOption
SyncGroup sets the request's sync group field
type CafeRequestSettings ¶ added in v0.1.12
CafeRequestSettings for a request
func CafeRequestOptions ¶ added in v0.1.12
func CafeRequestOptions(opts ...CafeRequestOption) *CafeRequestSettings
CafeRequestOptions returns request settings from options
func (*CafeRequestSettings) Options ¶ added in v0.3.0
func (s *CafeRequestSettings) Options() []CafeRequestOption
Options converts settings back to options
type CafeService ¶ added in v0.1.10
type CafeService struct {
// contains filtered or unexported fields
}
CafeService is a libp2p pinning and offline message service
func NewCafeService ¶ added in v0.1.10
func NewCafeService( account *keypair.Full, node func() *core.IpfsNode, datastore repo.Datastore, inbox *CafeInbox, ) *CafeService
NewCafeService returns a new threads service
func (*CafeService) CheckMessages ¶ added in v0.1.10
func (h *CafeService) CheckMessages(cafeId string) error
CheckMessages asks each session's inbox for new messages
func (*CafeService) DeleteMessages ¶ added in v0.1.10
func (h *CafeService) DeleteMessages(cafeId string) error
DeleteMessages deletes a page of messages from a cafe
func (*CafeService) Deregister ¶ added in v0.1.10
func (h *CafeService) Deregister(cafeId string) error
Deregister removes this peer from a cafe
func (*CafeService) Flush ¶ added in v0.1.12
func (h *CafeService) Flush()
Flush begins handling requests recursively
func (*CafeService) Handle ¶ added in v0.1.10
Handle is called by the underlying service handler method
func (*CafeService) HandleStream ¶ added in v0.1.10
func (h *CafeService) HandleStream(env *pb.Envelope, pid peer.ID) (chan *pb.Envelope, chan error, chan interface{})
HandleStream is called by the underlying service handler method
func (*CafeService) Ping ¶ added in v0.1.10
func (h *CafeService) Ping(pid peer.ID) (service.PeerStatus, error)
Ping pings another peer
func (*CafeService) Protocol ¶ added in v0.1.10
func (h *CafeService) Protocol() protocol.ID
Protocol returns the handler protocol
func (*CafeService) PublishPeer ¶ added in v0.1.10
func (h *CafeService) PublishPeer(peer *pb.Peer, cafeId string) error
PublishPeer publishes the local peer's info
func (*CafeService) Register ¶ added in v0.1.10
func (h *CafeService) Register(cafeId string, token string) (*pb.CafeSession, error)
Register creates a session with a cafe
func (*CafeService) Search ¶ added in v0.1.10
func (h *CafeService) Search(query *pb.Query, cafeId string, reply func(*pb.QueryResult), cancelCh <-chan interface{}) error
Search performs a query via a cafe
func (*CafeService) Start ¶ added in v0.1.10
func (h *CafeService) Start()
Start begins online services
type FeedItemPayload ¶ added in v0.1.10
type FeedItemPayload interface { GetUser() *pb.User GetDate() *timestamp.Timestamp Reset() String() string ProtoMessage() }
func GetFeedItemPayload ¶ added in v0.1.10
func GetFeedItemPayload(item *pb.FeedItem) (FeedItemPayload, error)
type InitConfig ¶ added in v0.1.10
type InitConfig struct { Account *keypair.Full PinCode string RepoPath string BaseRepoPath string SwarmPorts string ApiAddr string CafeApiAddr string GatewayAddr string ProfilingAddr string IsMobile bool IsServer bool LogToDisk bool Debug bool CafeOpen bool CafeURL string CafeNeighborURL string }
InitConfig is used to setup a textile node
func (InitConfig) Repo ¶ added in v0.7.4
func (conf InitConfig) Repo() (string, error)
Repo returns the actual location of the configured repo
func (InitConfig) RepoExists ¶ added in v0.7.2
func (conf InitConfig) RepoExists() (bool, error)
RepoExists return whether or not the configured repo already exists
type MigrateConfig ¶ added in v0.1.10
MigrateConfig is used to define options during a major migration
type RunConfig ¶ added in v0.1.10
type RunConfig struct { PinCode string RepoPath string CafeOutboxHandler CafeOutboxHandler CheckMessages func() error Debug bool }
RunConfig is used to define run options for a textile node
type Textile ¶ added in v0.1.10
type Textile struct {
// contains filtered or unexported fields
}
Textile is the main Textile node structure
func CreateAndStartPeer ¶ added in v0.3.0
func CreateAndStartPeer(conf InitConfig, wait bool) (*Textile, error)
func NewTextile ¶ added in v0.1.10
NewTextile runs a node out of an initialized repo
func (*Textile) AcceptExternalInvite ¶ added in v0.1.10
AcceptExternalInvite attemps to download an encrypted thread key from an external invite, adds a new thread, and notifies the inviter of the join
func (*Textile) AcceptInvite ¶ added in v0.1.10
AcceptInvite adds a new thread, and notifies the inviter of the join
func (*Textile) AcceptInviteViaNotification ¶ added in v0.1.10
AcceptInviteViaNotification uses an invite notification to accept an invite to a thread
func (*Textile) AccountContact ¶ added in v0.1.10
AccountContact returns a contact for this account
func (*Textile) AccountThread ¶ added in v0.1.10
AccountThread returns the account private thread
func (*Textile) AddContact ¶ added in v0.1.10
AddContact adds or updates a card
func (*Textile) AddExternalInvite ¶ added in v0.1.10
func (t *Textile) AddExternalInvite(threadId string) (*pb.ExternalInvite, error)
AddExternalInvite generates a new external invite link to a thread
func (*Textile) AddFileIndex ¶ added in v0.1.10
func (*Textile) AddInvite ¶ added in v0.1.10
AddInvite creates an invite for each of the target address's peers
func (*Textile) AddNodeFromDirs ¶ added in v0.1.10
func (*Textile) AddNodeFromFiles ¶ added in v0.1.10
func (*Textile) AddOrUpdateThread ¶ added in v0.1.10
AddOrUpdateThread add or updates a thread directly, usually from a backup
func (*Textile) AddThread ¶ added in v0.1.10
func (t *Textile) AddThread(conf pb.AddThreadConfig, sk libp2pc.PrivKey, initiator string, join bool, inviteAccount bool) (*Thread, error)
AddThread adds a thread with a given name and secret key
func (*Textile) BlockByParent ¶ added in v0.3.0
Block returns block with id
func (*Textile) BlocksByTarget ¶ added in v0.1.10
BlocksByTarget returns block with parent
func (*Textile) CafeApiAddr ¶ added in v0.1.10
CafeApiAddr returns the cafe api address
func (*Textile) CafeRequestThreadsContent ¶ added in v0.7.0
CafeRequestThreadContent sync the entire thread conents (blocks and files) to the given cafe
func (*Textile) CafeSession ¶ added in v0.1.10
func (t *Textile) CafeSession(id string) (*pb.CafeSession, error)
CafeSession returns an active session by id
func (*Textile) CafeSessions ¶ added in v0.1.10
func (t *Textile) CafeSessions() *pb.CafeSessionList
CafeSessions lists active cafe sessions
func (*Textile) CafeTokens ¶ added in v0.1.10
CafeTokens lists all locally-stored (bcrypt hashed) tokens
func (*Textile) CheckCafeMessages ¶ added in v0.1.10
CheckCafeMessages fetches new messages from registered cafes
func (*Textile) CloseChns ¶ added in v0.1.10
func (t *Textile) CloseChns()
CloseChns closes update channels
func (*Textile) Comments ¶ added in v0.1.10
func (t *Textile) Comments(target string) (*pb.CommentList, error)
func (*Textile) ContactThreads ¶ added in v0.1.10
func (t *Textile) ContactThreads(address string) (*pb.ThreadList, error)
ContactThreads returns all threads with the given address
func (*Textile) Contacts ¶ added in v0.1.10
func (t *Textile) Contacts() *pb.ContactList
Contacts returns all known contacts, excluding self
func (*Textile) CountUnreadNotifications ¶ added in v0.1.10
CountUnreadNotifications counts unread notifications
func (*Textile) CreateCafeToken ¶ added in v0.1.10
CreateCafeToken creates (or uses `token`) random access token, returns base58 encoded version, and stores (unless `store` is false) a bcrypt hashed version for later comparison
func (*Textile) DataAtPath ¶ added in v0.1.10
DataAtPath returns raw data behind an ipfs path
func (*Textile) Datastore ¶ added in v0.3.0
Datastore returns the underlying sqlite datastore interface
func (*Textile) DeregisterCafe ¶ added in v0.1.10
DeregisterCafe removes the session associated with the given cafe
func (*Textile) DoneCh ¶ added in v0.1.10
func (t *Textile) DoneCh() <-chan struct{}
DoneCh returns the core node done channel
func (*Textile) Feed ¶ added in v0.1.10
func (t *Textile) Feed(req *pb.FeedRequest) (*pb.FeedItemList, error)
func (*Textile) FileContent ¶ added in v0.2.0
func (*Textile) FileIndexContent ¶ added in v0.2.0
func (*Textile) FlushBlocks ¶ added in v0.3.0
func (t *Textile) FlushBlocks()
FlushBlocks flushes the block message outbox
func (*Textile) FlushCafes ¶ added in v0.3.0
func (t *Textile) FlushCafes()
FlushCafes flushes the cafe request outbox
func (*Textile) GetMillMedia ¶ added in v0.5.0
func (*Textile) IgnoreInvite ¶ added in v0.1.10
IgnoreInvite deletes the invite and removes the associated notification.
func (*Textile) IgnoreInviteViaNotification ¶ added in v0.1.10
IgnoreInviteViaNotification uses an invite notification to ignore an invite to a thread
func (*Textile) InviteView ¶ added in v0.1.10
func (t *Textile) InviteView(invite *pb.Invite) *pb.InviteView
InviteView gets a pending invite as a view object, which does not include the block payload
func (*Textile) Invites ¶ added in v0.1.10
func (t *Textile) Invites() *pb.InviteViewList
Invites lists info on all pending invites
func (*Textile) LinksAtPath ¶ added in v0.1.10
LinksAtPath returns ipld links behind an ipfs path
func (*Textile) Mobile ¶ added in v0.1.10
Mobile returns whether or not node is configured for a mobile device
func (*Textile) NotificationCh ¶ added in v0.1.10
func (t *Textile) NotificationCh() <-chan *pb.Notification
NotificationsCh returns the notifications channel
func (*Textile) NotificationView ¶ added in v0.1.10
func (t *Textile) NotificationView(note *pb.Notification) *pb.Notification
NotificationView returns a notification with expanded view info
func (*Textile) Notifications ¶ added in v0.1.10
func (t *Textile) Notifications(offset string, limit int) *pb.NotificationList
Notifications lists notifications
func (*Textile) OnlineCh ¶ added in v0.1.10
func (t *Textile) OnlineCh() <-chan struct{}
OnlineCh returns the online channel
func (*Textile) PeerUser ¶ added in v0.1.10
PeerUser returns a user object with the most recently updated contact for the given id Note: If no underlying contact is found, this will return a blank object w/ a generic user name for display-only purposes.
func (*Textile) PublishPeer ¶ added in v0.7.0
PublishPeer publishes this peer's info to the cafe network
func (*Textile) ReadAllNotifications ¶ added in v0.1.10
ReadAllNotifications marks all notification as read
func (*Textile) ReadNotification ¶ added in v0.1.10
ReadNotification marks a notification as read
func (*Textile) RefreshCafeSession ¶ added in v0.1.10
func (t *Textile) RefreshCafeSession(id string) (*pb.CafeSession, error)
RefreshCafeSession attempts to refresh a token with a cafe
func (*Textile) RegisterCafe ¶ added in v0.1.10
RegisterCafe registers this account with another peer (the "cafe"), which provides a session token for the service
func (*Textile) RemoveCafeToken ¶ added in v0.1.10
RemoveCafeToken removes a given cafe token from the local store
func (*Textile) RemoveContact ¶ added in v0.1.10
RemoveContact removes all contacts that share the given address @todo Add ignore to account thread targeted at the join
func (*Textile) RemoveThread ¶ added in v0.1.10
RemoveThread removes a thread @todo rename to abandon to be consistent with CLI+API
func (*Textile) RenameThread ¶ added in v0.1.10
RenameThread adds an announce block to the thread w/ a new name Note: Only thread initiators can update the thread's name
func (*Textile) SearchContacts ¶ added in v0.1.10
func (t *Textile) SearchContacts(query *pb.ContactQuery, options *pb.QueryOptions) (<-chan *pb.QueryResult, <-chan error, *broadcast.Broadcaster, error)
SearchContacts searches the network for peers and returns contacts
func (*Textile) SearchThreadSnapshots ¶ added in v0.1.10
func (t *Textile) SearchThreadSnapshots(query *pb.ThreadSnapshotQuery, options *pb.QueryOptions) (<-chan *pb.QueryResult, <-chan error, *broadcast.Broadcaster, error)
SearchThreadSnapshots searches the network for snapshots
func (*Textile) Server ¶ added in v0.1.13
Server returns whether or not node is configured for a server
func (*Textile) SetAvatar ¶ added in v0.1.10
SetAvatar updates profile with a new avatar at the given file hash.
func (*Textile) SetLogLevel ¶ added in v0.1.10
SetLogLevel provides node scoped access to the logging system
func (*Textile) SnapshotThreads ¶ added in v0.1.10
SnapshotThreads creates a store thread request for all threads
func (*Textile) SyncAccount ¶ added in v0.1.10
func (t *Textile) SyncAccount(options *pb.QueryOptions) (*broadcast.Broadcaster, error)
SyncAccount performs a thread backup search and applies the result
func (*Textile) TargetNodeKeys ¶ added in v0.1.10
func (*Textile) ThreadByKey ¶ added in v0.1.10
ThreadByKey get a thread by key from loaded threads
func (*Textile) ThreadPeers ¶ added in v0.1.10
ThreadPeers returns a list of thread peers
func (*Textile) ThreadUpdateListener ¶ added in v0.1.10
ThreadUpdateListener returns the thread update channel
func (*Textile) ThreadView ¶ added in v0.1.10
ThreadView returns a thread with expanded view properties
func (*Textile) UpdateCh ¶ added in v0.1.10
func (t *Textile) UpdateCh() <-chan *pb.AccountUpdate
UpdateCh returns the account update channel
func (*Textile) UpdatePeerInboxes ¶ added in v0.7.0
UpdatePeerInboxes sets own peer inboxes from the current cafe sessions
func (*Textile) ValidateCafeToken ¶ added in v0.1.10
ValidateCafeToken checks whether a supplied base58 encoded token matches the locally-stored bcrypt hashed equivalent
type Thread ¶ added in v0.1.10
type Thread struct { Id string Key string // app key, usually UUID Name string PrivKey libp2pc.PrivKey Schema *pb.Node // contains filtered or unexported fields }
Thread is the primary mechanism representing a collecion of data / files / photos
func NewThread ¶ added in v0.1.10
func NewThread(model *pb.Thread, conf *ThreadConfig) (*Thread, error)
NewThread create a new Thread from a repo model and config
func (*Thread) AddComment ¶ added in v0.1.10
AddComment adds an outgoing comment block
func (*Thread) AddExternalInvite ¶ added in v0.1.10
AddExternalInvite creates an add block, which can be retrieved by any peer and does not become part of the hash chain
func (*Thread) AddFiles ¶ added in v0.1.10
func (t *Thread) AddFiles(node ipld.Node, target string, caption string, keys map[string]string) (mh.Multihash, error)
AddFile adds an outgoing files block
func (*Thread) AddFlag ¶ added in v0.1.10
AddFlag adds an outgoing flag block targeted at another block to flag
func (*Thread) AddIgnore ¶ added in v0.1.10
AddIgnore adds an outgoing ignore block targeted at another block to ignore
func (*Thread) AddInvite ¶ added in v0.1.10
AddInvite creates an outgoing add block, which is sent directly to the recipient and does not become part of the hash chain
func (*Thread) AddMessage ¶ added in v0.1.10
AddMessage adds an outgoing message block
func (*Thread) LatestFiles ¶ added in v0.1.12
LatestFiles returns the most recent files block
func (*Thread) Peers ¶ added in v0.1.10
func (t *Thread) Peers() []pb.ThreadPeer
Peers returns locally known peers in this thread
func (*Thread) UpdateSchema ¶ added in v0.1.12
UpdateSchema sets a new schema hash on the model and loads its node
type ThreadConfig ¶ added in v0.1.10
type ThreadConfig struct { RepoPath string Config *config.Config Account *keypair.Full Node func() *core.IpfsNode Datastore repo.Datastore Service func() *ThreadsService BlockOutbox *BlockOutbox BlockDownloads *BlockDownloads CafeOutbox *CafeOutbox AddPeer func(*pb.Peer) error PushUpdate func(*pb.Block, string) }
ThreadConfig is used to construct a Thread
type ThreadsService ¶ added in v0.1.10
type ThreadsService struct {
// contains filtered or unexported fields
}
ThreadService is a libp2p service for orchestrating a collection of files with annotations amongst a group of peers
func NewThreadsService ¶ added in v0.1.10
func NewThreadsService( account *keypair.Full, node func() *core.IpfsNode, datastore repo.Datastore, getThread func(string) *Thread, addThread func([]byte, []string) (mh.Multihash, error), removeThread func(string) (mh.Multihash, error), sendNotification func(*pb.Notification) error, ) *ThreadsService
NewThreadsService returns a new threads service
func (*ThreadsService) Handle ¶ added in v0.1.10
Handle is called by the underlying service handler method
func (*ThreadsService) HandleStream ¶ added in v0.1.10
func (h *ThreadsService) HandleStream(env *pb.Envelope, pid peer.ID) (chan *pb.Envelope, chan error, chan interface{})
HandleStream is called by the underlying service handler method
func (*ThreadsService) NewEnvelope ¶ added in v0.1.10
func (h *ThreadsService) NewEnvelope(threadId string, node []byte, block []byte, sig []byte) (*pb.Envelope, error)
NewEnvelope signs and wraps an encypted block for transport
func (*ThreadsService) NewEnvelopeAck ¶ added in v0.5.4
func (h *ThreadsService) NewEnvelopeAck(sig []byte) (*pb.Envelope, error)
NewEnvelopeAck signs and wraps an ack message
func (*ThreadsService) Ping ¶ added in v0.1.10
func (h *ThreadsService) Ping(pid peer.ID) (service.PeerStatus, error)
Ping pings another peer
func (*ThreadsService) Protocol ¶ added in v0.1.10
func (h *ThreadsService) Protocol() protocol.ID
Protocol returns the handler protocol
func (*ThreadsService) SendMessage ¶ added in v0.1.10
SendMessage sends a message to a peer
func (*ThreadsService) SendPubSubMessage ¶ added in v0.6.6
func (h *ThreadsService) SendPubSubMessage(msg pb.BlockMessage) error
SendPubSubMessage publishes the message to the recipient's peerID-based topic and waits for an acknowledgement response. This mechanism can result in inbox-free direct messaging via a relay node, which can be useful when two peers are not direcly connected.
func (*ThreadsService) Start ¶ added in v0.1.10
func (h *ThreadsService) Start()
Start begins online services
Source Files ¶
- account.go
- block_downloads.go
- block_outbox.go
- blocks.go
- cafe_api.go
- cafe_api_v0.go
- cafe_api_v1.go
- cafe_inbox.go
- cafe_outbox.go
- cafe_service.go
- cafes.go
- config.go
- contacts.go
- core.go
- feed.go
- feed_announces.go
- feed_comments.go
- feed_files.go
- feed_flags.go
- feed_ignore.go
- feed_joins.go
- feed_leaves.go
- feed_likes.go
- feed_merges.go
- feed_messages.go
- files.go
- invites.go
- notifications.go
- peers.go
- profile.go
- search.go
- summary.go
- test_utils.go
- thread.go
- thread_adds.go
- thread_announces.go
- thread_comments.go
- thread_files.go
- thread_flags.go
- thread_ignores.go
- thread_joins.go
- thread_leaves.go
- thread_likes.go
- thread_merges.go
- thread_messages.go
- threads.go
- threads_service.go
- tokens.go