core

package
v0.1.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2019 License: MIT Imports: 79 Imported by: 0

Documentation

Index

Constants

View Source
const DataLinkName = "d"
View Source
const FileLinkName = "f"

Variables

View Source
var ErrAccountRequired = errors.New("account required")

common errors

View Source
var ErrBlockExists = errors.New("block exists")

ErrBlockExists indicates a block has already been indexed

View Source
var ErrBlockNotFound = errors.New("block not found")

ErrBlockNotFound indicates a block was not found in the index

View Source
var ErrBlockWrongType = errors.New("block type is not the type requested")

ErrBlockWrongType indicates a block was requested as a type other than its own

View Source
var ErrContactNotFound = errors.New("contact not found")

ErrContactNotFound indicates a local contact was not found

View Source
var ErrFileNotFound = errors.New("file not found")
View Source
var ErrInvalidFileNode = errors.New("invalid files node")

ErrInvalidFileNode indicates files where added via a nil ipld node

View Source
var ErrInvalidThreadBlock = errors.New("invalid thread block")

ErrInvalidThreadBlock is a catch all error for malformed / invalid blocks

View Source
var ErrJsonSchemaRequired = errors.New("thread schema does not allow json files")

ErrJsonSchemaRequired indicates json files where added without a json schema

View Source
var ErrMissingDataLink = errors.New("data link not in node")
View Source
var ErrMissingFileLink = errors.New("file link not in node")
View Source
var ErrNotAnnotatable = errors.New("thread is not annotatable")

ErrNotAnnotatable indicates the thread is not annotatable (comments/likes)

View Source
var ErrNotReadable = errors.New("thread is not readable")

ErrNotReadable indicates the thread is not readable

View Source
var ErrNotShareable = errors.New("thread is not shareable")

ErrNotShareable indicates the thread does not allow invites, at least for _you_

View Source
var ErrNotWritable = errors.New("thread is not writable")

ErrNotWritable indicates the thread is not writable (files/messages)

View Source
var ErrOffline = errors.New("node is offline")
View Source
var ErrStarted = errors.New("node is started")
View Source
var ErrStopped = errors.New("node is stopped")
View Source
var ErrThreadInviteNotFound = errors.New("thread invite not found")

ErrThreadInviteNotFound indicates thread invite is not found

View Source
var ErrThreadLoaded = errors.New("thread is loaded")

ErrThreadLoaded indicates the thread is already loaded from the datastore

View Source
var ErrThreadNotFound = errors.New("thread not found")

ErrThreadNotFound indicates thread is not found in the loaded list

View Source
var ErrThreadSchemaRequired = errors.New("thread schema required to add files")

ErrThreadSchemaRequired indicates files where added without a thread schema

Functions

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

Types

type AddFileConfig added in v0.1.10

type AddFileConfig struct {
	Input     []byte `json:"input"`
	Use       string `json:"use"`
	Media     string `json:"media"`
	Name      string `json:"name"`
	Plaintext bool   `json:"plaintext"`
}

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(pid peer.ID, 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 CafeInbox added in v0.1.10

type CafeInbox struct {
	// contains filtered or unexported fields
}

CafeInbox queues and processes outbound thread 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

func (q *CafeInbox) CheckMessages() error

CheckMessages asks each active cafe session for new messages

func (*CafeInbox) Flush added in v0.1.10

func (q *CafeInbox) Flush()

Flush processes pending 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(
	service func() *CafeService,
	node func() *core.IpfsNode,
	datastore repo.Datastore,
) *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) error

Add adds a request for each active cafe session

func (*CafeOutbox) Flush added in v0.1.10

func (q *CafeOutbox) Flush()

Flush processes pending requests

func (*CafeOutbox) InboxRequest added in v0.1.10

func (q *CafeOutbox) InboxRequest(pid peer.ID, env *pb.Envelope, inboxes []*pb.Cafe) error

InboxRequest adds a request for a peer's inbox(es)

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(cafe peer.ID) error

CheckMessages asks each session's inbox for new messages

func (*CafeService) DeleteMessages added in v0.1.10

func (h *CafeService) DeleteMessages(cafe peer.ID) error

DeleteMessages deletes a page of messages from a cafe

func (*CafeService) DeliverMessage added in v0.1.10

func (h *CafeService) DeliverMessage(mid string, pid peer.ID, cafe *pb.Cafe) error

DeliverMessage delivers a message content id to a peer's cafe inbox TODO: unpin message locally after it's delivered

func (*CafeService) Deregister added in v0.1.10

func (h *CafeService) Deregister(cafe peer.ID) error

Deregister removes this peer from a cafe

func (*CafeService) Handle added in v0.1.10

func (h *CafeService) Handle(pid peer.ID, env *pb.Envelope) (*pb.Envelope, error)

Handle is called by the underlying service handler method

func (*CafeService) HandleStream added in v0.1.10

func (h *CafeService) HandleStream(pid peer.ID, env *pb.Envelope) (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, cafe peer.ID) error

PublishPeer publishes the local peer's info

func (*CafeService) Register added in v0.1.10

func (h *CafeService) Register(host 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, cafe peer.ID, 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

func (*CafeService) Store added in v0.1.10

func (h *CafeService) Store(cids []string, cafe peer.ID) ([]string, error)

Store stores (pins) content on a cafe and returns a list of successful cids

func (*CafeService) StoreThread added in v0.1.10

func (h *CafeService) StoreThread(thrd *pb.Thread, cafe peer.ID) error

StoreThread pushes a thread to a cafe backup

func (*CafeService) Unstore added in v0.1.10

func (h *CafeService) Unstore(cids []string, cafe peer.ID) ([]string, error)

Unstore unstores (unpins) content on a cafe and returns a list of successful cids

func (*CafeService) UnstoreThread added in v0.1.10

func (h *CafeService) UnstoreThread(id string, cafe peer.ID) error

UnstoreThread removes a cafe's thread backup

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
	SwarmPorts      string
	ApiAddr         string
	CafeApiAddr     string
	GatewayAddr     string
	IsMobile        bool
	IsServer        bool
	LogToDisk       bool
	Debug           bool
	CafeOpen        bool
	CafePublicIP    string
	CafeURL         string
	CafeNeighborURL string
}

InitConfig is used to setup a textile node

type MigrateConfig added in v0.1.10

type MigrateConfig struct {
	PinCode  string
	RepoPath string
}

MigrateConfig is used to define options during a major migration

type PinResponse added in v0.1.10

type PinResponse struct {
	Id    string `json:"id,omitempty"`
	Error string `json:"error,omitempty"`
}

PinResponse is the json response from a pin request

type RunConfig added in v0.1.10

type RunConfig struct {
	PinCode  string
	RepoPath string
	Debug    bool
}

RunConfig is used to define run options for a textile node

type SubsystemInfo added in v0.1.10

type SubsystemInfo map[string]string

type Textile added in v0.1.10

type Textile struct {
	// contains filtered or unexported fields
}

Textile is the main Textile node structure

func NewTextile added in v0.1.10

func NewTextile(conf RunConfig) (*Textile, error)

NewTextile runs a node out of an initialized repo

func (*Textile) AcceptExternalInvite added in v0.1.10

func (t *Textile) AcceptExternalInvite(inviteId string, key []byte) (mh.Multihash, error)

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

func (t *Textile) AcceptInvite(inviteId string) (mh.Multihash, error)

AcceptInvite adds a new thread, and notifies the inviter of the join

func (*Textile) AcceptInviteViaNotification added in v0.1.10

func (t *Textile) AcceptInviteViaNotification(id string) (mh.Multihash, error)

AcceptInviteViaNotification uses an invite notification to accept an invite to a thread

func (*Textile) Account added in v0.1.10

func (t *Textile) Account() *keypair.Full

Account returns account keypair

func (*Textile) AccountContact added in v0.1.10

func (t *Textile) AccountContact() *pb.Contact

AccountContact returns a contact for this account

func (*Textile) AccountThread added in v0.1.10

func (t *Textile) AccountThread() *Thread

AccountThread returns the account private thread

func (*Textile) AddContact added in v0.1.10

func (t *Textile) AddContact(card *pb.Contact) error

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 (t *Textile) AddFileIndex(mill m.Mill, conf AddFileConfig) (*pb.FileIndex, error)

func (*Textile) AddInvite added in v0.1.10

func (t *Textile) AddInvite(threadId string, address string) error

AddInvite creates an invite for each of the target address's peers

func (*Textile) AddNodeFromDirs added in v0.1.10

func (t *Textile) AddNodeFromDirs(dirs *pb.DirectoryList) (ipld.Node, *pb.Keys, error)

func (*Textile) AddNodeFromFiles added in v0.1.10

func (t *Textile) AddNodeFromFiles(files []*pb.FileIndex) (ipld.Node, *pb.Keys, error)

func (*Textile) AddOrUpdateThread added in v0.1.10

func (t *Textile) AddOrUpdateThread(thrd *pb.Thread) error

AddOrUpdateThread add or updates a thread directly, usually from a backup

func (*Textile) AddSchema added in v0.1.10

func (t *Textile) AddSchema(jsonstr string, name string) (*pb.FileIndex, error)

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) ApiAddr added in v0.1.10

func (t *Textile) ApiAddr() string

ApiAddr returns the api address

func (*Textile) Avatar added in v0.1.10

func (t *Textile) Avatar() string

Avatar returns profile avatar

func (*Textile) Block added in v0.1.10

func (t *Textile) Block(id string) (*pb.Block, error)

Block returns block with id

func (*Textile) BlockView added in v0.1.10

func (t *Textile) BlockView(id string) (*pb.Block, error)

BlockView returns block with expanded view properties

func (*Textile) Blocks added in v0.1.10

func (t *Textile) Blocks(offset string, limit int, query string) *pb.BlockList

GetBlocks paginates blocks

func (*Textile) BlocksByTarget added in v0.1.10

func (t *Textile) BlocksByTarget(target string) *pb.BlockList

BlocksByTarget returns block with parent

func (*Textile) CafeApiAddr added in v0.1.10

func (t *Textile) CafeApiAddr() string

CafeApiAddr returns the cafe api address

func (*Textile) CafeInfo added in v0.1.10

func (t *Textile) CafeInfo() *pb.Cafe

CafeInfo returns info about this cafe

func (*Textile) CafeSession added in v0.1.10

func (t *Textile) CafeSession(peerId 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

func (t *Textile) CafeTokens() ([]string, error)

CafeTokens lists all locally-stored (bcrypt hashed) tokens

func (*Textile) CheckCafeMessages added in v0.1.10

func (t *Textile) CheckCafeMessages() error

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) Comment added in v0.1.10

func (t *Textile) Comment(blockId string) (*pb.Comment, error)

func (*Textile) Comments added in v0.1.10

func (t *Textile) Comments(target string) (*pb.CommentList, error)

func (*Textile) Config added in v0.1.10

func (t *Textile) Config() *config.Config

Config returns the textile configuration file

func (*Textile) Contact added in v0.1.10

func (t *Textile) Contact(address string) *pb.Contact

Contact looks up a contact by address

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

func (t *Textile) CountUnreadNotifications() int

CountUnreadNotifications counts unread notifications

func (*Textile) CreateCafeToken added in v0.1.10

func (t *Textile) CreateCafeToken(token string, store bool) (string, error)

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

func (t *Textile) DataAtPath(path string) ([]byte, error)

DataAtPath returns raw data behind an ipfs path

func (*Textile) Decrypt added in v0.1.10

func (t *Textile) Decrypt(input []byte) ([]byte, error)

Decrypt decrypts input with account address

func (*Textile) DeregisterCafe added in v0.1.10

func (t *Textile) DeregisterCafe(peerId string) error

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) Encrypt added in v0.1.10

func (t *Textile) Encrypt(input []byte) ([]byte, error)

Encrypt encrypts input with account address

func (*Textile) Feed added in v0.1.10

func (t *Textile) Feed(req *pb.FeedRequest) (*pb.FeedItemList, error)

func (*Textile) File added in v0.1.10

func (t *Textile) File(blockId string) (*pb.Files, error)

func (*Textile) FileData added in v0.1.10

func (t *Textile) FileData(hash string) (io.ReadSeeker, *pb.FileIndex, error)

func (*Textile) FileIndex added in v0.1.10

func (t *Textile) FileIndex(hash string) (*pb.FileIndex, error)

func (*Textile) Files added in v0.1.10

func (t *Textile) Files(offset string, limit int, threadId string) (*pb.FilesList, error)

func (*Textile) GetMedia added in v0.1.10

func (t *Textile) GetMedia(reader io.Reader, mill m.Mill) (string, error)

func (*Textile) IgnoreInvite added in v0.1.10

func (t *Textile) IgnoreInvite(inviteId string) error

IgnoreInvite deletes the invite and removes the associated notification.

func (*Textile) IgnoreInviteViaNotification added in v0.1.10

func (t *Textile) IgnoreInviteViaNotification(id string) error

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) Ipfs added in v0.1.10

func (t *Textile) Ipfs() *core.IpfsNode

Ipfs returns the underlying ipfs node

func (*Textile) Like added in v0.1.10

func (t *Textile) Like(blockId string) (*pb.Like, error)

func (*Textile) Likes added in v0.1.10

func (t *Textile) Likes(target string) (*pb.LikeList, error)

func (*Textile) LinksAtPath added in v0.1.10

func (t *Textile) LinksAtPath(path string) ([]*ipld.Link, error)

LinksAtPath returns ipld links behind an ipfs path

func (*Textile) Message added in v0.1.10

func (t *Textile) Message(blockId string) (*pb.Text, error)

func (*Textile) Messages added in v0.1.10

func (t *Textile) Messages(offset string, limit int, threadId string) (*pb.TextList, error)

func (*Textile) Mobile added in v0.1.10

func (t *Textile) Mobile() bool

Mobile returns whether or not node is configured for a mobile device

func (*Textile) Name added in v0.1.10

func (t *Textile) Name() string

Username returns profile username

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) Online added in v0.1.10

func (t *Textile) Online() bool

Online returns node online status

func (*Textile) OnlineCh added in v0.1.10

func (t *Textile) OnlineCh() <-chan struct{}

OnlineCh returns the online channel

func (*Textile) PeerId added in v0.1.10

func (t *Textile) PeerId() (peer.ID, error)

PeerId returns peer id

func (*Textile) PeerUser added in v0.1.10

func (t *Textile) PeerUser(id string) *pb.User

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 an blank object w/ a generic user name for display-only purposes.

func (*Textile) Ping added in v0.1.10

func (t *Textile) Ping(pid peer.ID) (service.PeerStatus, error)

Ping pings another peer

func (*Textile) Profile added in v0.1.10

func (t *Textile) Profile() *pb.Peer

Profile returns this node's own peer

func (*Textile) ReadAllNotifications added in v0.1.10

func (t *Textile) ReadAllNotifications() error

ReadAllNotifications marks all notification as read

func (*Textile) ReadNotification added in v0.1.10

func (t *Textile) ReadNotification(id string) error

ReadNotification marks a notification as read

func (*Textile) RefreshCafeSession added in v0.1.10

func (t *Textile) RefreshCafeSession(peerId string) (*pb.CafeSession, error)

RefreshCafeSession attempts to refresh a token with a cafe

func (*Textile) RegisterCafe added in v0.1.10

func (t *Textile) RegisterCafe(host string, token string) (*pb.CafeSession, error)

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

func (t *Textile) RemoveCafeToken(token string) error

RemoveCafeToken removes a given cafe token from the local store

func (*Textile) RemoveContact added in v0.1.10

func (t *Textile) RemoveContact(address string) error

RemoveContact removes all contacts that share the given address

func (*Textile) RemoveThread added in v0.1.10

func (t *Textile) RemoveThread(id string) (mh.Multihash, error)

RemoveThread removes a thread

func (*Textile) RenameThread added in v0.1.10

func (t *Textile) RenameThread(id string, name string) error

RenameThread adds an announce block to the thread w/ a new name Note: Only thread initiators can update the thread's name

func (*Textile) RepoPath added in v0.1.10

func (t *Textile) RepoPath() string

RepoPath returns the node's repo path

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) SetAvatar added in v0.1.10

func (t *Textile) SetAvatar(hash string) error

SetAvatar updates profile with a new avatar at the given file hash.

func (*Textile) SetLogLevel added in v0.1.10

func (t *Textile) SetLogLevel(level *pb.LogLevel) error

SetLogLevel provides node scoped access to the logging system

func (*Textile) SetName added in v0.1.10

func (t *Textile) SetName(name string) error

SetName updates profile with a new username

func (*Textile) Sign added in v0.1.10

func (t *Textile) Sign(input []byte) ([]byte, error)

Sign signs input with account seed

func (*Textile) SnapshotThreads added in v0.1.10

func (t *Textile) SnapshotThreads() error

SnapshotThreads creates a store thread request for all threads

func (*Textile) Start added in v0.1.10

func (t *Textile) Start() error

Start creates an ipfs node and starts textile services

func (*Textile) StartApi added in v0.1.10

func (t *Textile) StartApi(addr string, serveDocs bool)

StartApi starts the host instance

func (*Textile) Started added in v0.1.10

func (t *Textile) Started() bool

Started returns node started status

func (*Textile) Stop added in v0.1.10

func (t *Textile) Stop() error

Stop destroys the ipfs node and shutsdown textile services

func (*Textile) StopApi added in v0.1.10

func (t *Textile) StopApi() error

StopApi starts the host instance

func (*Textile) Summary added in v0.1.10

func (t *Textile) Summary() *pb.Summary

Summary returns a summary of node data

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 (t *Textile) TargetNodeKeys(node ipld.Node) (*pb.Keys, error)

func (*Textile) Thread added in v0.1.10

func (t *Textile) Thread(id string) *Thread

Thread get a thread by id from loaded threads

func (*Textile) ThreadByKey added in v0.1.10

func (t *Textile) ThreadByKey(key string) *Thread

ThreadByKey get a thread by key from loaded threads

func (*Textile) ThreadPeers added in v0.1.10

func (t *Textile) ThreadPeers(id string) (*pb.PeerList, error)

ThreadPeers returns a list of thread peers

func (*Textile) ThreadUpdateListener added in v0.1.10

func (t *Textile) ThreadUpdateListener() *broadcast.Listener

ThreadUpdateListener returns the thread update channel

func (*Textile) ThreadView added in v0.1.10

func (t *Textile) ThreadView(id string) (*pb.Thread, error)

ThreadView returns a thread with expanded view properties

func (*Textile) Threads added in v0.1.10

func (t *Textile) Threads() []*Thread

Threads lists loaded threads

func (*Textile) UpdateCh added in v0.1.10

func (t *Textile) UpdateCh() <-chan *pb.WalletUpdate

UpdateCh returns the node update channel

func (*Textile) ValidateCafeToken added in v0.1.10

func (t *Textile) ValidateCafeToken(token string) (bool, error)

ValidateCafeToken checks whether a supplied base58 encoded token matches the locally-stored bcrypt hashed equivalent

func (*Textile) Verify added in v0.1.10

func (t *Textile) Verify(input []byte, sig []byte) error

Verify verifies input with account address

func (*Textile) Writer added in v0.1.10

func (t *Textile) Writer() io.Writer

Writer returns the output writer (logger / stdout)

type Thread added in v0.1.10

type Thread struct {
	Id     string
	Key    string // app key, usually UUID
	Name   string
	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

func (t *Thread) AddComment(target string, body string) (mh.Multihash, error)

AddComment adds an outgoing comment block

func (*Thread) AddExternalInvite added in v0.1.10

func (t *Thread) AddExternalInvite() (mh.Multihash, []byte, error)

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, caption string, keys map[string]string) (mh.Multihash, error)

AddFile adds an outgoing files block

func (*Thread) AddFlag added in v0.1.10

func (t *Thread) AddFlag(block string) (mh.Multihash, error)

AddFlag adds an outgoing flag block targeted at another block to flag

func (*Thread) AddIgnore added in v0.1.10

func (t *Thread) AddIgnore(block string) (mh.Multihash, error)

AddIgnore adds an outgoing ignore block targeted at another block to ignore

func (*Thread) AddInvite added in v0.1.10

func (t *Thread) AddInvite(p *pb.Peer) (mh.Multihash, error)

AddInvite creates an outgoing add block, which is sent directly to the recipient and does not become part of the hash chain

func (*Thread) AddLike added in v0.1.10

func (t *Thread) AddLike(target string) (mh.Multihash, error)

AddLike adds an outgoing like block

func (*Thread) AddMessage added in v0.1.10

func (t *Thread) AddMessage(body string) (mh.Multihash, error)

AddMessage adds an outgoing message block

func (*Thread) Decrypt added in v0.1.10

func (t *Thread) Decrypt(data []byte) ([]byte, error)

Decrypt data with thread secret key

func (*Thread) Encrypt added in v0.1.10

func (t *Thread) Encrypt(data []byte) ([]byte, error)

Encrypt data with thread public key

func (*Thread) Head added in v0.1.10

func (t *Thread) Head() (string, error)

Head returns content id of the latest update

func (*Thread) Peers added in v0.1.10

func (t *Thread) Peers() []pb.ThreadPeer

Peers returns locally known peers in this thread

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
	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) (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

func (h *ThreadsService) Handle(pid peer.ID, env *pb.Envelope) (*pb.Envelope, error)

Handle is called by the underlying service handler method

func (*ThreadsService) HandleStream added in v0.1.10

func (h *ThreadsService) HandleStream(pid peer.ID, env *pb.Envelope) (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, hash mh.Multihash, ciphertext []byte, sig []byte) (*pb.Envelope, error)

NewEnvelope signs and wraps an encypted block for transport

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

func (h *ThreadsService) SendMessage(ctx context.Context, pid peer.ID, env *pb.Envelope) error

SendMessage sends a message to a peer

func (*ThreadsService) Start added in v0.1.10

func (h *ThreadsService) Start()

Start begins online services

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL